Desativar teclas modificadoras no AutoHotkey

2

Eu quero mapear o controle Ctrl + Left para Home e Ctrl + Right para End, e estou usando o AutoHotkey, meu script é simplesmente este:

^Left::Home
^Right::End

No entanto, quando as teclas Home e End são geradas, elas são interpretadas em Ctrl + Home e Ctrl + End porque estou mantendo pressionada a tecla Ctrl para gerá-las. Como posso desabilitar a tecla Ctrl ou qualquer tecla modificadora ao reatribuir chaves?

    
por oggmonster 01.09.2011 / 22:13

2 respostas

3

Parece que você pode usar apenas Enviar:

^Left::Send {Home}
^Right::Send {End}

;Doesn't work with Shift, so we can add that manually:

+^Left::Send +{Home}
+^Right::Send +{End}

;You can add any other modifier keys you need to work.

Aparece usando Enviar irá liberar temporariamente qualquer tecla modificadora já pressionada, para que a saída de Enviar não será afetado por eles - a menos que você use especificamente {Blind} para preservar o modificador teclas já pressionadas.

O formato a::b é usado para remapear as chaves e preserva os modificadores pressionados. (Na verdade, usa internamente Enviar {Blind} .)

    
por 02.09.2011 / 04:05
2

Tente:

^Left::
KeyWait Control
Home
Return

^Right::
KeyWait Control
End
Return

Se você só precisa de algum código para isso e não precisa ser autohotkey, o AuotIt deve funcionar:

HotKeySet("^{LEFT}", "Home")
HotKeySet("^{RIGHT}", "End")
HotKeySet("{ESC}", "Terminate")

While 1
    Sleep(100)
WEnd

Func Home()
    Send("{HOME}")
EndFunc

Func End()
    Send("{END}")
EndFunc

Func Terminate()
    Exit 0
EndFunc
    
por 01.09.2011 / 22:30