If you enjoyed this site, please consider donating $3. Any amount is appreciated. Thanks!

Microsoft IntelliType Hacks

Xah Lee, 2009-11-08, 2009-12-05, 2010-01-28

Microsoft IntelliType is a keyboard software that comes with Microsoft keyboards, and works only with Microsoft keyboards. This page is some info on some of the tech detail on how the software works, for those tech geeks who like to customize their keyboards extensively.

As far as i know, there's no public documentation about how intellitype works. So, this writing is somewhat a reverse engineering documentation.

You may first read about Problems of Microsoft IntelliType, to become familiar with what can and cannot be done with IntelliType's interface, or the limit of IntelliType hacking described in this doc can achieve.

Note: This writing is not comprehensive. Its just some notes of my findings. To understand this document fully, you should have at least 1 hour experience in playing or setting up keys using intelliType. For example, you should know how to use IntelliType to remap keys. You should also be familiar with the basics of Windows Registry and XML file.

The tech info in this article should apply to all other Microsoft keyboards, but this article is particularly for using Microsoft Natural Ergonomic Keyboard 4000 with Microsoft Windows Vista. The IntelliType Pro driver version is “7.0.258.0”.


IntelliType

Microsoft IntelliType Pro for Windows.

Download

IntelliType is free. It can be downloaded at Microsoft website at http://www.microsoft.com/hardware/download/download.aspx?category=mk. However, it works only with Microsoft keyboards.

The software can be launched under Control Panel, Keyboard.

The full name of the software is IntelliType Pro, but we'll just call it IntelliType.

Registry

IntelliType uses the Windows Registry to store its keymapping data. (If you are not familiar with registry, see: Microsoft Windows Registry Tutorial) When you add, remove, change a key definition using the IntelliType Pro software, the registry is updated.

The registery items for IntelliType is at: “HKEY_CURRENT_USER\Software\Microsoft\IntelliType Pro”.

Under the “IntelliType Pro” branch, there are these branches:

 AppSpecific
 EventMapping
 Shortcuts
 SQM
 Zoom

The EventMapping is the generic key definition for your keys.

The “AppSpecific” holds key sets for each application. Each application will have a entry. For example, i have:

AppSpecific
 ...
 emacs.exe
 firefox.exe
 googleearth.exe
 notepad.exe
 ...

