Manter tecla em loop

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

Moderator: Gio

luanpjp
Posts: 2
Joined: 09 Jul 2019, 13:33

Manter tecla em loop

10 Jul 2019, 06:17

Pessoal, bom dia!

Preciso de uma ajuda, quero fazer o seguinte:

Enquanto eu manter pressionada a seta pra cima o sistema fique enviando o comando keyup(seta para cima) em com intervalos de 1 segundo e quando manter pressionada a seta para baixo o sistema fique enviando o comando keydown(seta para baixo) com intervalos de 1 segundo.

Obrigado
User avatar
Gio
Posts: 659
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Manter tecla em loop

10 Jul 2019, 09:41

Bom dia Luanpjp.

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

Se entendi o que você quiz dizer, creio que o código abaixo fará o que você procura.

Code: Select all

Ligado_Up := 0
Ligado_Down := 0

; COMANDOS PARA CIMA

$Up::
If (Ligado_Up = 0)
{
	SetTimer, Pressionar_Para_Cima, 1000
	Ligado_Up := 1
}
Sleep 1000
Return

$Up up::
SetTimer, Pressionar_Para_Cima, Off
If ((A_TickCount - Ultimo_Comando_Up) >= 500)
{
	Send {Up}
}
Ligado_Up := 0
Return


Pressionar_Para_Cima:
Send {Up}
Ultimo_Comando_Up := A_TickCount
Return

; COMANDOS PARA BAIXO

$Down::
If (Ligado_Down = 0)
{
	SetTimer, Pressionar_Para_Baixo, 1000
	Ligado_Down := 1
}
Sleep 1000
Return

$Down Up::
SetTimer, Pressionar_Para_Baixo, Off
If ((A_TickCount - Ultimo_Comando_Down) >= 500)
{
	Send {Down}
}
Ligado_Down := 0
Return


Pressionar_Para_Baixo:
Send {Down}
Ultimo_Comando_Down := A_TickCount
Return
:arrow: O funcionamento do código não é tão complexo, o problema maior foi somente cuidar para que a ação de 1 segundo ocorra no segurar do botão (e não no clicar). Depois, tive de solucionar alguns "poréms" que foram surgindo, como por exemplo garantir que o comando não ativasse a própria hotkeys (usando $) e também definindo a ação de clique para ocorrer quando você solta o botão (e também se você não estava na verdade segurando).

Se tiver alguma dúvida sinta-se livre para perguntar aí embaixo :thumbup:

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 5 guests