¿Transformar la tecla Ctrl derecha en una tecla de bloqueo Ctrl en Windows?

1

Me gustaría que mi Ctrlclave derecha se comportara como la Capsclave. Cuando lo presiono, es como si tuviera presionada la Ctrltecla izquierda . Y cuando lo presiono nuevamente, libera el bloqueo.

¿Hay alguna manera de hacerlo, pero solo para la Ctrltecla derecha (no la izquierda)?

Matthieu Napoli
fuente

Respuestas:

2

Puede usar Autohotkey para hacer esto. Un script de alternancia básico:

x = 0

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

  2. Guarde el script en algún lugar como un .ahkarchivo

  3. Ejecútelo haciendo doble clic (abriendo) el .ahkarchivo

  4. Si desea que se ejecute al inicio, agréguelo a la carpeta de inicio del menú de inicio

Puede reemplazar la SendInput Ctrls por LCtrls si desea que 'mantenga' específicamente la tecla de control izquierda. No es sensible a mayúsculas y minúsculas, por cierto.


Si no desea instalar Autohotkey, aquí hay un ejecutable independiente de lo anterior que generé usando la función de compilación de Autohotkey. Úselo de la misma manera que .ahkse describió anteriormente. Úselo bajo su propio riesgo.


Para bloquear la tecla de control izquierda mientras el control está bloqueado:

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í ... se puso complicado. Para que mantener presionada la tecla funcione como de costumbre, es necesario conectar y transmitir tanto los eventos hacia abajo como hacia arriba. El modificador sin bloqueo ( ~) no se puede usar, porque necesitamos bloquear en ciertos casos. Para empeorar las cosas, presionar Alt+ Ctrlhace algo extraño cuando la tecla de control está bloqueada, pero ... las cosas se rompen cuando se suelta. Los GetKeyStatecheques si se trata de cuando se supone que debe estar abajo, y lo pone a abajo si está mal. Sí, complicado.

Probablemente hubiera sido más fácil simplemente restablecer el estado de bloqueo cuando se suelta la tecla de control izquierda. Ah bueno.

Mover
fuente
2
Que sería bueno saber lo que el downvote es para.
Bob
Esto es perfecto, gracias! Incluso utilicé la tecla de bloqueo de desplazamiento para mostrar el estado de la tecla Ctrl.
Matthieu Napoli
Acabo de notar, tenga en cuenta que si presiona el control izquierdo, terminará enviando un Ctrl arriba, desbloqueándolo ... así que tome la ~Ctrl Uptecla de acceso rápido y úsela para apagar la luz de bloqueo de desplazamiento. O agárrelo LCtrly bloquéelo completamente cuando la cerradura esté activa.
Bob
Realmente estoy luchando con el "bloqueo" de la tecla izquierda: '(. Aquí está una parte de mi código:. LCtrl:: if x {} else { Send {LCtrl} }Ahora la tecla Ctrl izquierda no funciona en absoluto :(
Matthieu Napoli
Sí, se pone complicado. He editado una versión que bloquea la tecla de control izquierda cuando está bloqueada. Para referencia futura, cuando no hace nada ( {}), está bloqueando la clave. Cuando envía {LCtrl}, está enviando un comunicado de prensa y un comunicado de prensa inmediato . Para simular la retención, debe conectar la tecla hacia arriba y hacia abajo.
Bob