Можно ли программно отключить клавишу Caps Lock в Windows?

Клавиша Caps Lock сводит меня с ума - я никогда не использую ее намеренно, но иногда случайно нажимаю ее вместо клавиши TAB. Мое текущее решение состоит в том, чтобы удалить кнопку с помощью отвертки (без повреждений, при необходимости можно положить обратно).

Есть ли способ отключить клавишу Caps Lock программно в Windows - написать программу с помощью клавиатуры или что-то в этом роде? С чего мне начать?

3 ответа

Чтобы просто переназначить блокировку Caps (без установки программного обеспечения) на компьютере с Windows 2000 или Windows XP, я адаптировал информацию, найденную в разделе Как глобально сопоставить ключ AltGr с ключом Alt? следующее. Сопоставление Caps со значением NULL является одним из примеров, но вы можете выбрать другой ключ для сопоставления, как я сделал. Чтобы сопоставить прописные буквы с нулевым значением, файл реестра:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00, 00,00,00,00, 02,00,00,00, 1d,00,00,00, 00,00,00,00

Сохраните это как filename.reg и выполните, затем перезагрузите компьютер (или выйдите и войдите снова).

Я основал это на ответе с этой страницы Томаса Седовича и на Scan Code Mapper для Windows, рекомендованном Рональдом Бляшке. Я ввел пробелы, чтобы я / вы могли видеть, как байты сгруппированы в слова.

Обратите внимание, что я на самом деле использовал это, чтобы сопоставить Caps с Ctrl, и моя вторая-последняя группа чисел была "1d,00,3a,00", и я подтвердил, что это работает нормально.

Вопрос Как сделать раскладку Custom Keyboard? описывает, как изменить функциональность клавиши Caps Lock.

Это не делается программно, но я считаю, что OP или, что более вероятно, другие пользователи найдут решение, к которому я пришел, намного проще; и, следовательно, предпочтительнее.

Есть удобные утилиты или экспорт ключей реестра, которые можно импортировать, чтобы полностью отключить его, но однажды в синей луне я хочу набрать много заглавных букв; поэтому я не хотел полностью отключать его. Наконец-то я придумал сценарий, который, кажется, работает довольно хорошо. Никакой сценарий, который я сделал, не предотвратил бы его включение какой-то загадочной случайной комбинацией (на раннем M$ ergo kb), поэтому я решил сопоставить его с нажатием клавиши, которое я никогда не использую. Следующее переназначает его на <Ctrl-Pause/Break>. Этот ключевой аккорд обычно ничего не делает, но включается следующим сценарием. Надеюсь, при этом он не повернется случайно; иначе я просто отключу ключ в реестре:

      #NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
#NoTrayIcon
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

; Disable CapsLock and Shift-CapsLock
CapsLock::
+CapsLock::
; Uncomment the following line to also disable the Left Windows Key
;LWin::
return

; Define the Ctrl-Pause/Break shortcut
^CtrlBreak::
SetCapsLockState % !GetKeyState("CapsLock", "T")
return

Я не ожидаю, что это будет мешать обычному использованию клавиши Pause/Break (которая почти ничего не значит в Windows). Вы также можете скомпилировать его в компактный .exe с помощью AutoHotKey. Кажется, теперь это работает очень хорошо, хотя я только что написал это. Как сказал Дэйв Мастейн: «Пока все хорошо… ТАК ЧТО!!!»

Другие вопросы по тегам