Você pode usar Autohotkey para fazer isso. Um script alternativo básico:
x = 0
RCtrl::
if x {
SendInput {Ctrl up}
x = 0
} else {
SendInput {Ctrl down}
x = 1
}
return
-
Instalar Autohotkey
-
Salve o script em algum lugar como um arquivo
.ahk
-
Execute-o clicando duas vezes (abrindo) o arquivo
.ahk
-
Se você quiser que ele seja executado na inicialização, adicione-o à pasta de inicialização do menu Iniciar
Você pode substituir o SendInput
Ctrl
s por LCtrl
s, se quiser especificamente "manter pressionado" a tecla de controle esquerda. Não é case sensitive, a propósito.
Se você não deseja instalar Autohotkey, aqui está um executável autônomo do acima eu gerou usando a função de compilação do Autohotkey. Use-o da mesma maneira que o .ahk
foi descrito acima. Use a seu próprio risco.
Para bloquear a tecla de controle esquerda enquanto o controle estiver 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
Sim ... ficou complicado. Para manter o trabalho chave como de costume, é necessário enganchar e passar os eventos para baixo e para cima. O modificador sem bloqueio ( ~
) não pode ser usado, porque precisamos bloquear certos casos. Para piorar as coisas, pressionar Alt
+ Ctrl
faz algo estranho onde a tecla de controle está bloqueada, mas ... as coisas quebram quando são liberadas. O GetKeyState
verifica se está ativo quando deveria estar inoperante e define se está errado. Sim, complicado.
Provavelmente teria sido mais fácil apenas redefinir o estado de bloqueio quando a tecla de controle esquerda é liberada. Ah bem.