71

В Windows 8 я использовал переназначение моего ключа capslock для управления с помощью скрипта реестра

REGEDIT4

[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,3a,00,00,00,00,00

После обновления до окна 10 это больше не работает. Как это можно сделать?

8 ответов8

73

Вы не забыли перезагрузить? Кажется, работает хорошо для меня, так же, как в 7 и 8.

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,3a,00,00,00,00,00
69

На случай, если кому-то понадобится сделать это через PowerShell:

$hexified = "00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00".Split(',') | % { "0x$_"};

$kbLayout = 'HKLM:\System\CurrentControlSet\Control\Keyboard Layout';

New-ItemProperty -Path $kbLayout -Name "Scancode Map" -PropertyType Binary -Value ([byte[]]$hexified);

Запустите его от имени администратора и перезагрузите компьютер.

18

Вы можете использовать SharpKeys для сопоставления любой клавиши с любой другой клавишей в Windows 7, 8 или 10. Это гораздо проще и чище сделать, чем изменять реестр самостоятельно.

Надеюсь это поможет.

6

Я использую следующее, чтобы отправить CTRL для клавиши CAPS LOCK, отправить ALT для клавиши CTRL и отправить CAPS LOCK для клавиши ALT. CTRL находится слева от "A", где Бог и задумал, ALT ниже SHIFT, и совершенно бесполезная клавиша CAPS LOCK надежно спрятана там, где мне нужно сломать запястье, чтобы ударить его.

Windows Registry Editor Version 5.00

; The hex data is in five groups of four bytes:
;   00,00,00,00,\    header version (always 00000000)
;   00,00,00,00,\    header flags (always 00000000)
;   04,00,00,00,\    # of entries (3 in this case) plus a NULL terminator line.
;                    Entries are in 2-byte pairs: Key code to send & keyboard key to send it.
;                    Each entry is in LSB, MSB order.
;   1d,00,3a,00,\    Send LEFT CTRL (0x001d) code when user presses the CAPS LOCK key (0x003a) 
;   38,00,1d,00,\    Send LEFT ALT (0x0038) code when user presses the LEFT CTRL key (0x001d) 
;   3a,00,38,00,\    Send CAPS LOCK (0x3A) code when user presses the LEFT ALT key (0x0038) 
;   00,00,00,00      NULL terminator

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,\
                   00,00,00,00,\
                   04,00,00,00,\
                   1d,00,3a,00,\
                   38,00,1d,00,\
                   3a,00,38,00,\
                   00,00,00,00
2

Вы можете использовать lswitch для переназначения ввода языка в CapsLock.

Используйте любую клавишу для переключения языков ввода, использование: lswitch [keycode] . Код ключа не является обязательным и по умолчанию используется ключ контекстного меню. Другим хорошим кандидатом является ключ CapsLock с кодом ключа 20.

lswitch 20

Добавьте его в автозагрузку.

1

Неиссякаемый набор инструментов sysinternals также предоставляет небольшую программу для переключения capslock с помощью control - ctrl2cap.exe.

1

Это скрипт для замены клавиш CTRL и CAPS LOCK:

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,03,00,00,00,1d,00,3a,00,3a,00,1d,00,00,00,00,00
0

Я использовал AutoHotKey, чтобы сделать это.

У меня была бы ссылка в каталоге автозагрузки для запуска очень простого ахк-скрипта:

Capslock::Ctrl

Дело в том, что Autohotkey не запускается от имени администратора, поэтому не влияет на привилегированные окна, если вы не используете планировщик задач вместо каталога запуска для запуска сценария при входе в систему с более высокими привилегиями. Вторая проблема заключается в том, что иногда сценарий зависает при возобновлении сна, поэтому вам может потребоваться перезагрузить его, что раздражает.

AutoHotKey лучше подходит для более сложных задач, таких как написание макросов.

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