Eu tenho um script AutoHotKey que deve ser acionado F3quando eu mantenho pressionado Ctrle acionado F2quando eu solto Ctrl.
Meu script atualmente:
$ctrl::
Suspend, On
Send, {F3}
While (GetKeyState("Ctrl",P))
{
}
Send, {F2}
Suspend, Off
Return
Mas quando eu pressiono Ctrl, não faz nada. Quando eu solto Ctrl, atinge ambos F3e F2. Alguém pode me dizer como consertar isso?
Responder1
Este código fornece a funcionalidade desejada:
$~ctrl::
send {f3}
keyWait, ctrl
send {f2}
return
Responder2
Oteclaropção para as teclas de atalho parece ser o que você precisa.
Aqui está o código de trabalho testado:
Ctrl::
Send {F3}
keywait, Ctrl, L ; prevent F3 from firing while Ctrl is being held down.
return
Ctrl Up::Send {F2}
Responder3
através da:http://www.autohotkey.com/docs/commands/Send.htm
Para manter pressionada ou soltar uma tecla: Coloque entre colchetes o nome da tecla seguido da palavra Para baixo ou Para cima. Por exemplo:
Enviar {b para baixo}{b para cima}
Enviar {TAB para baixo}{TAB para cima}
Enviar {para cima para baixo} ; Pressione a tecla de seta para cima.
Durma 1000; Mantenha-o pressionado por um segundo.
Enviar> {Para cima} ; Solte a tecla de seta para cima.
Quando uma tecla é pressionada através do método acima, ela não inicia a repetição automática como faria se você a estivesse segurando fisicamente (isso ocorre porque a repetição automática é um recurso de driver/hardware). No entanto, um Loop pode ser usado para simular a repetição automática. O exemplo a seguir envia 20 pressionamentos de tecla tab:
Loop 20 {
Send {Tab down} ; A repetição automática consiste em eventos inativos consecutivos (sem eventos ativos).
Durma 30; O número de milissegundos entre pressionamentos de tecla (ou use SetKeyDelay).
}
Enviar {Tab para cima} ; Solte a chave.
A palavra DownTemp também pode ser usada. Seu efeito é o mesmo de Down, exceto pelas teclas modificadoras (Control/Shift/Alt/Win). Nesses casos, DownTemp informa aos envios subsequentes que a chave não está permanentemente inativa e pode ser liberada sempre que um pressionamento de tecla exigir. Por exemplo, Send {Control DownTemp} seguido posteriormente por Send a produziria um pressionamento de tecla "a" normal, não um pressionamento de tecla control-A.