When you use IntelliType to create a new set of keys for a different software (Under the section “Custom Key Settings”, “Add...” button), it'll create a “EventMapping” branch under the app's name entry in “AppSpecific” . If you never defined keys specific to apps, it is safe to delete the whole AppSpecific entry. (it will be regenerated anyway. Do not delete the whole “IntelliType Pro” tree. If you do, next time you launch it, it'll complain of locating some file thinking that you might have pirated the software. But you can always download it again and reinstall.)

Am not sure what “Shortcuts” or “SQM” entries are for. They don't have any children and doesn't seem to be used.

The “Zoom” entry is for the Zoom slider on your keyboard. This entry will be created only if you have tried to disable the zoom using IntelliType (in the Zoom tab).

The EventMapping Entry

The “EventMapping”, regardless where it appears, is the main key data. Each of its children defines a key, and that key's action. The keys are identified by a numerical code.

IntelliType Registry key example

Example of Key 31's content. Key 31 is the Calculator button. In this case, i've remapped it to launch iTunes.

IntelliType Registry Key Values and Meaning
Key CodeKey/ButtonComment
14BackThe special “Back” button, with a fat left arrow (⇦) icon on the button.
15ForwardThe special “Forward” button, with a fat right arrow (⇨) icon on the button.
18Search
20Web/Home
21Mail
25Play/Pause
28?
29Media?
31Calculator
32?
41New (F4)?
42F1with F Lock off
45F4with F Lock off
46F5with F Lock off
47F6with F Lock off
48F7with F Lock off
49F8with F Lock off
50F9with F Lock off
51F10with F Lock off
52F11with F Lock off
53F12with F Lock off
54F2with F Lock off
55F3with F Lock off
65Open (F5)?
66Close (F6)?
67?
73Left Window key
74Menu/App key
75Caps Lock
75?
78My Favorites 1
79My Favorites 2
80My Favorites 3
81My Favorites 4
82My Favorites 5
83Volume?

todo: find the code for “My Documents”, “My Pictures”, “My Music”, “Mute”, “Media”, “Messenger”.

If you have not ever used IntelliType to remap a key, no registry entry will exist for that key. The default mapping of keys and actions is from “commands.xml” file (see explanation below.)

Registry Key Actions

Each end node of “EventMapping” specify the key's action. For example, on my computer, i've set the Calculator button to launch iTunes. The Calculator button's code is 31, so in my EventMapping, there's a entry “31”, with the following content:

NameTypeData
(Default)REG_SZ(value not set)
ArgumentsREG_SZ
CommandREG_DWORD0x00000320 (800)
FriendlyREG_SZiTunes
ShellExecuteREG_SZC:\Users\Public\desktop\iTunes.lnk

The most important one that specify what kind of action to do for a key, is named “Command”, and its value is a integer. What the integer means can be found in the file “mscmdkey.xml” at “C:\Program Files\Microsoft IntelliType Pro”.

For example, if the value of Command is 800, and because 800 is associated with SHELL_EXECUTE_COMMAND in “mscmdkey.xml”, so the action for the key is to execute a shell command. The precise shell command to execute is specified in the value of the register entry “ShellExecute”.

Key action can be executing a shell command, or type some other key, or execute a keyboard macro, or disable a key, and others.

The following is all of the actions and their code from “mscmdkey.xml”. Note: however, they may not be complete. For example, if you use IntelliType to define “My Farovites 1” button to launch some app, then, in the registery you'll see the key “Command” having a value of “406”, but 406 is nowhere to be found in “mscmdkey.xml”.

Command NameAction CodeComment
F1_HELP_COMMAND302
UNDO_COMMAND203
REDO_COMMAND204
NEW_COMMAND307
OPEN_COMMAND308
CLOSE_COMMAND309
MAIL_REPLY_COMMAND900
MAIL_FORWARD_COMMAND901
MAIL_SEND_COMMAND902
SPELL_COMMAND401
SAVE_COMMAND311
PRINT_COMMAND310
Command NameAction CodeComment
LAUNCH_MAIL_COMMAND801
LAUNCH_MEDIA_COMMAND802
LAUNCH_MESSENGER_COMMAND808
LAUNCH_CALCULATOR_COMMAND803
LAUNCH_CALENDAR_COMMAND809
Command NameAction CodeComment
WEB_SEARCH_COMMAND414
LAUNCH_MY_COMPUTER_COMMAND804
LAUNCH_MY_DOCUMENTS_COMMAND805
LAUNCH_MY_MUSIC_COMMAND807
LAUNCH_MY_PICTURE_COMMAND806
Command NameAction CodeComment
MEDIA_PREVIOUS_TRACK_COMMAND704Previous song (need to switch to your music player first)
MEDIA_NEXT_TRACK_COMMAND703Next song (need to switch to your music player first)
MEDIA_PLAY_PAUSE_COMMAND706
MEDIA_STOP_COMMAND705
VOLUME_UP_COMMAND700
VOLUME_DOWN_COMMAND701
VOLUME_MUTE_COMMAND702
Command NameAction CodeComment
APPS_COMMAND312The Menu key
LEFT_WINDOW_COMMAND313Left Windows Key
RIGHT_WINDOW_COMMAND314
F_LOCK_COMMAND402
CAPSLOCK_COMMAND403
NUM_LOCK_COMMAND404
SCROLL_LOCK_COMMAND405
Command NameAction CodeComment
SHELL_EXECUTE_COMMAND800Run a shell command
KEYSTROKE_COMMAND412Type some other key combo
DISABLE_COMMAND400Disable the key
INVALID_COMMAND0
UNASSIGNED_COMMAND2The default state of My Favorites buttons.
Command NameAction CodeComment
COPY_COMMAND201
CUT_COMMAND200
PASTE_COMMAND202
NEXT_WINDOW_COMMAND304
PREVIOUS_WINDOW_COMMAND305
SHOW_HIDE_DESKTOP_COMMAND303
ZOOM_IN_COMMAND319
ZOOM_OUT_COMMAND320
Command NameAction CodeComment
EXIT_COMMAND301
FIND_COMMAND315
BLANK_SCREEN_COMMAND1451
LOCK_WORKSTATION_COMMAND316
LOGOFF_COMMAND306
Command NameAction CodeComment
BROWSER_HOME_COMMAND106
BROWSER_BACK_COMMAND100
BROWSER_FORWARD_COMMAND101
BROWSER_FAVORITES_COMMAND105
BROWSER_REFRESH_COMMAND102
BROWSER_SEARCH_COMMAND104
BROWSER_STOP_COMMAND103
Command NameAction CodeComment
OFFICE_EXCEL_COMMAND1001
OFFICE_TASK_PANE_COMMAND1003
OFFICE_WORD_COMMAND1000
Command NameAction CodeComment
BATTERY_CRITICAL_COMMAND600
BATTERY_LOW_COMMAND601
BATTERY_GOOD_COMMAND602
BATTERY_UNKNOWN_COMMAND603
SIGNAL_VERY_POOR_COMMAND604
SIGNAL_POOR_COMMAND605
SIGNAL_GOOD_COMMAND606
SIGNAL_VERY_GOOD_COMMAND607
RSSI_SIGNAL_COMMAND608
RSSI_NOISE_COMMAND609
RSSI_SIGNAL_RESET_COMMAND610
RSSI_NOISE_RESET_COMMAND611
DISCONNECT_REQUEST_COMMAND408
VERTICAL_SCROLL_COMMAND1100
HORIZONTAL_SCROLL_COMMAND1101
NUMPAD_EQUALS_COMMAND1200
NUMPAD_LEFT_PAREN_COMMAND1201
NUMPAD_RIGHT_PAREN_COMMAND1202
MSPY_IME_COMMAND1300
Command NameAction CodeComment
FIRST_CONNECT_RADIO_RECOVERY_REQUEST_MESSAGE_COMMAND1500
FIRST_CONNECT_WIZARD_COMMAND1501
FIRST_CONNECT_UHE_MOUSE_DISCONNECT_REQUEST_MESSAGE_COMMAND1502
FIRST_CONNECT_BT_MOUSE_DISCONNECT_REQUEST_MESSAGE_COMMAND1503
FIRST_CONNECT_UHE_MOUSE_DISCONNECT_MESSAGE_COMMAND1504
FIRST_CONNECT_BT_MOUSE_DISCONNECT_MESSAGE_COMMAND1505
FIRST_CONNECT_UHE_KEYBOARD_DISCONNECT_REQUEST_MESSAGE_COMMAND1506
FIRST_CONNECT_BT_KEYBOARD_DISCONNECT_REQUEST_MESSAGE_COMMAND1507
FIRST_CONNECT_UHE_KEYBOARD_DISCONNECT_MESSAGE_COMMAND1508
FIRST_CONNECT_BT_KEYBOARD_DISCONNECT_MESSAGE_COMMAND1509
NEXT_GAMING_MODE_COMMAND1404

The following are some other codes not found in the “mscmdkey.xml”, but can be seen in the registry.

CodeName in IntelliTypePurposeComment
2159KeystrokeType some key combo.Not sure what's the diff with KEYSTROKE_COMMAND (412)
406Opens the file or Web site that you sp...Launch a app or open a file.Not sure what's the diff with SHELL_EXECUTE_COMMAND (800)

Todo ...

commands.xml

There is a file “commands.xml” at “C:\Program Files\Microsoft IntelliType Pro\”.

The purpose of the file “commands.xml” seems to be the same as the registry, but is used to as a fall back when IntelliType is installed the first time and there are no registry entries. According to blogger Joel Bennett, it seems that you can delete the whole EventMapping registry entry and simply modify commands.xml to define your key definitions.

In this way, i believe you delete the whole IntelliType registry at “HKEY_CURRENT_USER\Software\Microsoft\IntelliType Pro\EventMapping”, and “HKEY_CURRENT_USER\Software\Microsoft\IntelliType Pro\AppSpecific”. Then, modify the “commands.xml” file, then reboot the IntelliType processes to have your new keys.

I haven't explored this method of using IntelliType.

Here's the file's structure:

DPGCmd
 Copyright
 Version
 CHS
  Application
  Application
  Application
  ...
 ENG
  Application
  Application
  Application
  ...
 JPN
 ...
 ESP
 RUS
 ...
 ALL
  Application
  Application
  Application
  ...

Those CHS, CHT, ENG, JPN, PTB, PTI, ESP, RUS etc are languages. Presumably for the keyboard layout of that language. (keyboard layout can be chosen from Control Panel, Regional and Language Options). I don't know if it is safe to delete all these blocks and leave just the “<ALL>...</ALL>” block. The ALL seems to be the catch all section. Each “Application” tag is for that app. Below is a example from the ALL section:

<ALL>
  <Application UniqueName="StandardSupport">
    <C309 Type="5" KeySeq="ctrl F4" />
    <C201 Type="5" KeySeq="ctrl c" />
    <C200 Type="5" KeySeq="ctrl x" />
    <C301 Type="5" KeySeq="alt F4" />
    <C302 Type="5" KeySeq="F1" />
    <C202 Type="5" KeySeq="ctrl v" />
    <C203 Type="5" KeySeq="ctrl z" />
    <C205 Type="5" KeySeq="delete" />
    <C100 Type="5" KeySeq="alt leftarrow" />
    <C101 Type="5" KeySeq="alt rightarrow" />
    <C103 Type="5" KeySeq="escape" />
    <C300 Type="5" KeySeq="enter" />
    <C319 Type="6" Activator="ScrollUp" />
    <C320 Type="6" Activator="ScrollDown" />      
    <C1101 Type="6" Activator="HorizontalScroll" />
    <C1003 Type="7" Subtype="0" />
  </Application>
  ...
</ALL>

Each line defines a key and its action. For example:

<C319 Type="6" Activator="ScrollUp" />

The “C319” is the Zoom slider at up position. The “Type” and the rest defines the behavior of the key. Here's what the type number means, based on Joel Bennett's blog:

TypeMeaning
0disables the key.
5Type a key combo and or sequence. Used together with property “KeySeq”.
6seems for continuous action, such as zoom and scroll. All type 6 has “Activator” as its property, and its property value is either scroll or zoom.
1Sending window message?
2Sending window message?
3Sending window message?
4Sending window message?
7?

Here's all possible key codes that exist in commands.xml, and their meanings.

CodeKeyComment
C100?
C101?
C102?
C103?
C104?
C105?
C106?
C200?
C201?
C202?
C203F2
C204F3
C205?
C300?
C301?
C302F1
C307F4
C308F5
C309F6
C310F12
C311F11
C315?
C319Zoom slider up position
C320Zoom slider down position
C401F10
C900F7
C901F8
C902F9
C1003?
C1101?
C1451?

IMPORTANT: If you do edit the file, make you your editor has admin privilege, otherwise Vista will actually just create a copy of a file at “$HOME\AppData\Local\VirtualStore\”. (for some detail about the VirtualStore, see: File Aliases Considered A Plague.) Also, you should be careful when you edit the file. It might cause IntelliType to crash. (according to some blog, IntelliType doesn't really read the file as xml, so don't think you know xml and start to add random things.)

IntelliType Processes

The IntelliType processes are “itype.exe” and “dpupdchk.exe”, both located under “C:\Program Files\Microsoft IntelliType Pro\”.

The “itype.exe” is the core software. If this process is not running, then some special keys on your keyboard will not work. For example, the Zoom slider won't work, the My Favorites buttons won't work, the volumn increase/decrease or the Mute button won't display visual feedback (if you have turned on visual feedback). However, some of common special keys will still work. For example, the Web/Home button, Search button, Mail button, Calculator button, all still work but their actions will be system default, not whatever you have defined with IntelliType.

The “dpupdchk.exe” is a software update checker. It will be running only if you have turned on automatic software update check. (i don't remember where this setting is turned on. I think it was during the installation of IntelliType.)

It is safe to restart these processes.

To stop the process, you can use the Windows Task Manager, or Process Explorer.

To start them, you can simply go to control panel and launch Keyboard.

Macros

IntelliType has a keyboard macro feature. It lets you define keys to type a sequence of key combinations. However, the interface is not much documented in the Help file, and for some key combination it's not possible to program it correctly using the interface.

IntelliType Macro Interface

The Interface of IntelliType's Macro Editor

When you create a macro, the data is stored at for example: “C:/Users/xah/Documents/Microsoft Hardware/Macros”. Take a look of that folder. (if the folder doesn't exist, then create a macro first.) The folder contains files for macros you've created. If you have macros for specific applications (as done thru the interface menu named “Custom Key Settings” and “Automatic Program Settings”), a new folder is created for that application.

For example, here's my current directory tree of that folder:

C:/Users/xah/Documents/Microsoft Hardware/Macros
 Alt+Tab.mhm
 Ctrl+Alt+Tab.mhm
 Emerald
  show hide volumn.mhm
  show hide wireframe.mhm

The file names show up in the IntelliType interface as the macro names under the “Available Macros” box on the left. The “Emerald” folder holds macros for when i'm in the “Emerald” application. (Emerald is a viewer for Second Life.)

Each file is a XML file. When you use the IntelliType interface to create a macro, a xml file is automatically created for you. Once you created a macro thru the interface, you can edit the xml file to fine tune it. You can also just create a new xml file and it'll show up in IntelliType. When you relaunch IntelliType, the macro interface will show macros based on files in this folder.

For example, the following is the content of my macro “show hide volumn”, which is equivalent of “Ctrl+Alt+Shift+9” used for Second Life.

<?xml version="1.0" encoding="UTF-8"?><Macro>
  <KeyBoardEvent Down="true">29</KeyBoardEvent>
  <KeyBoardEvent Down="true">42</KeyBoardEvent>
  <KeyBoardEvent Down="true">56</KeyBoardEvent>
  <KeyBoardEvent Down="true">10</KeyBoardEvent>
  <DelayEvent>10</DelayEvent>
  <KeyBoardEvent Down="false">10</KeyBoardEvent>
  <KeyBoardEvent Down="false">42</KeyBoardEvent>
  <KeyBoardEvent Down="false">29</KeyBoardEvent>
  <KeyBoardEvent Down="false">56</KeyBoardEvent>
</Macro>

The line “<KeyBoardEvent Down="true">29</KeyBoardEvent>” means the press down the key 29. The line “<DelayEvent>10</DelayEvent>” means put a delay of 10 micro seconds. The line“<KeyBoardEvent Down="false">29</KeyBoardEvent>” means release the key 29. You can find out key's code by using the interface to record keys and look at your xml file. Here's some code of the keys:

codekey
29Ctrl
42Shift
56Alt
109

Example With iTunes

Here's a complete example for setting up keys for iTunes together with AutoHotKey.

Most Microsoft keyboards has a Play/Pause button. However, if you use iTunes, you will need to switch to iTunes first for that key to work. This is a pain. Also, the Microsoft Natural Ergonomic Keyboard 4000 does not have a previous/next song buttons. You might want the Favorite 4 and Favorite 5 buttons to do that. However, using IntelliType interface, it can only let you redefine Favorite button to launch folder or apps. With some registry hacking from info here, you could make them function as previous/next song buttons, however, you still need to switch to iTunes for them to work.

To solve this problem, you will need more advanced macro software, such as AutoHotKey.

How to make the Favorite 4 and Favorite 5 buttons do previous/next song?

Change the value of following registry keys:

Key: HKEY_CURRENT_USER\Software\Microsoft\IntelliType Pro\EventMapping\81\Command
Value: “704” (decimal)

Key: HKEY_CURRENT_USER\Software\Microsoft\IntelliType Pro\EventMapping\82\Command
Value: “703” (decimal)

Then, restart the “itype.exe”. Note: if you are using iTunes, you still need to switch to iTunes first for the keys to work.

If you want it to switch song without having to switch to iTunes first, you'll need to use AutoHotKey. Use AutoHotKey to set a hotkey for iTunes, then, have your Favorite buttons send those keys.

Following is a complete standalone AutoHotKey setup. It will set your Media Previous and Media Next buttons to do previous/next song. (if your keyboard has those buttons) It will also set “Ctrl+‘numpad *’” for Play/Pause, and “Ctrl+‘numpad -’” for previou song, and “Ctrl+‘numpad +’” for next song. You do not need to switch to iTunes first for these hotkeys to work.

#SingleInstance force
DetectHiddenWindows, on

;; next song button
Media_Prev::
IfWinExist, ahk_class iTunes
ControlSend, ahk_parent, ^{Left}
Return

;; previous song button
Media_Next::
IfWinExist, ahk_class iTunes
ControlSend, ahk_parent, ^{Right}
Return

;; Ctrl+“Numpad *” for play/pause
$^NumpadMult::
IfWinExist, ahk_class iTunes
ControlSend, ahk_parent, {Space}
Return

;; Ctrl+“Numpad -” for prev song
$^NumpadSub::
IfWinExist, ahk_class iTunes
ControlSend, ahk_parent, ^{Left}
Return

;; Ctrl+“Numpad +” for next song
$^NumpadAdd::
IfWinExist, ahk_class iTunes
ControlSend, ahk_parent, ^{Right}
Return

Now, we want to set the Favorite 4 button to send the “Ctrl+‘numpad -’” signal, so that AutoHotKey will catch it and do previous song.

Following is a screenshot of Favorite 4 key setup for previous song.

IntelliType Registry 81

You need also do similar for Favorite 5 button. (registry key 82) The “Keystroke” value should be 619 decimal, and “KeystrokeText”'s value should be “CTRL + NUM PLUS”.

The most easy way to find out what these registry values should be, is to use IntelliType interface to define the key you want thru its keystroke command, then look at the registry for that key. In fact, this is the only way. Because, for example, you can see that the key combo “Ctrl+‘numpad -’” has the code 621. You won't find 621 in any of the keycode tables here.

The next step is to redefine the Play/Pause key to send the “Ctrl+‘numpad *’” signal. This can be easily done using IntelliType interface.

Note: After a reboot of Windows, my Favorite 4 and 5 buttons stopped functioning as prev/next song for iTunes. I don't know why. The registry keys i made are still there. Haven't had time to investigate why. (after spending so many days to write this doc and hacking IntelliType, i find that the time is not worth it. Best solution is just use IntelliType for whatever features its interface provides, and use AutoHotKey separately.)

FAQ

What happens to your keyboard if you don't install IntelliType?

The “itype.exe” is the core software. If this process is not running, then the special keys on your keyboard may not work. For example, the Zoom slider won't work, the My Favorites buttons won't work, the volumn increase/decrease or the Mute button won't display visual feedback (if you have turned on visual feedback). However, some of common special keys will still work, because the OS understand them. For example, the Web/Home button, Search button, Mail button, Calculator button, all still work but their actions will be system default, not whatever you have defined with IntelliType.

How to swap Cap Lock and Control?

You cannot do it with IntelliType. But you can do so using AutoHotKey. (todo: show how) See: How To Create Your Own Keybinding In Microsoft Windows, How to Swap Modifier Keys on OS X, Why You Should Not Swap Caps Lock With Control.

How to make the zoom slider do zoom in Firefox?

Add the following text:

    <Application UniqueName="MozillaUIWindowClass" AppName="Firefox">
      <C319 Type="5" KeySeq="ctrl add" />
      <C320 Type="5" KeySeq="ctrl subtract" />
    </Application>

In the “<ALL>...</ALL>” section of the file “commands.xml”. Make sure that you are editing the actual “C:\Program Files\Microsoft IntelliType Pro\commands.xml” file, not a virtualized copy at “$HOME\AppData\Local\VirtualStore\”.

Source

How to make the Zoom slider do scroll?

They do scroll by default in FireFox. The following solution is gathered from all blogs and comments.

Open the file “commands.xml” at “C:\Program Files\Microsoft IntelliType Pro\”, then change any line:

<C319 Type="6" Activator="ZoomIn" />

to

<C319 Type="6" Activator="ScrollUp" />

and change

<C320 Type="6" Activator="ZoomOut" />

to

<C320 Type="6" Activator="ScrollDown" />

Then, restart the process “itype.exe”.

There are also lines like this for some applications:

<C319 Type="6" Activator="OutlookZoomIn" />
<C319 Type="6" Activator="IllustratorZoomin" />
<C319 Type="6" Activator="WebEditorPrintPrvZoomIn"/>

You might want to change those too.

If you want the zoom to be page up/down instead, change them into this:

<C319 Type="5" KeySeq="pageup" />
<C320 Type="5" KeySeq="pagedown" />

(Note: “Type="6"” means that the slider will function continuously, such as for zoom or scroll. “Type="5"” means it's more like one-time key press, such as page down.)

Note: C319 is for pushing the slider up (C320 is down). C319 is usually set to zoom in, but however, in the “commands.xml” file, some app have the zoom direction reversed. That is, they have C319 set to zoom out, with lines like this:

<C319 Type="6" Activator="ZoomOut" />
<C320 Type="6" Activator="ZoomIn" />

So, this means, when you replace the zoom lines in the text to scroll, you have to match these lines too.

How to have one of the Favorite key open the Control Panel

The Control Panel folder is a virtual folder. When you are asked for a path, simply give “Control Panel”.

IntelliType vs AutoHotKeys

Note, i have not mastered how IntelliType works. But after 5 months of keyboard hacking here and there on the Windows platform, i find that it's much better to spend time with AutoHotKeys instead, because it is more powerful and more complete in keyboarding features.

IntelliType allows you to remap keys to pre-defined actions. Most of the pre-defined actions are actually just key sequences. (for example, when you assign some key for undo, then press the key, then IntelliType actually sends the “Ctrl+z” keypress to the software. It does not in some way directly call a undo command in the software.) It does not let you define complicated actions that needs "if then else" statements. For example, you want a key that closes the current window, tab, dialog box, or program, or hide it. All these are similar concepts but different apps have different keys for it. Some app support “Alt+F4”, some “Ctrl+F4”, some “Ctrl+w”, and dialog windows usually support “Esc”. Some support a combination of them, some none. You want to be able to know what is the current app or window name, and choose a key combo based on that. So, you need a “if then else” on the current window's name. That is not possible with hacking IntelliType's registry or its xml files. (For more detail, see: Problems of Microsoft IntelliType)

If you are using a Microsoft keyboard, then IntelliType software is still necessary, for mapping the various special buttons and knobs on the keyboard. But for the core key actions, AutoHotKeys is much more flexible. See AutoHotKey Basics.

The most reliable way i find so far to make many of special buttons on Microsoft keyboard to work with AutoHotKeys, is to use IntelliType to map those buttons to special key combo, such as “Ctrl+Alt+F10”, then use AutoHotKey to interpret the combo “Ctrl+Alt+F10” for actions based on the current app name, window name, etc. When you make a key work as pressing key combo, just use the IntelliType interface. If IntelliType interface does not let you remap the key, such as the My Favorites buttons, then just don't use those keys. Hacking the registry is not worth while.


todo:

• find the codes/key correspondence used in “commands.xml”. In particular, find the fav buttons, play/pause, the web/home, search buttons.

Other Sites

Some people have blogged about IntelliType. Thanks to them, in particular Joel Bennett, which made my research easier.

ms n4000 keyboard sawed off

This guy, Ryan (aka hihihihihi), actually saw'd off the number pad portion of the keyboard. Now, that's a hack! Source

2007-10
© 2007 by Xah Lee.