Use as teclas normais como teclas modificadoras, por ex. pressione S e F juntos em vez de Ctrl + S para salvar o arquivo

3

Existe uma maneira de usar as teclas normais como teclas modificadoras? Supondo que meu teclado registre corretamente meus pressionamentos S e F juntos, existe uma maneira de eu usar a combinação como um atalho de teclado como Ctrl + S ?

Especificamente:

  • Como testo se meu teclado é capaz de detectar pressionamentos de tecla simultâneos?
  • Como posso remapear a combinação para que ela possa ser usada por um aplicativo como o Emacs?
por TomSW 01.10.2011 / 12:16

1 resposta

3

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 versão portátil do AutoHotKey para evitar a instalação de software adicional

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

por 03.10.2014 / 12:25