Trasformare il tasto Ctrl corretto in un tasto di blocco Ctrl su Windows?


1

Vorrei che la mia Ctrlchiave giusta si comportasse come la Capschiave. Quando lo premo, è come se tenessi premuto il Ctrltasto sinistro . E quando lo premo di nuovo, rilascia il blocco.

C'è un modo per farlo, ma solo per il Ctrltasto destro (non quello sinistro)?

Risposte:


2

È possibile utilizzare Autohotkey per farlo. Uno script di attivazione / disattivazione di base:

x = 0

RCtrl::
if x {
    SendInput {Ctrl up}
    x = 0
} else {
    SendInput {Ctrl down}
    x = 1
}
return
  1. Installa Autohotkey

  2. Salva lo script da qualche parte come .ahkfile

  3. Eseguirlo facendo doppio clic (apertura) sul .ahkfile

  4. Se si desidera che venga eseguito all'avvio, aggiungerlo alla cartella di avvio del menu Start

È possibile sostituire la SendInput Ctrls con LCtrls se si desidera che "tiene" specificamente il tasto di controllo sinistro. A proposito, non fa distinzione tra maiuscole e minuscole.


Se non desideri installare Autohotkey, ecco un eseguibile autonomo di quanto sopra che ho generato usando la funzione di compilazione di Autohotkey. Usalo nello stesso modo in cui è .ahkstato descritto sopra. Utilizzare a proprio rischio.


Per bloccare il tasto di controllo sinistro mentre il controllo è bloccato:

x = 0

RCtrl::
if x {
    SendInput {Ctrl up}
    x = 0
} else {
    SendInput {Ctrl down}
    x = 1
}
return

*$LCtrl::
if (!x) {
    SendInput {LCtrl down}
}
return

*$LCtrl up::
if (x && !GetKeyState("Ctrl")) {
    SendInput {Ctrl down}
} else if (!x) {
    SendInput {LCtrl up}
}
return

Sì ... è diventato complicato. Per far funzionare la chiave come al solito, è necessario agganciare e trasmettere sia gli eventi down che up. Il modificatore non bloccante ( ~) non può essere utilizzato, poiché è necessario bloccare determinati casi. A peggiorare le cose, premendo Alt+ si Ctrlfa qualcosa di strano in cui il tasto di controllo è bloccato, ma ... le cose si rompono quando viene rilasciato. I GetKeyStatecontrolli se tocca quando si suppone che sia verso il basso, e lo imposta giù se è sbagliato. Sì, complicato.

Probabilmente sarebbe stato più semplice ripristinare lo stato di blocco quando viene rilasciato il tasto di controllo sinistro. Ah bene.


2
E sarebbe bello sapere che cosa il downvote è per.
Bob

Questo è semplicemente perfetto, grazie! Ho anche usato il tasto di blocco scorrimento per visualizzare lo stato del tasto Ctrl.
Matthieu Napoli,

Ho appena notato, ti avverto che se premi il controllo sinistro finirà per inviare un Ctrl Su, sbloccandolo .. quindi prendi il ~Ctrl Uptasto di scelta rapida e usalo per spegnere la luce di blocco dello scorrimento. Oppure prendilo LCtrle bloccalo completamente quando il blocco è attivo.
Bob

Sto davvero lottando con il "blocco" del tasto sinistro: '(. Ecco una parte del mio codice:. LCtrl:: if x {} else { Send {LCtrl} }Ora il tasto Ctrl sinistro non funziona affatto :(
Matthieu Napoli

Sì, diventa complicato. Ho modificato in una versione che blocca il tasto di controllo sinistro quando bloccato. Per riferimento futuro, quando non fai nulla ( {}), stai bloccando la chiave. Quando invii {LCtrl}, stai inviando una stampa e un rilascio immediato . Per simulare la tenuta devi agganciare sia la chiave su che la chiave giù.
Bob
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.