P: Como testo se meu teclado é capaz de detectar pressionamentos de tecla simultâneos?
A: Você pode usar KeyCodes para monitorar o que o Windows vê ao pressionar o teclado chaves. Na foto abaixo, três teclas são pressionadas simultaneamente. OnKeyDown
meens está atualmente pressionado e OnKeyUp
é acionado quando você solta o botão.
P:ComopossoremapearacombinaçãoparaqueelapossaserusadaporumaplicativocomooEmacs?
UmamaneirapossíveléusaroAutoHotKey.Eurecomendoa
O exemplo mostra como remapear a tecla A para a tecla B
A::SendInput {B}
Também é possível adicionar modificadores como Win (#), Alt (!), Ctrl (^) ou Shift (+). Leia a seção do manual do AHK HotKeys para mais informações
+!A::SendInput {B}
Nosso principal problema é que o AHK não pode vincular mais de uma chave base. As chaves base são todas as teclas do teclado, exceto as teclas modificadoras.
Felizmente, há um truque. Nós só usamos S para acionar uma macro pequena onde nós verificamos se o F está pressionado. Se sim, enviamos nossa nova combinação de teclas Ctrl + S
~S::
GetKeyState, state, F
if state = D
SendInput ^{s}
Return
~F::
GetKeyState, state, S
if state = D
SendInput ^{s}
Return
- A desvantagem é que temos que fazer isso para o inverso também, onde F é pressionado primeiro e depois S
- Não se esqueça do til
~
na frente de uma chave, o que significa que a função nativa não deve ser bloqueada - Não envie maiúsculas
^{S}
, senão o AHK enviará um pressionamento de tecla adicional de Shift . Eu não tenho idéia do porquê. No entanto, um^{s}
minúsculo funciona como esperado
Aqui está um guia sobre o Youtube para iniciantes do AutoHotKey, juntamente com alguns links úteis