I'm glad he mentioned AutoHotkey (http://www.autohotkey.com/). It's a very powerful tool for keyboard/mouse automation, although its scripting language is rather quirky. (Watch out for the two very different forms of assignment statement, one that does string interpolation and the other that uses modern style expressions.)
I recently rewrote my JKLmouse utility (http://www.jklmouse.com/) as an AutoHotkey script, so it works on 64-bit versions of Windows and is easier to modify than the old C version I wrote years ago.
If you ever want to control the mouse pointer pixel by pixel, JKLmouse makes it easy. Whenever any mouse (TrackPoint/touchpad) button is down, the cursor keys and some home row and nearby keys turn into mouse movement keys. There's no special mouse key mode, it just works when you need it. You can also use Caps Lock to activate these mouse movement keys if you want to move the mouse without any mouse buttons down.
It really works nicely combined with the TrackPoint on my ThinkPad: I can hold down the mouse (TrackPoint) button and use the TrackPoint to move something close to where I want it, and then just keep the button down and use the JKLmouse keys to position it exactly.
There is a similar program on Scott's list, TouchCursor (http://touchcursor.sourceforge.net/). I think the interaction is smoother with JKLmouse - but I would say that, wouldn't I? :-)
Vim users may not like the choice of home row cursor keys in either of these utilities, but TouchCursor has a dialog to change the settings, and JKLmouse being an AutoHotkey script, you can just modify the JKLmouse.ahk file and run it directly under AutoHotkey.
I recently rewrote my JKLmouse utility (http://www.jklmouse.com/) as an AutoHotkey script, so it works on 64-bit versions of Windows and is easier to modify than the old C version I wrote years ago.
If you ever want to control the mouse pointer pixel by pixel, JKLmouse makes it easy. Whenever any mouse (TrackPoint/touchpad) button is down, the cursor keys and some home row and nearby keys turn into mouse movement keys. There's no special mouse key mode, it just works when you need it. You can also use Caps Lock to activate these mouse movement keys if you want to move the mouse without any mouse buttons down.
It really works nicely combined with the TrackPoint on my ThinkPad: I can hold down the mouse (TrackPoint) button and use the TrackPoint to move something close to where I want it, and then just keep the button down and use the JKLmouse keys to position it exactly.
There is a similar program on Scott's list, TouchCursor (http://touchcursor.sourceforge.net/). I think the interaction is smoother with JKLmouse - but I would say that, wouldn't I? :-)
Vim users may not like the choice of home row cursor keys in either of these utilities, but TouchCursor has a dialog to change the settings, and JKLmouse being an AutoHotkey script, you can just modify the JKLmouse.ahk file and run it directly under AutoHotkey.