Repetir tecla apenas duas vezes

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

Moderator: Gio

Anonimo
Posts: 2
Joined: 28 Dec 2020, 13:36

Repetir tecla apenas duas vezes

Post by Anonimo » 29 Dec 2020, 15:31

Criei esse script no autohotkey e funcionou

Code: Select all

SetBatchLines, -1
Loop
{
	Loop 1
	{
		Send {s down}
		Sleep 20
	}
Send {s up}
Sleep 20
}

d::
pause
[Mod edit: [code][/code] tags added.]

Programei a tecla "D" para ligar e desligar o comando. O comando faz repetir a tecla "S" em um loop infinito.
Que caracteres eu coloco no script para que a tecla ''S'' seja registrada apenas duas vezes? Devo alterar valor do "sleep"?
User avatar
Gio
Posts: 1116
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Repetir tecla apenas duas vezes

Post by Gio » 30 Dec 2020, 10:08

Bom dia Anonimo.

Seu código está repetindo indefinidamente: enviar 1 sinal de s apertado, depois esperar 20 milisegundos, depois enviar um sinal de s solto, depois esperar 20 milisegundos.

Se você quer enviar apenas 2 vezes essa sequência, deveria alterar a primeira linha Loop (que no momento não tem número, por isso roda infinitamente) para Loop 2.

PORÉM, seu código está iniciando imediatamente quando você executa o script. Isso significa que se você clicar para executar o script, pode não dar nem tempo de abrir o programa alvo. Porque não coloca a rotina em uma outra hotkey para que você também tenha o controle de QUANDO os dois sinais serão enviados?

Exemplo: colocando a rotina para rodar ao pressionar a tecla F2 e ajustando para que ela envie o s apenas 2 vezes (vai enviar quando você aperta F2 e o script estiver em execução):

Code: Select all

SetBatchLines, -1
Return

f2::
Loop
{
	Loop 1
	{
		Send {s down}
		Sleep 20
	}
Send {s up}
Sleep 20
}
Return

d::
pause
Post Reply

Return to “Ajuda e Suporte Geral”