Since Microsoft Keyboard Layout Creator (MSKLC) 1.4 fails to work properly you can use the following low-level solution that is derived from information on (German) WinFAQ.
Create the following two .reg
files with a text editor of your choice and execute them alternately to load the given keys/values into your Windows' Registry:
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
Note the reversed order of LSB (least significant byte) and MSB (most significant byte) within the 2 bytes of a scancode, a.k.a. little-endian. Note also the backslash character (\
) for line continuation.
You have to restart Windows/reboot your machine for a change of mappings to take effect.
Technical Background Info
Scancode Map
entry:
┌──────────┬──────┬─────────────┬───────────────────────────────────────────────────┐
│ 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 │
New /
Old scancodes in little-endian byte order │
│ t … t+3 │ 4 | 00 00 00 00 │ Trailer (t = s + 1 = 12 + c × 4) │
└──────────┴──────┴─────────────┴───────────────────────────────────────────────────┘
¹ L ... low byte, least significant byte (LSB)
² H ... high byte, most significant byte (MSB)
See the following pages/documents for scancodes:
just for your information: using the RemapKey-Tool from the Windows Server 2003 Resource Kit Tools, you can remap the keys without manually altering the registry. I'm actually going to do that when my second Ultra Classic arrives (this new layout is so stupid...) – MFH – 2017-05-03T22:21:34.030
@MFH Thanks for the info. Though, I knew that. The real issue here is that I have to set/reset the Registry settings and reboot every time I want to switch to my laptop's internal keyboard and vice versa. With MSKLC I could switch the "language" and its assigned keyboard layout on the fly. – GeroldBroser reinstates Monica – 2017-05-04T10:33:16.817
Ok, that's obviously a problem - but how does MSKLC fix that? The last time I tried it, it didn't allow WinKeys to be remapped... – MFH – 2017-05-06T13:02:36.060
@MFH Yes, that's exactly what I read in comments/answers to questions regarding this and I wanted to try whether this still holds true. – GeroldBroser reinstates Monica – 2017-05-06T14:19:36.067