Alguem sabe por que não esta funcionando o IF? Topic is solved

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

zanusso
Posts: 19
Joined: 23 Mar 2018, 17:49

Alguem sabe por que não esta funcionando o IF?

30 Mar 2018, 10:32

Alguem sabe dizer se esta certo este IF?
Pois não esta funcionando, alguem pode ajudar?

Code: Select all


!u::	
Gui Submit, NoHide
		Loop
		{	
			if ((PixelSearch, OutputVarX, OutputVarY, 0, 0, A_ScreenWidth, A_ScreenHeight, 0x15B96E, 0, Fast) = true)
			;If ErrorLevel = 0
			{
				MsgBox, 1
				SoundBeep, 750, 500
				sleep 200
				Send, {end}
				Click, %OutputVarX%, %OutputVarY%
				sleep 1500
			}
		}


User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Alguem sabe por que não esta funcionando o IF?  Topic is solved

31 Mar 2018, 09:28

Bom dia Zanusso.

A linguagem do AutoHotkey é bastante ampla, e assim como C++, C#, Java e etc, possui variados tipos de ferramentas implementadas, de modo a permitir aos desenvolvedores escreverem os seus sripts da maneira que melhor lhes convier. Por isso temos Comandos, Funções, Labels, Objetos, Classes, e etc. Cada um desses tipos possui uma sintaxe própria, com regras e limitações próprias, e você pode escolher dentre eles o que melhor lhe convém.

No caso de comandos, como o PixelSearch, estes devem sempre ser escritos em linhas próprias, e não podem ser incluídos dentro de expressões (como a condicional IF). Como o PixelSearch tem um parâmetro onde você vai indicar uma variável para receber o resultado, e variáveis PODEM ser inclusas dentro de expressões, tudo que você tem que fazer é colocar o comando em uma linha, e depois a variável com a resposta dentro da expressão desejada.

Code: Select all

PixelSearch, Var_Saida_X, Var_Saida_Y, 0, 0, A_ScreenWidth, A_ScreenHeight, 0x15B96E, 0, Fast
If (Var_Saida_X) ; SE A VARIAVEL VAR_SAIDA_X CONTIVER ALGUM VALOR NUMERICO POSITIVO (O QUE É ESPERADO SE ENCONTROU O PIXEL DAQUELA COR)
{
 ; Esta linha executará somente se o comando PixelSearch encontrou um pixel daquela cor.
}
Você também pode fazer a verificação através da variável embutida ErrorLevel. Se essa variável contiver o valor 0 logo após a execução do comando, significa que foi encontrado um pixel com aquele valor de cor.

Code: Select all

PixelSearch, Var_Saida_X, Var_Saida_Y, 0, 0, A_ScreenWidth, A_ScreenHeight, 0x15B96E, 0, Fast
If Not (ErrorLevel) ; SE A VARIAVEL ERRORLEVEL CONTIVER 0, O COMANDO ENCONTROU UM PIXEL DAQUELA COR.
{
 ; Esta linha executará somente se o comando PixelSearch encontrou um pixel daquela cor.
}

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 16 guests