Transformando a tecla Ctrl direita em uma tecla Ctrl no Windows?

1

Eu gostaria que minha tecla Ctrl correta se comportasse como a tecla Caps . Quando eu pressiono, é como se eu mantivesse a tecla esquerda Ctrl . E quando eu pressioná-lo novamente, libere o bloqueio.

Existe uma maneira de fazer isso, mas apenas para a tecla direita Ctrl (não a esquerda)?

    
por Matthieu Napoli 24.04.2012 / 17:31

1 resposta

2

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
  1. Instalar Autohotkey

  2. Salve o script em algum lugar como um arquivo .ahk

  3. Execute-o clicando duas vezes (abrindo) o arquivo .ahk

  4. 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.

    
por 24.04.2012 / 19:44