AJUDA COM SCRIPT

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

Moderator: Gio

Feben

AJUDA COM SCRIPT

01 Oct 2019, 19:50

Olá, estou aprendendo a usar o autohotkey e tenho algumas duvidas, se alguem puder me ajudar ficarei muito grato!

Pergunta 1 - Consigo rodar um script apenas em um programa especifico? Exemplo "script so funciona na tela do programa X"; se sim, como fazer?

Pergunta 2 - Utilizo um script que usa PixelSearch, consigo fazer o script rodar mesmo com o programa (o qual eu quero que ele procure o Pixel) minimizado?

Pergunta 3 - Consigo juntar esses 2 scripts?

1 -
z::
PixelSearch, Px, Py, 636, 348, 856, 570, 0x4C4B54, 0, Fast ;
click %Px%, %Py%
Sleep, 2000
PixelSearch, Px, Py, 636, 348, 856, 570, 0X0000FF, 0, Fast ;
If ErrorLevel
Send {z}
else
Sleep, 3000
Send {y}

2-
y::
PixelSearch, Px, Py, 636, 348, 856, 570, 0X0000FF, 0, Fast ;
If ErrorLevel
Send {z}
else
Sleep, 3000
Send {y}

Como podem observar fiz dois scripts pq nao consegui fazer de uma maneira coerente para Quando achar a cor 0x4C4B54, clicar, esperar 2s procurar a cor 0X0000FF e caso nao achar Voltar pro inicio (por isso coloquei send {z}) e se caso achar a cor, esperar e ativar o segundo script com a hotkey send {y}.

Desde ja agradeço
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: AJUDA COM SCRIPT

02 Oct 2019, 17:16

Bom dia Feben.

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

Pergunta 1.

Você pode criar condições de execução de blocos de códigos do seu programa relacionadas a uma janela estar ativa usando IfWinActive.

Exemplo: o programa abaixo implementa uma hotkey F2 cujo código de escrita da frase só funciona se uma janela do bloco de notas do windows estiver ativa.

Code: Select all

f2::
IfWinActive, ahk_class Notepad
{
	Send, estes dados foram escritos porque o notepad está ativo!
}
Pergunta 2.

É possível, porém não através do comando PixelSearch, pois ele requer que a imagem esteja visível na tela.

Uma forma de fazer isso é criando um print de uma janela e depois usando função Gdip_ImageSearch() da biblioteca GDI+ para obter a coordenada do pixel na imagem do print. Ambas as coisas podem ser feitas com o auxílio da biblioteca GDIP_ALL do usuário Tic. Mas não creio que será algo muito fácil de implementar, portanto, se você quiser fazê-lo, seria melhor tratar como um pequeno projeto (ou seja, vai preciasar desmembrar a ação em ações menores e ir trabalhando nelas).

O usuário noname postou um exemplo de como fazer isso ha algum tempo atrás no fórum em inglês (link do post).

Pergunta 3.

Consegue sim. Como as hotkeys são diferentes, basta colar o código de uma depois do da outra e colocar um comando Return entre elas (ou seja, entre o código de uma e o da outra deve ser escrito um comando return).


:arrow: Vejo que você fez 3 perguntas em 1 tópico só. Isso pode dificultar as coisas na hora de buscar a implementação, então se decidir implementar realmente qualquer das 3 coisas, sugiro que foque em apenas uma coisa de cada vez. Se tiver dúvidas, também será conveniente que crie tópicos separados aqui no fórum para cada uma delas: dessa forma você nos ajuda na organização e também facilita o foco para resolver cada questão :thumbup:

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 16 guests