No llama al evento - Help me

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

No llama al evento - Help me

Mensaje por yasmany »

Buen día con todos, sucede que en este pequeño ejemplo no me respone al evento despues de ocultar la ventana y luego restablecerla, pero mientras está visible cuando se ejecuta por primera vez el boton si da respuesta pero luego ya no, como que no hace caso al evento.
Por favor si alguien puede ayudarme... :smt024

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#NoTrayIcon

Opt("GUIOnEventMode", 1)

Global $verificarActivacion, $Input1, $TrayItemMostrar, $TrayItemSalir
$interfaz = GUICreate("Form2", 218, 289, 202, 201)
GUISetOnEvent($GUI_EVENT_CLOSE, "cerrarInterfaz")

$verificarActivacion = GUICtrlCreateButton("Verificar Activacion", 24, 152, 155, 25)
GUICtrlSetOnEvent(-1, "accionVerificar")

$Input1 = GUICtrlCreateInput("", 40, 112, 121, 21)

GUISetState(@SW_SHOW)

$TrayItemMostrar = TrayCreateItem("Abrir ventana")
TrayItemSetOnEvent(-1, "abrirVentana")
TrayCreateItem(""); crea una linea separadora
$TrayItemSalir = TrayCreateItem("Salir")
TrayItemSetOnEvent(-1, "ExitEvent")

gui()
Func gui()
	While 1
		Sleep(100)
	WEnd
EndFunc   ;==>gui

Func tray()
	Opt("TrayMenuMode", 1)
	Opt("GUIOnEventMode", 0)
	Opt("TrayOnEventMode", 1)
	Opt("TrayIconHide", 0)

	TraySetClick(16)
	TraySetState()
	
	While 1
		Sleep(10)
	WEnd
EndFunc   ;==>tray

Func abrirVentana()
	GUISetState(@SW_SHOW, $interfaz)
	Opt("TrayIconHide", 1)
	gui()
EndFunc   ;==>abrirVentana

Func ExitEvent()
	Exit
EndFunc   ;==>ExitEvent

Func accionVerificar()
	GUICtrlSetData($Input1, "estoy activo, ")
	Sleep(1000)
	GUICtrlSetData($Input1, "")
EndFunc   ;==>accionVerificar

Func cerrarInterfaz()
GUISetState(@SW_HIDE, $interfaz)
tray()
EndFunc   ;==>Form2Close
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
PDF
Hacker del Foro
Mensajes: 152
Registrado: 18 Ene 2013, 23:23

Re: No llama al evento - Help me

Mensaje por PDF »

Es por esta linea innecesaria que agregas a la función tray de tu script:

Código: Seleccionar todo

Opt("GUIOnEventMode", 0)

Primero activas la opción OnEvent de la Interfaz y luego al llamar a tray se desactiva..
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: No llama al evento - Help me

Mensaje por yasmany »

Lo he probado pero no resulta.
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
PDF
Hacker del Foro
Mensajes: 152
Registrado: 18 Ene 2013, 23:23

Re: No llama al evento - Help me

Mensaje por PDF »

yasmany escribió:Lo he probado pero no resulta.
Es cierto, pero si lo pruebas asi, si funciona bien...

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#NoTrayIcon

Opt("GUIOnEventMode", 1)
Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)
Opt("TrayIconHide", 0)

Global $verificarActivacion, $Input1, $TrayItemMostrar, $TrayItemSalir
$interfaz = GUICreate("Form2", 218, 289, 202, 201)
GUISetOnEvent($GUI_EVENT_CLOSE, "cerrarInterfaz")

$verificarActivacion = GUICtrlCreateButton("Verificar Activacion", 24, 152, 155, 25)
GUICtrlSetOnEvent(-1, "accionVerificar")

$Input1 = GUICtrlCreateInput("", 40, 112, 121, 21)

GUISetState(@SW_SHOW)

$TrayItemMostrar = TrayCreateItem("Abrir ventana")
TrayItemSetOnEvent(-1, "abrirVentana")
TrayCreateItem(""); crea una linea separadora
$TrayItemSalir = TrayCreateItem("Salir")
TrayItemSetOnEvent(-1, "ExitEvent")

While 1
	Sleep(100)
WEnd

Func tray()

	TraySetClick(16)
	TraySetState()

EndFunc   ;==>tray

Func abrirVentana()
	GUISetState(@SW_SHOW, $interfaz)
	Opt("TrayIconHide", 1)
EndFunc   ;==>abrirVentana

Func ExitEvent()
	Exit
EndFunc   ;==>ExitEvent

Func accionVerificar()
	GUICtrlSetData($Input1, "estoy activo, ")
	Sleep(1000)
	GUICtrlSetData($Input1, "")
EndFunc   ;==>accionVerificar

Func cerrarInterfaz()
	GUISetState(@SW_HIDE, $interfaz)
	tray()
EndFunc   ;==>cerrarInterfaz
El problema estaba en los bucles while-wend que ubicabas en las funciones tray y gui que no eran necesarias, solo nececitas un bucle principal.. :smt023
Saludos
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: No llama al evento - Help me

Mensaje por yasmany »

Gracias PDF, me sirvió muy bien.
Reitero mi agradecimiento por tu tiempo.
Saludos :smt024
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
PDF
Hacker del Foro
Mensajes: 152
Registrado: 18 Ene 2013, 23:23

Re: No llama al evento - Help me

Mensaje por PDF »

Cuando gustes, para eso estamos.. :smt024
Responder