Página 1 de 1

Nuevo en AutoIt - Quiero crear una GUI

Publicado: 05 Nov 2012, 18:44
por autoti
Hola gente, como sabran soy nuevo en el foro, tambien nuevo en autoit, lo encontre buscando un lenguaje sencillo que me permitiese crear guis sin problema, pero que no fuese basic ni un programa pesado como Visual Basic.

la cosa va que se me hace aun raro, bueno se que es bastante facil, pero soy tarugo para agarrarle el hilo a algo.
manuales no consegui mucho sobre autoit realmente, algunos en especial en este foro?

Que script uso para que en un boton muestre el abrir dialogo para abrir una imagen y luego se muestre en un cuadro?

pretendo crear una gui para optipng, y tambien como proyecto para aprender a programar en autoit :smt003

Lo unico que se hasta ahora es crear la interfaz en Koda, usar el script en autoit y muy muy poco (nada diria yo) de algunos scripts como "msgbox "abriste tal imagen" (resumiendo claro) al pinchar x boton, pero mas nada xD

bueno, es apenas el comienso, espereo no molestar.

Re: Nuevo en aAutoIt - Quiero crear una GUI

Publicado: 06 Nov 2012, 02:11
por Dany
Hola, esto es lo que necesitas. Para mejor información presiona F1 ahí hay mucha información y ejemplos de cada funcion de autoit.

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 343, 220, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 112, 176, 97, 33)
$Pic1 = GUICtrlCreatePic("", 24, 8, 289, 145)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		case $Button1
			$tuimagen=FileOpenDialog("Imagenes",@ScriptDir,"Imagenes (*.jpg;*.bmp;*.gif)",1)
			GUICtrlSetImage($Pic1,$tuimagen)

	EndSwitch
WEnd

Saludos

Re: Nuevo en AutoIt - Quiero crear una GUI

Publicado: 06 Nov 2012, 21:51
por jamaro
autoti ¡Felicidades por tu comienzo en este apasionante lenguaje!

Creo que es una buena idea empezar por hacer un programa para manejar otro como OptiPNG.

La parte del GUI ya te la ha orientado Dany y para luego ejecutar OptiPNG tienes la función run de Autoit.

La ayuda de Autoit es muy buena, y tiene muchos ejemplos. Si necesitas que te echemos una mano, ya sabes donde seguir preguntando ;-)

¡Suerte! Y si lo deseas, publica tu código cuando esté listo para usar, que seguro que nos aportas ideas al resto de usuarios.

Re: Nuevo en AutoIt - Quiero crear una GUI

Publicado: 06 Nov 2012, 23:41
por autoti
Hola, esto es lo que necesitas. Para mejor información presiona F1 ahí hay mucha información y ejemplos de cada funcion de autoit.

Código: Seleccionar todo

Código: Seleccionar todo
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 343, 220, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 112, 176, 97, 33)
    $Pic1 = GUICtrlCreatePic("", 24, 8, 289, 145)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
          case $Button1
             $tuimagen=FileOpenDialog("Imagenes",@ScriptDir,"Imagenes (*.jpg;*.bmp;*.gif)",1)
             GUICtrlSetImage($Pic1,$tuimagen)

       EndSwitch
    WEnd
Saludos

Muchisimas gracias.

autoti ¡Felicidades por tu comienzo en este apasionante lenguaje!

Creo que es una buena idea empezar por hacer un programa para manejar otro como OptiPNG.

La parte del GUI ya te la ha orientado Dany y para luego ejecutar OptiPNG tienes la función run de Autoit.

La ayuda de Autoit es muy buena, y tiene muchos ejemplos. Si necesitas que te echemos una mano, ya sabes donde seguir preguntando ;-)

¡Suerte! Y si lo deseas, publica tu código cuando esté listo para usar, que seguro que nos aportas ideas al resto de usuarios.
Si, es realmene grande el lenguaje, justo lo que buscaba, ligero y facil, sin frameworks ni dependencias estorbantes.
La documentacion de autoit es exelente, esta una traducción en el foro por otro usuario, pero un poco desactualizada, así que yo mismo me puse a traducir la actual (v3.3.8.1) para ahorrar mucho trabajo, en base a la anterior traducida.

Y estare molestando bastante, ya que pregunto mucho xD

