Можно ли программно отключить клавишу 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. Кажется, теперь это работает очень хорошо, хотя я только что написал это. Как сказал Дэйв Мастейн: «Пока все хорошо… ТАК ЧТО!!!»