Jump to content
Sign in to follow this  
Belini

Saber quando a GUI está oculta.

Recommended Posts

Procurei em todas funções relacionadas a GUI e não encontrei o que eu preciso, a função que mais se aproxima do que eu quero é a WinActive() que detecta quando a janela está ativa ou inativa mas no meu caso tem hora que a janela está inativa mas está visível e o que eu preciso mesmo és sabar quando ela está oculta com o comando @SW_HIDE alguém conhece uma forma para pegar esta informação?

Share this post


Link to post
Share on other sites

Veja se isso ajuda:

#include <GUIConstantsEx.au3>

Example()

Func Example()
	$hGui = GUICreate("Janela GUI", 400, 120, -1, -1)
	Local $hBotaoChecar = GUICtrlCreateButton("Checar", 10, 10)
	GUISetState(@SW_SHOW, $hGui)

	While 1
		Switch GUIGetMsg()
			Case $GUI_EVENT_CLOSE
				ExitLoop
			Case $hBotaoChecar
				$iEstadoGUI = WinGetState("Janela GUI", "")
				MsgBox(0, "Estado da GUI visível.", $iEstadoGUI & @CRLF & _AvaliarEstado($iEstadoGUI))
				GUISetState(@SW_HIDE, $hGui)
				$iEstadoGUI = WinGetState("Janela GUI", "")
				MsgBox(0, "Estado da GUI oculta.", $iEstadoGUI & @CRLF & _AvaliarEstado($iEstadoGUI))
				GUISetState(@SW_SHOW, $hGui)
		EndSwitch
	WEnd
EndFunc   ;==>Example

Func _AvaliarEstado($iEstado)
	$sRetorno = ""
	If BitAND($iEstado, 2) = 2 Then
		$sRetorno &= "Janela está visível"
	Else
		$sRetorno &= "Janela está oculta"
	EndIf
	Return $sRetorno
EndFunc
Aqui é a função mais completa para quem quer pegar outros dados.

Func _AvaliarEstado($iEstado)
	$sRetorno = ""
	If BitAND($iEstado, 1) = 1 Then $sRetorno &= "Janela Existe" & @CRLF
	If BitAND($iEstado, 2) = 2 Then $sRetorno &= "Janela está visível" & @CRLF
	If BitAND($iEstado, 4) = 4 Then $sRetorno &= "Janela está ativada" & @CRLF
	If BitAND($iEstado, 8) = 1 Then $sRetorno &= "Janela está ativa" & @CRLF
	If BitAND($iEstado, 16) = 16 Then $sRetorno &= "Janela está minimizada" & @CRLF
	If BitAND($iEstado, 32) = 32 Then $sRetorno &= "Janela está maximizada" & @CRLF
	Return $sRetorno
EndFunc

  • Like 2

Share this post


Link to post
Share on other sites

Obrigado pela resposta @Sergio-F mas isto ainda não é o que eu preciso pois o que eu quero é saber se ela está visível mas sem clicar em nada!

Edited by Belini

Share this post


Link to post
Share on other sites

Outra idéia???!!!

 

Meu amigo você não precisa clicar em nada pra saber o estado de uma janela!! Somente no exemplo que lhe foi passado aqui para você entender...

 

O código que você precisa é esse:

 

$iEstadoGUI = WinGetState("NOME_DA_JANELA_QUE_VOCÊ_PROCURA_SABER_O_ESTADO", "")

MsgBox(0, "Estado da GUI oculta.", $iEstadoGUI & @CRLF & _AvaliarEstado($iEstadoGUI))

Func _AvaliarEstado($iEstado)
    $sRetorno = ""
    If BitAND($iEstado, 2) = 2 Then
        $sRetorno &= "Janela está visível"
    Else
        $sRetorno &= "Janela está oculta"
    EndIf
    Return $sRetorno
EndFunc

 

JS

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×