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
Instalar Autohotkey
Guarde el script en algún lugar como un .ahk
archivo
Ejecútelo haciendo doble clic (abriendo) el .ahk
archivo
Si desea que se ejecute al inicio, agréguelo a la carpeta de inicio del menú de inicio
Puede reemplazar la SendInput
Ctrl
s por LCtrl
s 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 .ahk
se 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
+ Ctrl
hace algo extraño cuando la tecla de control está bloqueada, pero ... las cosas se rompen cuando se suelta. Los GetKeyState
cheques 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.