From: Shane Holder To: "Jeff McCarrell" Cc: cmcmahan@Teknowledge.COM, Jonathan Payne , ntemacs-users@cs.washington.edu Subject: Re: Re[2]: problem with caps/ctrl swap on NT 4.0 Date: 04 Dec 1996 14:36:21 -0600 Found this on the net somewhere. Add this value: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\KeyBoard Layout\Scancode Map It's a binary value that lets you map keystrokes in the low-level keyboard drivers in NT. As a result you don't have to worry about applications bypassing mappings that you've done at a higher level (i.e. it just works). Here's the format of the value: DWORD: 0x00000000 header DWORD: 0x00000000 header DWORD: length (in DWORDs) of remaining data, including terminating DWORD DWORD: mapping 1 ... DWORD: mapping n DWORD: 0x00000000 terminating null DWORD Each mapping DWORD has two parts: the input scancode, and an output scancode. To map scancode 0x1d (left control) to scancode 0x3a (caps lock), you want a value of 0x003a001d. Note that this does not swap the keys. Using just this mapping value, both the left control and the caps lock key will behave as caps-lock. To swap, you also need to map 0x3a to 0x1d, using 0x001d003a. So, the complete registry value you'd use to swap left-control and caps-lock is: 00 00 00 00 00 00 00 00 03 00 00 00 1d 00 3a 00 3a 00 1d 00 00 00 00 00 This works on NT 4.0, I don't know about 3.51. This registry value is system wide, and can't be made user-specific. It also only takes affect on reboot. -- Shane Holder e-mail: holder@rsn.hp.com Hewlett Packard phone: (214)497-4182 3000 Waterview Never underestimate the bandwidth Richardson, TX 75083 of a truck moving at 70 MPH.