Utilizzare i tasti normali come tasti modificatori, ad esempio premere S e F insieme invece di Ctrl + S per salvare il file


3

C'è un modo per usare i tasti normali come tasti modificatori? Supponendo che la mia tastiera registri correttamente la mia pressione Se Finsieme, c'è un modo per usare la combinazione come scorciatoia da tastiera come Ctrl+ S?

In particolare:

  • Come posso verificare che la mia tastiera sia in grado di rilevare la pressione simultanea dei tasti?
  • Come posso rimappare la combinazione in modo che possa essere utilizzata da un'applicazione come Emacs?

1
Autokey baby. . .
surfasb,

ti interessa elaborare, tesoro?
TomSW

Risposte:


3

D: Come posso verificare che la mia tastiera sia in grado di rilevare la pressione simultanea dei tasti?

A: È possibile utilizzare KeyCodes per monitorare ciò che Windows vede quando si premono i tasti della tastiera. Nell'immagine seguente sono premuti tre tasti contemporaneamente. OnKeyDownmeens è attualmente premuto e si OnKeyUpattiva quando si rilascia il pulsante.

inserisci qui la descrizione dell'immagine


D: Come posso rimappare la combinazione in modo che possa essere utilizzata da un'applicazione come Emacs?

Un modo possibile è utilizzare AutoHotKey. Raccomando la versione portatile di AutoHotKey per evitare l'installazione di software aggiuntivo

L'esempio mostra come rimappare chiave Aper chiaveB

A::SendInput {B}

È anche possibile aggiungere modificatori come Win(#), Alt(!), Ctrl(^) O Shift(+). Leggi la sezione del manuale AHK HotKeys per maggiori informazioni

+!A::SendInput {B}

Il nostro problema principale è che AHK non può associare più di una chiave di base. I tasti base sono tutti i tasti della tastiera tranne i tasti modificatori.

Fortunatamente c'è un trucco. Usiamo solo Sper attivare una piccola macro in cui verificheremo se Fviene premuto. Se sì, inviamo la nostra nuova combinazione di tasti Ctrl+S

~S::
  GetKeyState, state, F
  if state = D
  SendInput ^{s} 
Return

~F::
  GetKeyState, state, S
  if state = D
  SendInput ^{s} 
Return
  • Il rovescio della medaglia è che dobbiamo farlo anche al contrario, dove Fprima viene premuto e poiS
  • Non dimenticare la tilde ~davanti a un tasto, il che significa che la funzione nativa non deve essere bloccata
  • Non inviare maiuscole, ^{S}altrimenti AHK invierà una Shiftsequenza di tasti aggiuntiva . Non ho idea del perché. Tuttavia, una minuscola ^{s}funziona come previsto

Ecco una guida per principianti AutoHotKey su Youtube insieme ad alcuni link utili

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.