Gracias por el dato de run, por ahora no e echo nada, pero quisiera saber como abrir imagenes PNG, ya que note que solo abre gif, jpg y bmp :(
Ironicamenete (como es obvio) el formato que nesesito es PNG pues OptiPNG trabaja con tal :smt043

Muchas a gracias, se ve buena onda el foro!

y pues aca el codigo para mostrar mas o menos como lo quiero, luego que tome experiencia pues lo retoco :P

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Forma = GUICreate("OptiPNG IGU", 422, 423, 270, 150)

$Boton1 = GUICtrlCreateButton("Elegir Imagen...", 8, 400, 97, 17)
$Boton2 = GUICtrlCreateButton("Comensar", 112, 400, 97, 17)
$Boton3 = GUICtrlCreateButton("Cancelar", 216, 400, 97, 17)
$Boton4 = GUICtrlCreateButton("Acerca de...", 320, 400, 97, 17)

$Slider1 = GUICtrlCreateSlider(8, 376, 305, 17)

$Checkbox1 = GUICtrlCreateCheckbox("Cerrar al finalizar", 320, 376, 97, 17)

$GrupoImagen = GUICtrlCreateGroup("Imagen", 8, 8, 409, 361)
$Pic1 = GUICtrlCreatePic("", 16, 24, 393, 337)

GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)


While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit
   
Case $Boton1
   $tuimagen=FileOpenDialog("Seleccione Imagen...",@ScriptDir,"Imagenes PNG(*.png; *.bmp; *.jpg; *.gif)",1)
         GUICtrlSetImage($Pic1,$tuimagen)

Case $Boton2
   

Case $Boton3
   Exit

 EndSwitch
WEnd
Edito:

Como puedo llamar a OptiPNG.exe suponiendo que esta en el mismo lugar que la GUI, osea quiero hacer (aprender) esto.

* que la imagen que abra desde la gui sea (obviamente) es la que se va a optimizar con optipng.
* crear un combo que contenga un grupo de niveles de optimizacion de optipng y asi prosesar las imagenes.
(aun no se como crear un combo y que tenga varias opciones)
* Que el boton "Comenzar" Aplique la opcion seleccionada del combo a la imagen abierta con optipng.


Niveles de optimizacion de optipng
Optimization levels:
-o0 <=> -o1 -nx -nz (0 or 1 trials)
-o1 <=> -zc9 -zm8 -zs0 -f0 (1 trial)
(or...) -zc9 -zm8 -zs1 -f5 (1 trial)
-o2 <=> -zc9 -zm8 -zs0-3 -f0,5 (8 trials)
-o3 <=> -zc9 -zm8-9 -zs0-3 -f0,5 (16 trials)
-o4 <=> -zc9 -zm8 -zs0-3 -f0-5 (24 trials)
-o5 <=> -zc9 -zm8-9 -zs0-3 -f0-5 (48 trials)
-o6 <=> -zc1-9 -zm8 -zs0-3 -f0-5 (120 trials)
-o7 <=> -zc1-9 -zm8-9 -zs0-3 -f0-5 (240 trials)
-o7 -zm1-9 <=> -zc1-9 -zm1-9 -zs0-3 -f0-5 (1080 trials)
Aqui el codigo de la gui un poco cambiada.

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Forma = GUICreate("OptiPNG IGU", 422, 423, 270, 150)

$Boton1 = GUICtrlCreateButton("Elegir Imagen...", 8, 400, 97, 17)
$Boton2 = GUICtrlCreateButton("Resultado...", 112, 400, 97, 17)
$Boton3 = GUICtrlCreateButton("Comensar", 216, 400, 97, 17)
$Boton4 = GUICtrlCreateButton("Acerca de...", 112, 376, 201, 17)
$Boton5 = GUICtrlCreateButton("Cancelar", 320, 400, 97, 17)

$Checkbox1 = GUICtrlCreateCheckbox("Cerrar al finalizar", 320, 376, 97, 17)

$GrupoImagen = GUICtrlCreateGroup("Imagen", 8, 8, 409, 361)
$Pic1 = GUICtrlCreatePic("", 16, 24, 393, 337)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Combo1 = GUICtrlCreateCombo("Combo1", 8, 376, 97, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUISetState(@SW_SHOW)


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

Case $Boton1
   $tuimagen=FileOpenDialog("Seleccione Imagen...",@ScriptDir,"Imagenes PNG(*.png; *.bmp; *.jpg; *.gif)",1)
         GUICtrlSetImage($Pic1,$tuimagen)

Case $Boton5
   Exit

 EndSwitch
WEnd
Bueno con ver la gui creo que se entiende la idea :P xD

Re: Nuevo en AutoIt - Quiero crear una GUI

Publicado: 08 Nov 2012, 11:55
por Ximorro
Hola autoti, para lo del GUI aunque ya lo tienes si quieres tener más conocimiento de cómo funciona ese código te recomiendo este tutorial que hice explicando con bastante detalle el código de un GUI muy simple.
http://www.emesn.com/autoitforum/viewto ... f=2&t=2246

Para ejecutar programas externos a AutoIt puedes hacerlo con las funciones Run() o ShellExecute() (y versiones RunWait() o ShellExecuteWait() que se esperan a que acabe el programa antes de seguir ejecutando AutoIt).

Mírate la ayuda de esas funciones (está bien hecha, muy buena fuente de información) e inténtalo. Si tienes dudas ya sabes ;-)