Página 1 de 1

problema con algunos comandos.

Publicado: 18 Dic 2009, 23:02
por xapu
mi nuevo problema.. es que los programas no hacen caso a este bucle:

Código: Seleccionar todo

While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
       EndSwitch
    WEnd
entonces no puedo hacer unas cosas que necesito

Re: problema con algunos comandos.

Publicado: 18 Dic 2009, 23:28
por XPyro
Esto si que no creo que sea problema de AutoIt pero tienes otra opción y es usar GUIOnEventMode

Código: Seleccionar todo

#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1)  ; Change to OnEvent mode 
$mainwindow = GUICreate("Hello World", 200, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
GUICtrlSetOnEvent($okbutton, "OKButton")
GUISetState(@SW_SHOW)

While 1
  Sleep(1000)  ; Idle around
WEnd

Func OKButton()
  ;Note: at this point @GUI_CTRLID would equal $okbutton,
  ;and @GUI_WINHANDLE would equal $mainwindow
  MsgBox(0, "GUI Event", "You pressed OK!")
EndFunc

Func CLOSEClicked()
  ;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE, 
  ;and @GUI_WINHANDLE would equal $mainwindow 
  MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
  Exit
EndFunc

Re: problema con algunos comandos.

Publicado: 21 Dic 2009, 09:28
por Ximorro
EL bucle inicial está bien escrito, probablemente el problema es que el programa no está ejecutándolo, estará en otro bucle o parado por otro sitio...

O si lo has simplificado y en realidad contiene otras cosas, igual son muy "pesadas" y casi no le da tiempo a comprobar los eventos, en ese caso quizás el método que te pone XPyro lo solucione.

Si acaso pon más código a ver qué puede estar pasando... ¿no tendrás dos GUIs? Si tienes dos igual se están liando los eventos, tienes que mirar de qué ventana vienen...