Поскольку Microsoft Keyboard Layout Creator (MSKLC) 1.4 не работает должным образом, вы можете использовать следующее низкоуровневое решение, основанное на информации о немецком языке WinFAQ.
Создайте следующие два файла .reg с выбранным вами текстовым редактором и поочередно выполните их, чтобы загрузить данные ключи / значения в реестр Windows:
HKLM^SYS^CCS^CTRL^Kbd_Layout^Scancode_Map#Swap_R-Win_R-Alt.reg
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,\
  38,e0,5c,e0,\
  5c,e0,38,e0,\
  00,00,00,00
HKLM^SYS^CCS^CTRL^Kbd_Layout^Scancode_Map#Reset.reg
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,\
  01,00,00,00,\
  00,00,00,00
Обратите внимание на обратный порядок LSB (младший значащий байт) и MSB (старший значащий байт) в пределах 2 байтов скан-кода, то есть little-endian. Обратите внимание также на символ обратной косой черты (\) для продолжения строки.
Вы должны перезагрузить Windows/ перезагрузить компьютер, чтобы изменения вступили в силу.
Техническая информация
Scancode Map :
┌──────────┬──────┬─────────────┬───────────────────────────────────────────────────┐
│  Bytes   | Size |   Values    │ Description                                       │
    ├──────────┼──────┼─────────────┼───────────────────────────────────────────────────┤
│  0 … 3   │  4   | 00 00 00 00 │ Header: version info, always all 0                │
│  4 … 7   │  4   | 00 00 00 00 │ Header: flags, always all 0                       │
│  8 … 11  │  4   | 0m 00 00 00 │ Header: mappings count[c] + 1 [for the trailer]   │
   │ 12 … s   │ c×4  | LN¹HN²LO HO │ N ew / вывода ld scancodes in little-endian byte order │
    │  t … t+3 │  4   | 00 00 00 00 │ Trailer (t = s + 1 = 12 + c × 4)                  │
    └──────────┴──────┴─────────────┴───────────────────────────────────────────────────┘
¹ L ... младший байт, младший байт (LSB)
² H ... старший байт, старший значащий байт (MSB)
См. Следующие страницы / документы для сканирования кодов: