Evitar cerrar programa para usarlo nuevamente

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Evitar cerrar programa para usarlo nuevamente

Mensaje por iamchavo »

Hola buen dia, ya logre terminar el programa que estaba haciendo, se trata de un creador de Themes para Facebook.
El unico problema que tiene es que cada vez que creo un theme ( que el programa cumple su ciclo ), si quiero hacer un segundo theme tengo que cerrar el programa y abrirlo nuevamente.

De que forma puedo hacer para que no tenga que cerrar el programa que cree para diseñar un nuevo Theme.

Dejo el codigo:

Código: Seleccionar todo

#include <File.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <String.au3>
#include <IE.au3>
#include <StaticConstants.au3>
#include <Misc.au3>

InetGet("http://www.criteriondg.info/wordpress/wp-content/themes/criterion/images/walls/33.jpg",@TempDir&"\timage.jpg")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tolchx.com", 433, 276, 193, 125)
$creador = GUICtrlCreateInput("Tu Nombre", 110, 24, 225, 21)
GUICtrlSetCursor (-1, 5)
$Nombre = GUICtrlCreateInput("Nombre de la imagen", 110, 56, 225, 21)
GUICtrlSetCursor (-1, 5)
$pagina = GUICtrlCreateInput("URL de la imagen", 50, 100, 355, 21)
GUICtrlSetCursor (-1, 5)
$Button1 = GUICtrlCreateButton("Aceptar", 140, 152, 153, 57, 0)
GUICtrlSetCursor (-1, 0)
$Pic1 = GUICtrlCreatePic(@TempDir&"\timage.jpg", -8, -16, 440, 303,BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)

