ajuda com pixelsearch

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

Moderator: Gio

gaby1337
Posts: 26
Joined: 07 Jan 2020, 19:26

ajuda com pixelsearch

07 Jan 2020, 19:30

eu fiz um pixelsearch pra clicar em uma área específica da tela sempre que o píxel for encontrado, porém ele está funcionando com outros píxeis, de outras cores, nada a ver com a cor do píxel que eu selecionei, como faço pra resolver?

Code: Select all

PixelSearch, Px, Py, 0, 0, 464, 757, 0x20174C, 3, Fast	;click
if (ErrorLevel = 0)
{
	Sleep, 1000
	Click, left, 540, 680
	Return
}
User avatar
Gio
Posts: 1248
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: ajuda com pixelsearch

08 Jan 2020, 09:20

Bom dia Gaby1337.

Seja bem-vindo ao fórum da comunidade do AutoHotkey.

Várias coisas podem estar acontecendo no seu código. Eis algumas coisas que vale a pena verificar:

Primeiro, a cor que você está buscando é um azul escuro ou uma cor vinho? Se for uma cor azul escuro, o código de cores está invertido: O comando PixelSearch por padrão espera um código de cor no formato BGR. Isso pode confundir porque o padrão mais conhecido é o RGB. Para usar um código no formato RGB basta indicar no parâmetro de opções a palabra RGB (ao lado da palavra fast). Outra opção é simplesmente transformar o código de RGB para BGR, pois para fazer isso basta inverter a ordem dos bytes de cada cor (exemplo: 0x20174c em RGB é o mesmo que 0x4c1720 em BGR). Faça apenas uma dessas duas alterações para consertar o código (se fizer as duas ao mesmo tempo não vai dar certo).

Segundo, as coordenadas que o comando PixelSearch retorna por padrão são relativas à janela atualmente ativa. Isso pode causar problemas, então se você não estiver usando um sistema com múltiplos monitores, eu sugiro trocar para coordenadas relativas à tela do computador. Você pode fazer isso usando CoordMode. Também convém lembrar de trocar as coordenadas do comando Click para que sejam relativas à tela do computador (assim, tudo ficará em sincronia).

Terceiro, as coordenadas enviadas ao comando Click parecem ter sido escritas numericamente no seu código. Se você quiser que o clique ocorra no local onde o pixel foi encontrado, deve fornecer os valores que estiverem nas variáveis de saída do comando PixelSearch ao comando Click.

Quarto, o PixelSearch no seu código está configurado para buscar a cor em uma área pequena no canto superior-esquerdo da tela (464 x 757 pixels). Verifique se o pixel em questão sempre estará de fato localizado nesta área da tela.

Exemplo:

Code: Select all

CoordMode, Pixel, Screen
PixelSearch, Px, Py, 0, 0, 464, 757, 0x20174C, 3, Fast RGB ; Azul escuro
if (ErrorLevel = 0)
{
	Sleep, 1000
	CoordMode, Mouse, Screen
	Click, left, %Px%, %Py%
	Return
}
Espero ter ajudado, se ainda tiver alguma dúvida, basta postar abaixo :thumbup:
gaby1337
Posts: 26
Joined: 07 Jan 2020, 19:26

Re: ajuda com pixelsearch

08 Jan 2020, 10:24

Oii, então, esse método vai fazer com que o pixelsearch procure por um píxel bem específico e apenas ele? Eu estava usando o pixelsearch com o propósito de identificar uma cor só, sem variações ou mudanças, antes eu usava o imagesearch mas começou a dar alguns bugs quando eu tentava utilizar o script em outro computador... O pixelsearch tá funcionando bem, porém eu não entendi muito como ele funciona, mesmo lendo a documentação... Eu queria mesmo identificar uma cor bem específica de uma determinada área da tela e realizar algumas funções sempre que esta cor aparecer.
User avatar
Gio
Posts: 1248
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: ajuda com pixelsearch

08 Jan 2020, 10:48

Oii, então, esse método vai fazer com que o pixelsearch procure por um píxel bem específico e apenas ele?

No oitavo parâmetro do comando, você configurou uma variação de até 3 tons para cada canal de cor... Então pode ocorrer um match se a cor for muitíssimo semelhante. Para fazer com que uma cor (e somente uma cor) dê match, o parâmetro variation deve conter o valor 0 (zero).

O pixelsearch tá funcionando bem, porém eu não entendi muito como ele funciona, mesmo lendo a documentação...

Fiz um pequeno tutorial em português sobre o uso dos comandos ImageSearch e PixelSearch. Você já o leu? Segue o link: https://www.autohotkey.com/boards/viewtopic.php?f=71&t=70319

O segredo é tentar entender e testar todos os parâmetros um a um. Primeiro você aprende como configurar os códigos de cores... Depois como configurar a área da tela... Depois o que fazer com as coordenadas retornadas... Depois como configurar a variação de cor... E assim sucessivamente.

Se após ler o tutorial e realizar alguns testes com o comando ainda tiver dúvidas, basta postar aqui que responderemos :thumbup:
rdmartins
Posts: 7
Joined: 11 Jan 2020, 09:12

Re: ajuda com pixelsearch

11 Jan 2020, 12:36

Boa tarde.
Gaby e Gio, eu preciso desenvolver um script assim, que execute o comando de acordo com uma cor apresentada em um determinado pixel.
Porém, não sei nada de programação, estou procurando alguém que possa desenvolver para mim.
Gaby e Gio, alguém se interessa? Posso pagar pelo serviço.
Obrigado.
rdmartins
Posts: 7
Joined: 11 Jan 2020, 09:12

Re: ajuda com pixelsearch

12 Jan 2020, 14:16

Gio, também quero um script assim.
Estou fazendo da seguinte forma, mas não esta dando certo.
Pode me ajudar?

Code: Select all

a::
CoordMode, Pixel, Screen
PixelSearch, 1050, 117, 1133, 969, 0x55BC65, 3, Fast RGB
if (ErrorLevel = 0)
{
	Sleep, 100
	CoordMode, Mouse, Screen
	Click, left, 1880, 375
	Return
}

PixelSearch, 1050, 117, 1133, 969, 0xDC5039, 3, Fast RGB
if (ErrorLevel = 0)
{
	Sleep, 100
	CoordMode, Mouse, Screen
	Click, left, 1871,  469
	Return
}

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 14 guests