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

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Alguem sabe por que não esta funcionando o IF?

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

Post by Gio » 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.
}

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

Post by zanusso » 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
			}
		}



Top