Ocultar/Mostrar aplicación

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
N4THAN1EL
Mensajes: 22
Registrado: 02 Abr 2008, 23:41

Ocultar/Mostrar aplicación

Mensaje por N4THAN1EL »

Buenas :smt001 Haciendo mi reproductor de música me ha surgido la duda de cómo hacer que se muestre y se oculte en la barra de tareas, he estado leyendo sobre el TraySetState, TraySetToolTip pero no acabo de encontrar el mecanismo adecuado, si pudieras hacerme un prototipo sencillo lo agradecería mucho.

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

Re: Ocultar/Mostrar aplicación

Mensaje por Chefito »

Pero que es lo que quieres??? que por ejemplo cuando le des al boton de minimizar desaparezca la aplicación y aparezca el icono en la barra de herramientas????
Explicate mejor.

Para mostrar el icono se utiliza TraySetState(1) y para ocultarlo TraySetState(2). Simplemente eso.

Si lo que quieres hacer es algo como lo que te dije al principio, tienes que hacer que cuando le des al botón minimizar de la ventana principal (eso se detecta cuando la funcion GuiGetMsg() lanza el mensaje $GUI_EVENT_MINIMIZE), cambiar el estado de la ventana a oculta con GUISetState(@SW_HIDE), e inmediatamente después hacer visible el icono en la barra de herramientas con TraySetState(1). Al contrario sería con GUISetState(@SW_SHOW) e inmediatamente TraySetState(2).

Intenta algo y ya nos dirás.

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 ;).
N4THAN1EL
Mensajes: 22
Registrado: 02 Abr 2008, 23:41

Re: Ocultar/Mostrar aplicación

Mensaje por N4THAN1EL »

Código: Seleccionar todo

#include <GUIConstantsEx.au3>

$Form1 = GUICreate("Form1", 291, 172, 193, 115)
$Input1 = GUICtrlCreateInput("Input1", 48, 56, 177, 21)
GUISetState(@SW_SHOW)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
	Case $GUI_EVENT_MINIMIZE
		GUISetState(@SW_HIDE)
		TraySetState(1)
	Case $GUI_EVENT_CLOSE
		Exit
	EndSwitch
WEnd
Ahora con esto quiero hacer que al hacer click en el icono en la barra de tareas se vuelva a mostrar la ventana, cómo sería?
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Ocultar/Mostrar aplicación

Mensaje por Chefito »

Algo así???

Código: Seleccionar todo

#Include <Constants.au3>
#include <GUIConstantsEx.au3>
#NoTrayIcon		;no pone el icono en el Tray.

Opt("TrayMenuMode",1)	;quita el menu del icono

$Form1 = GUICreate("Form1", 291, 172, 193, 115)
$Input1 = GUICtrlCreateInput("Input1", 48, 56, 177, 21)
GUISetState(@SW_SHOW)

While 1
   $nMsg = GUIGetMsg()
	$msgTray=TrayGetMsg()	;recoge los mensajes creados por el Tray.
	If $msgTray=$TRAY_EVENT_PRIMARYDOWN Then	;si cliqueas encima del icono, la ventana se restaura y desaparece el icono.
		GUISetState(@SW_SHOW)
		GUISetState(@SW_RESTORE)
		TraySetState(2)
	EndIf
   Switch $nMsg
   Case $GUI_EVENT_MINIMIZE
      GUISetState(@SW_HIDE)
      TraySetState(1)
   Case $GUI_EVENT_CLOSE
      Exit
   EndSwitch
WEnd
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 ;).
N4THAN1EL
Mensajes: 22
Registrado: 02 Abr 2008, 23:41

Re: Ocultar/Mostrar aplicación

Mensaje por N4THAN1EL »

Perfecto :smt023 ! No conocía la función $TRAY_EVENT_PRIMARYDOWN, muchas gracias =)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Ocultar/Mostrar aplicación

Mensaje por Chefito »

Mmmmm...no es una función, es una constante. La función TrayGetMsg() devuelve los eventos como valores numéricos, y AutoIt los ha declarado en varias constantes.
Mira en la ayuda la función TrayGetMsg(). Hay están todas las constantes devueltas por ésta según la acción que hagas.

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 ;).
N4THAN1EL
Mensajes: 22
Registrado: 02 Abr 2008, 23:41

Re: Ocultar/Mostrar aplicación

Mensaje por N4THAN1EL »

Gracias por la aclaración :smt001
Responder