1

Я бы хотел, чтобы моя правая клавиша Ctrl вела себя как клавиша Caps . Когда я нажимаю на нее, это как если бы я держал левую клавишу Ctrl . И когда я нажимаю его снова, он снимает блокировку.

Есть ли способ сделать это, но только для правой клавиши Ctrl (не левой)?

1 ответ1

2

Вы можете использовать AutoHock для этого. Основной скрипт переключения:

x = 0

RCtrl::
if x {
    SendInput {Ctrl up}
    x = 0
} else {
    SendInput {Ctrl down}
    x = 1
}
return
  1. Установите Autohotkey

  2. Сохраните скрипт где-нибудь как файл .ahk

  3. Запустите его, дважды щелкнув (открыв) файл .ahk

  4. Если вы хотите, чтобы он запускался при запуске, добавьте его в папку запуска меню «Пуск»

Вы можете заменить SendInput Ctrl на LCtrl если хотите, чтобы он специально «держал» левую управляющую клавишу. Это не чувствительно к регистру, кстати.


Если вы не хотите устанавливать Autohotkey, вот отдельный исполняемый файл, описанный выше, который я сгенерировал с помощью функции компиляции Autohotkey. Используйте его так же, как .ahk был описан выше. Используйте на свой риск.


Чтобы заблокировать левую клавишу управления, когда управление заблокировано:

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

Да ... это сложно. Чтобы удержание клавиши работало как обычно, необходимо подключить и пропустить события как вниз, так и вверх. Модификатор неблокирования (~) не может быть использован, потому что нам нужно блокировать в определенных случаях. Что еще хуже, нажатие Alt + Ctrl делает что-то странное, когда блокирующая клавиша заблокирована, но ... вещи ломаются, когда она отпускается. GetKeyState проверяет, работает ли он, когда он должен быть выключен, и устанавливает его в выключенное состояние, если оно не так. Да, сложно.

Вероятно, было бы проще просто сбросить состояние блокировки при отпускании левой клавиши управления. Ах хорошо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .