Repetição de comandos (macro)
Moderator: Gio
Repetição de comandos (macro)
Por favor, me ajudem a criar um loop, ou me enviem um modelo para toda vez que eu pressionar a tecla ''S'', seja registrado duas vezes essa mesma tecla.
Re: Repetição de comandos (macro)
example send a s d w 3-times
Code: Select all
;- repetir la misma letra 3 veces
;- https://www.autohotkey.com/boards/viewtopic.php?f=40&t=84778
;- send a s d w 3-times
;- ESC end script
#Warn
#Persistent
#InstallKeybdHook
altkey:=""
SetTimer,aa, 10
return
;------------
aa:
if(A_TimeIdlePhysical < 100)
{
e:=""
IF (A_PriorKey = AltKey)
Return
if (a_priorkey="a" or a_priorkey="s" or a_priorkey="d" or a_priorkey="w")
{
loop,3
e .=a_priorkey
msgbox, 262144,TEST ,%e% , 1 ;- msgbox for TEST / maybe use SEND command
}
AltKey := A_PriorKey
}
return
esc::exitapp
;========================================
Re: Repetição de comandos (macro)
Bom dia Anonimo.
Quando você diz "seja registrado duas vezes", é importante ter em mente que é possível que o Windows receba 2x o sinal de tecla, mas algum aplicativo (ou jogo) não o receba. Isso ocorre porque muitos aplicativos ignoram sinais de teclas sucessivos e muito rápidos.
No script abaixo, altere o valor da espera em milisegundos do comando Sleep conforme seja necessário até que o sinal seja reconhecido (no momento, 100ms):
Teste o código acima no bloco de notas para ver seu funcionamento. Depois, teste no aplicativo alvo e veja se o resultado foi o esperado. Se não funcionar no aplicativo alvo, pode tentar aumentar o tempo de espera OU verificar se o ciomando send não está sendo ignorado pelo aplicativo alvo (caso em que teria que buscar alternativas a esse comando).
OBS: Veja que utilizamos o modificador $ no nome da hotkey. Esse modificador impede que o comando Send ative a própria hotkey (afinal, ele enviará um sinal de S, e a hotkey é ativada quando se pressiona S. Mas com o modificador, o comando Send NÃO ativará a hotkey).
Quando você diz "seja registrado duas vezes", é importante ter em mente que é possível que o Windows receba 2x o sinal de tecla, mas algum aplicativo (ou jogo) não o receba. Isso ocorre porque muitos aplicativos ignoram sinais de teclas sucessivos e muito rápidos.
No script abaixo, altere o valor da espera em milisegundos do comando Sleep conforme seja necessário até que o sinal seja reconhecido (no momento, 100ms):
Code: Select all
$s::
send s
sleep 100
send s
Return
OBS: Veja que utilizamos o modificador $ no nome da hotkey. Esse modificador impede que o comando Send ative a própria hotkey (afinal, ele enviará um sinal de S, e a hotkey é ativada quando se pressiona S. Mas com o modificador, o comando Send NÃO ativará a hotkey).
"What is suitable automation? Whatever saves your day for the greater matters."
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Re: Repetição de comandos (macro)
@Gio Obrigado pelo comentário detalhado e solução