Página 1 de 1

Evitar cerrar programa para usarlo nuevamente

Publicado: 13 Abr 2015, 21:19
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

Re: Evitar cerrar programa para usarlo nuevamente

Publicado: 15 Abr 2015, 18:32
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

Re: Evitar cerrar programa para usarlo nuevamente

Publicado: 16 Abr 2015, 01:43
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;}
}


Re: Evitar cerrar programa para usarlo nuevamente

Publicado: 16 Abr 2015, 18:40
por Dany
Puedes pasarlo a binario y tenerlo dentro de tu progarma como una cadena.

Saludos

Re: Evitar cerrar programa para usarlo nuevamente

Publicado: 17 Abr 2015, 19:33
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.

Re: Evitar cerrar programa para usarlo nuevamente

Publicado: 19 Abr 2015, 14:51
por Dany
Usa inetget luego usas alguna funcion de manejo de cadena. regex, stringinstr, etc.

Saludos :smt027

Re: Evitar cerrar programa para usarlo nuevamente

Publicado: 23 Abr 2015, 17:46
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.

Re: Evitar cerrar programa para usarlo nuevamente

Publicado: 23 Abr 2015, 19:24
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 ?

Re: Evitar cerrar programa para usarlo nuevamente

Publicado: 27 Abr 2015, 01:37
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

Re: Evitar cerrar programa para usarlo nuevamente

Publicado: 27 Abr 2015, 17:52
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.