$Checkbox5 = GUICtrlCreateCheckbox("Derecha", 464, 200, 81, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

; Login
while 1

   $msg = GUIGetMsg()
   Select
      Case $msg = $GUI_EVENT_CLOSE
         Exit
      Case $msg = $Button1
$IeObj = _IECreate("http://userstyles.org/logout",0,0)

 _IENavigate($IeObj, "http://userstyles.org/login/?view=password",0x1000)
 _IeLoadWait($IeObj)
$ieform=_IEFormGetCollection($IeObj,1)

$nombres=_IEGetObjById($IeObj, "login-existing")
$nombres.value="usuario"
$apellidos=_IEGetObjById($IeObj, "password-existing")
$apellidos.value="contraseña"

_IEFormSubmit($ieform)
_IeLoadWait($IeObj)

exitloop
EndSelect
   wend


_ReplaceStringInFile(@scriptdir & "\Plantilla.txt","imagen.jpg", GUICtrlRead($pagina) )

  $file = FileRead(@ScriptDir &  "/plantilla.txt")
   $final = _StringBetween($file, "<html>", "</html>")
  sleep(2000)

; Cambia a pagina de creacion
  _IENavigate($IeObj, "http://userstyles.org/styles/new",0x1000)
  _IeLoadWait($IeObj)

$Inpshort=_IEGetObjByid($IeObj, "style_short_description")
$Inplong=_IEGetObjById($IeObj, "style_long_description")
$Inpcss=_IEGetObjByid($IeObj, "css")

;Contador aleatoreo

$LowerLimit = 1
$UpperLimit = 99
$RandomNumber = Random($LowerLimit,$UpperLimit,1)

;Completando formularios

_IeFormElementSetValue($Inpshort, "Wallpapers para Facebook - " & GUICtrlRead($Nombre) &  " - "& $RandomNumber)
_IeFormElementSetValue($Inplong, "Theme creado por: "& GUICtrlRead($creador) & " - Mas Wallpapers para personalizar Facebook en www.Tolchx.com")
_IeFormElementSetValue($Inpcss,$final[0])

sleep(500)

$button = _IEGetObjbyName ($IeObj, "commit")
_IEAction ($button, "click")
_IeLoadWait($IeObj)


Opt("WinTitleMatchMode", 2)
$IeObj = _IEAttach ("userstyles","WindowTitle") ;miro las ventanas de IE por el título de ventana
$direccion=_IEPropertyGet ($IeObj,"locationurl") ;almaceno en la variable la dirección url.
sleep(2000)

; Subir Theme a Tolchx

 _IENavigate($IeObj, "http://tolchx.com/fotos/agregar.php",0x1000)
 _IeLoadWait($IeObj)

$ftitle=_IEGetObjByid($IeObj, "ftitle")
$fdesc=_IEGetObjByid($IeObj, "fdesc")
$furl=_IEGetObjByid($IeObj, "furl")

_IeFormElementSetValue($ftitle, "Wallpapers para Facebook - " & GUICtrlRead($Nombre))
_IeFormElementSetValue($fdesc, $direccion)
_IeFormElementSetValue($furl, GUICtrlRead($pagina) )

$button = _IEGetObjbyName ($IeObj, "new")
_IEAction ($button, "click")

; Deja plantilla.txt con la imagen.jpg default
_ReplaceStringInFile(@scriptdir & "\" & "Plantilla.txt",GUICtrlRead($pagina),"imagen.jpg")

MsgBox(0,"Listo!", "Wallpaper creado con exito :D")

While 1

   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit

EndSwitch

WEnd
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Evitar cerrar programa para usarlo nuevamente

Mensaje por Dany »

Usa una función.

Código: Seleccionar todo

#include <File.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <String.au3>
#include <IE.au3>
#include <StaticConstants.au3>
#include <Misc.au3>

InetGet("http://www.criteriondg.info/wordpress/wp-content/themes/criterion/images/walls/33.jpg", @TempDir & "\timage.jpg")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tolchx.com", 433, 276, 193, 125)
$creador = GUICtrlCreateInput("Tu Nombre", 110, 24, 225, 21)
GUICtrlSetCursor(-1, 5)
$Nombre = GUICtrlCreateInput("Nombre de la imagen", 110, 56, 225, 21)
GUICtrlSetCursor(-1, 5)
$pagina = GUICtrlCreateInput("URL de la imagen", 50, 100, 355, 21)
GUICtrlSetCursor(-1, 5)
$Button1 = GUICtrlCreateButton("Aceptar", 140, 152, 153, 57, 0)
GUICtrlSetCursor(-1, 0)
$Pic1 = GUICtrlCreatePic(@TempDir & "\timage.jpg", -8, -16, 440, 303, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)

$Checkbox5 = GUICtrlCreateCheckbox("Derecha", 464, 200, 81, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

; Login
While 1

	$msg = GUIGetMsg()
	Select
		Case $msg = $GUI_EVENT_CLOSE
			Exit
		Case $msg = $Button1
			_createtheme()


	EndSelect
WEnd
Func _createtheme()
	$IeObj = _IECreate("http://userstyles.org/logout", 0, 0)

	_IENavigate($IeObj, "http://userstyles.org/login/?view=password", 0x1000)
	_IELoadWait($IeObj)
	$ieform = _IEFormGetCollection($IeObj, 1)

	$nombres = _IEGetObjById($IeObj, "login-existing")
	$nombres.value = "usuario"
	$apellidos = _IEGetObjById($IeObj, "password-existing")
	$apellidos.value = "contraseña"

	_IEFormSubmit($ieform)
	_IELoadWait($IeObj)

	_ReplaceStringInFile(@ScriptDir & "\Plantilla.txt", "imagen.jpg", GUICtrlRead($pagina))

	$file = FileRead(@ScriptDir & "/plantilla.txt")
	$final = _StringBetween($file, "<html>", "</html>")
	Sleep(2000)

	; Cambia a pagina de creacion
	_IENavigate($IeObj, "http://userstyles.org/styles/new", 0x1000)
	_IELoadWait($IeObj)

	$Inpshort = _IEGetObjById($IeObj, "style_short_description")
	$Inplong = _IEGetObjById($IeObj, "style_long_description")
	$Inpcss = _IEGetObjById($IeObj, "css")

	;Contador aleatoreo

	$LowerLimit = 1
	$UpperLimit = 99
	$RandomNumber = Random($LowerLimit, $UpperLimit, 1)

	;Completando formularios

	_IEFormElementSetValue($Inpshort, "Wallpapers para Facebook - " & GUICtrlRead($Nombre) & " - " & $RandomNumber)
	_IEFormElementSetValue($Inplong, "Theme creado por: " & GUICtrlRead($creador) & " - Mas Wallpapers para personalizar Facebook en www.Tolchx.com")
	_IEFormElementSetValue($Inpcss, $final[0])

	Sleep(500)

	$button = _IEGetObjByName($IeObj, "commit")
	_IEAction($button, "click")
	_IELoadWait($IeObj)


	Opt("WinTitleMatchMode", 2)
	$IeObj = _IEAttach("userstyles", "WindowTitle") ;miro las ventanas de IE por el título de ventana
	$direccion = _IEPropertyGet($IeObj, "locationurl") ;almaceno en la variable la dirección url.
	Sleep(2000)

	; Subir Theme a Tolchx

	_IENavigate($IeObj, "http://tolchx.com/fotos/agregar.php", 0x1000)
	_IELoadWait($IeObj)

	$ftitle = _IEGetObjById($IeObj, "ftitle")
	$fdesc = _IEGetObjById($IeObj, "fdesc")
	$furl = _IEGetObjById($IeObj, "furl")

	_IEFormElementSetValue($ftitle, "Wallpapers para Facebook - " & GUICtrlRead($Nombre))
	_IEFormElementSetValue($fdesc, $direccion)
	_IEFormElementSetValue($furl, GUICtrlRead($pagina))

	$button = _IEGetObjByName($IeObj, "new")
	_IEAction($button, "click")

	; Deja plantilla.txt con la imagen.jpg default
	_ReplaceStringInFile(@ScriptDir & "\" & "Plantilla.txt", GUICtrlRead($pagina), "imagen.jpg")

	MsgBox(0, "Listo!", "Wallpaper creado con exito :D")

EndFunc   ;==>_createtheme

Saludos :smt027
  • ............................................Imagen
    ......................................Imagen
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: Evitar cerrar programa para usarlo nuevamente

Mensaje por iamchavo »

Exelente ,era lo que buscaba!! :)

Te hago una consulta, hay una parte del script que toma de un archivo .txt que contiene un codigo, el cual luego lo pega
en un cuadro de texto de una web.
Al pasar de au3 a exe, note que si no tengo ese archivo de texto ( /plantilla.txt) , el programa no me funciona.

Yo pensaba que al pasarlo a .exe , mi archivo de texto se incluiria dentro del programa.

De que forma podria hacer para que ese codigo que esta en plantilla.txt, se incluya en mi programa.exe cuando compile de au3 a .exe ??

Porque si en un futuro quiero que x persona use mi programa , me gustaria que solo fuera el .exe y no .exe + .txt ( con el codigo dentro )

Espero haberme explicado bien,saludos!

Te dejo el script que contiene Plantill.txt:

Es un CSS que modifica la apariencia de Facebook:

Código: Seleccionar todo

@-moz-document domain("facebook.com") {
/*== Background-Mod (with Site-Manager) ==*/
body           {background-color: rgba(255,255,255,0.0) !important;}
html#facebook  {background: url("http://tolchx.com/wallpapers/imagen%20(262).jpg") fixed; background-size:100% auto;}


/*== Transparenz für Meldungen ==*/
body>#blueBar       {background: none !important;}
.jewel, .jewelBox   {border: none !important; }
.jewelBox           {background-color: rgba(255,255,255,0.9) !important;}

.fbTimelineCapsule          {background-color: rgba(255,255,255,0.1) !important;}


.timelineLayout #contentArea {background-color: rgba(255,255,255,0.1) !important;}
#headNavOut         {background: none !important; border: none !important;}
#pageNav a          {color: #111 !important;}
#pageNav a:hover    {color: #333 !important; background: none !important;}
#navAccount         {border: none !important;}
#navAccount ul      {background-color: rgba(255,255,255,0.9) !important;  border: none !important;}
#contentCol,#left_column,#right_column    {background-color: rgba(255,255,255,0.4) 
!important;  border: none !important;}

#timeline_tab_content,#pagelet_main_column_personal   {background-color: rgba(255,255,255,0.1) 
!important;  border: none !important;}

.inputtext,.add_comment_text,.uiMorePager, .box_header  {background-color: rgba(255,255,255,0.5) !important;}
.ufi_section, .photo_table, .photo_container            {background: none !important; border: none !important;}
#sidebar_ads, #pagelet_adbox, #ego                      {display: none !important;}



  
  
/*== Chat-Bar Transparency ==*/
  div#u_0_1n, u_0_2h, #u_0_1o, #u_0_13      {color : rgb(0,0,255); background: rgba(255,255,255, 0.5);}
  div._5rzs, div#leftCol                    {background : rgba(255,255,255, 0.4);}
  div._5qqe, div#pagelet_canvas_nav_content {background : #333 ; opacity : 0.1;}  
  div._5rzs, div._4-u2.mbm._5v6e, div#u_0_0 {background : rgba(255,255,255, 0.3);}



  
/*== Schwarz-Mod für blauen Hauptbalken ==*/
#blueBarHolder #blueBar, #blueBarNAXAnchor        {background: #3a5795 !important;}
div#blueBarNAXAnchor._4f7n._xxp.fixed_elem::after {background: #3a5795 !important;}
    
    
/*== Chat-Mod ==*/
.navLink {color: #ffffff !important;}
._rw { -webkit-filter: grayscale(20%); border-radius: 5px !important;}
.bubbles div._kso     {background: none; border: 1px solid #B3D9FF; -webkit-border-radius: 2px !important;}
.bubbles ._50kd ._kso {background: none; -webkit-border-radius: 2px !important;}
.fbNubFlyoutTitlebar  {background: #3a5795 !important; border: 1px solid #3a5795 !important; border-radius: 1px !important;}


/*Made by "El3c7r1x"! - This is the first Stylish Theme i ever made. I needed a lot of help, but i'm proud, of what i got so far... :)*/

.uiSideNav .sideNavItem .hasCount:hover,
.uiSideNav .sideNavItem .noCount:hover{
   text-shadow: 2px 2px 2px rgba(57, 255, 20, 0.75) !important;
   color: #ff1414 !important;

}
.fbbody  {color: blue;}
/* Default Anchor Style */  
.fbbody a  {color: blue;}
}

@-moz-document url-prefix("https://www.facebook.com/pages") {
/*== RightCol Overlapping Fix for SiteManager ==*/
div#rightCol  {width: 125px !important;}
div#u_0_0     {width: 980px !important;}


/*== Chat-Bar Transparency for Site-Manager ==*/
/*== IMPORTANT: THIS MIGHT NOT WORK FOR EACH SITE-MANAGER ==*/
div#u_0_3q, div#u_0_3h  {color : rgb(0,0,255); background: rgba(255,255,255, 0.5);}
}







@-moz-document domain("facebook.com") {


/*== Login-Screen Mods ==*/
.loggedout_menubar_container          { background:none  !important; }
.fbIndex #globalContainer #dropmenu_container,
.fbIndex #globalContainer #content,
.fbIndex #globalContainer #pageFooter { display:   none  !important; }




/*== SchriftFarbe ==*/
label.uiInputLabelLabel, .login_form_label_field, .login_form_label_field a
{ color: #666 !important; }

/*== LoginFeld-Größen und Farben ==*/
.fbIndex .loggedout_menubar { width: auto !important; }

.fbIndex .loggedout_menubar_container {
  position:   fixed !important;
  width:      435px !important;
  height:     82px  !important;
  min-width:  0     !important;
  top:        45%   !important;
  left:       5%    !important; }

.loggedout_menubar {
  background:              rgba(0,0,0,0.6) !important;
  padding:                 0 10px 14px 10px;
	-webkit-border-radius: 6px;
	border-radius:         6px;
    box-shadow:            20px 20px 40px  rgba(0, 0, 0, 0.5);
    border:                1px solid black; }

.fbFeedbackContent{background-color: rgba(255,255,255,0.8) !important;}

UFIList,._5vsj._5vsj._5vsj,._5vsj .UFIRow,tickerActivityStories,fbFeedTickerStory tickerStoryClickable {background-color: rgba(255,255,255,0) !important;}

._4-u2,._4lh ._2-d1,._1zw4 {background-color: rgba(255,255,255,0.4) !important;}

._6m2 {background-color: rgba(255,255,255,0.5) !important;}

._4lh, .fbTimelineTimePeriod 
   {background-color: rgba(255,255,255,0.0) !important;}
}

Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Evitar cerrar programa para usarlo nuevamente

Mensaje por Dany »

Puedes pasarlo a binario y tenerlo dentro de tu progarma como una cadena.

Saludos
  • ............................................Imagen
    ......................................Imagen
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: Evitar cerrar programa para usarlo nuevamente

Mensaje por iamchavo »

Se me ocurrio que podria subir el archivo /plantilla.txt a mi servidor, asi en vez de copiar su contenido desde la pc, podria usar una url de donde el programa que estoy armando copie el contenido del .txt y lo pegue en el formulario correspondiente.

Que comando puedo usar para hacer esto que digo? , voy a buscar en el foro a ver si encuentro algo mientras espero la respuesta, saludos

El codigo que debo copiar se encuentra en una pagina web entre estos comandos:

<code id="stylish-code">

<code>


De esa forma me ahorraria que los que usen mi programa tengan que tener el archivo Plantillas.txt en su pc.
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Evitar cerrar programa para usarlo nuevamente

Mensaje por Dany »

Usa inetget luego usas alguna funcion de manejo de cadena. regex, stringinstr, etc.

Saludos :smt027
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Evitar cerrar programa para usarlo nuevamente

Mensaje por Chefito »

Y no te vale el FileInstall? Lo que hace es introducir cualquier archivo con el exe una vez compilado. Le indicas que se extraiga por ejemplo en los temporales del pc o en el mismo directorio donde este el exe y a leer el archivo desde allí. Vamos, como toda la vida se ha hecho! :smt003

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
iamchavo
Hacker del Foro
Mensajes: 134
Registrado: 26 Mar 2009, 22:46

Re: Evitar cerrar programa para usarlo nuevamente

Mensaje por iamchavo »

me habia olvidado de ese programa jaja, mi idea era que este todo dentro de un solo programa, para evitar descargar dos cosas. en el caso que lo guarde al .txt en
archivos temporales, a mi script creado en autoit deberia modificar la ruta de ese archivo.txt ?
tomas33
Mensajes: 14
Registrado: 21 Oct 2010, 14:09
Ubicación: alicante
Contactar:

Re: Evitar cerrar programa para usarlo nuevamente

Mensaje por tomas33 »

hola quizás la idea no te guste,pero ami se me ocurre que podarías empaquetar ese .exe en algún formato auto-extraible y auto-ejecutable de esta forma tienes todos los archivos dentro de un .exe
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Evitar cerrar programa para usarlo nuevamente

Mensaje por Chefito »

Fileinstall no es un programa. Es una función que trae el autoit para compilar y extraer cualquier tipo de fichero dentro del exe. Mírala en la ayuda y en google. Hay infinidad de ejemplos.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Responder