Detecção de imagem + uso da tecla escolhida

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

Moderator: Gio

saiddias
Posts: 3
Joined: 29 Dec 2020, 21:51

Detecção de imagem + uso da tecla escolhida

Post by saiddias » 16 May 2022, 12:57

Boa tarde pessoal!

Estou tentando aprender um pouco mais sobre o assunto e gostaria de pedir a ajuda de vocês.

Gostaria de criar um script onde ele iria verificar x imagem e assim que ela aparecesse(com base em %), uma tecla escolhida seria pressionada.

Exemplo, se eu definir a porcentagem 60%, o script não vai apertar a tecla até que o valor seja igual ou inferior (essa colheta/comparação será coletada em uma pasta com as imagens). Essa detecção de imagem seria de uma determinada área

Tentei usar a seguinte linha no meu code, porém a tecla fica sendo pressionada o tempo todo. :cry:

Code: Select all

ImageSearch, x, y, 3583, 47, 3834, 768, BarsImgs\Bars%Porcentagem_Para_Apertar_Botao1%Size.png
image.png
image.png (2.71 KiB) Viewed 659 times
Essa imagens seriam um arquivo independe do outro, sendo assim, 10 arquivos.

Poderiam me ajudar nesse script?

OBS: Não tô querendo o script pronto, apenas uma ajuda pra montar, uma ideia de como posso executar isso. (SOU NOVATO) sem rage please!

saiddias
Posts: 3
Joined: 29 Dec 2020, 21:51

Re: Detecção de imagem + uso da tecla escolhida

Post by saiddias » 17 May 2022, 11:14

Alguém?

@UP

User avatar
Encrypton
Posts: 19
Joined: 10 Feb 2022, 15:21

Re: Detecção de imagem + uso da tecla escolhida

Post by Encrypton » 18 May 2022, 06:28

Olá, bom dia

Você não pode comparar imagem com Number, mesmo que aparentemente tenha um numero nessa imagem, não deixa de ser imagem, impossibilitando usar os sinais de menor ou igual a que <=

Até daria pra fazer um esquema com uma série de imagens usando o looping Switch, mas ficaria um código pesado e não sei se valeria o esforço

thalesduarte
Posts: 95
Joined: 13 Sep 2021, 06:08

Re: Detecção de imagem + uso da tecla escolhida

Post by thalesduarte » 18 May 2022, 08:31

Bom dia.
Como o @Encrypton Disse, de fato, comparar imagens com textos é complicado.

Então você pode seguir dessa forma.

Code: Select all

ImageSearch, PosX, PosY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, %A_ScriptDir%/deadlock.png ; Verifica a Imagem
if ( ErrorLevel = 0 )
{
X_Um_Pouco_Mais_A_Esquerda := PosX + 20 ;
Y_Um_Pouco_Mais_Abaixo := PosY + 20 ;
MouseMove, %X_Um_Pouco_Mais_A_Esquerda%, %Y_Um_Pouco_Mais_Abaixo% ;
MouseClick ; Aqui ele vai clicar na imagem
}
Então já que você quer comparar porcentagens fixas, você pode criar essa condição com cada imagem de porcentagem no seu script.

saiddias
Posts: 3
Joined: 29 Dec 2020, 21:51

Re: Detecção de imagem + uso da tecla escolhida

Post by saiddias » 18 May 2022, 09:59

Bom dia!

Muito obrigado pela atenção pessoal, os textos nas imagens do post são apenas ilustrativas, elas não existem nas imagens reais.

Fiz a substituição e realizei o ajuste onde a pasta das imagens estão, porém com o "( ErrorLevel = 0 )" em zero não há nenhuma ação, quando coloco "( ErrorLevel = 1 )" volta ao mesmo problema que eu estava antes, fica uma repetição infinita D: da ação que no caso é o click do mouse, porem ele clica em qualquer lugar e não em cima da imagem quando ela aparece, por algum motivo eu acredito está errando em definir a área de busca.

Vou colocar uma print com o tamanho da minha tela, configuração de resolução e onde eu estou tentando buscar a imagem agora.
image.png
image.png (195.83 KiB) Viewed 598 times
Na linha ficou dessa forma:

Code: Select all

ImageSearch, PosX, PosY, 3583, 47, 3834, 768, BarsImgs\Bars%Porcentagem_Para_Apertar_Botao1%Size.png
Estou errando em algo? D:

User avatar
Encrypton
Posts: 19
Joined: 10 Feb 2022, 15:21

Re: Detecção de imagem + uso da tecla escolhida

Post by Encrypton » 18 May 2022, 11:27

Code: Select all

ImageSearch, PosX, PosY, 3583, 47, 3834, 768, BarsImgs\Bars%Porcentagem_Para_Apertar_Botao1%Size.png
Estou errando em algo? D:
[/quote]

Não sei se em ahk interfere, mas em algumas linguagens não é recomendado usar simbolos no nome (ex: +-/*=><;:%)

Eu não testei o script, mas a lógica seria +/- essa, você vai ter que criar 100 prints da imagem na pasta Images, seguindo os nomes que serão setadas na função ex:

functionSearchImage("96percent", "Y96percent", "96percent")
functionSearchImage("95percent", "Y95percent", "95percent")
functionSearchImage("94percent", "Y94percent", "94percent")

Sendo o primeiro parametro a coordenada X, o 2 parametro a coordenada Y, e o terceiro parametro o nome do arquivo

Code: Select all

#SingleInstance, Force
SendMode Input
SetWorkingDir, %A_ScriptDir%

F12::
    functionSearchImage("X100percent", "Y100percent", "100percent")
    functionSearchImage("X99percent", "Y99percent", "99percent")
    functionSearchImage("98percent", "Y98percent", "98percent")
    functionSearchImage("98percent", "Y97percent", "97percent")


    functionSearchImage(varNameX, varNameY, varNameImage){
        ImageSearch, varNameX, varNameY, 3583, 47, 3834, 768, %A_ScriptDir%/images/varNameImage.png
        if(varNameX != ""){
            ToolTip, Imagem encontrada com sucesso! varNameImage
            Send, {o}; tecla a ser pressionada após encontrar a imagem
        }
        else{
            ToolTip, Nenhuma imagem foi encontrada!
        }
    }
Return

F11:
    ExitApp
return

thalesduarte
Posts: 95
Joined: 13 Sep 2021, 06:08

Re: Detecção de imagem + uso da tecla escolhida

Post by thalesduarte » 18 May 2022, 11:33

( ErrorLevel = 0 ) significa que CASO ELE ACHE a imagem, irá retornar a função indexada dentro do ErrorLevel 0

Se você colocar ( ErrorLevel = 1) ele sempre vai retornar esse valor quando NÃO encontrar a imagem.
Por isso está acontecendo o seu loop infinito ai.

Verifica direitinho se ele tá reconhecendo a imagem ou se de fato a imagem está escrita correta.

Post Reply

Return to “Ajuda e Suporte Geral”