I\'d like to write a program able to \"use\" other programs by taking control of the mouse/keyboard and being able to \"see\" what\'s on the screen.
I used AutoIt to
I've used the Windows (only) Input API to write a VNC-like remote-control application in the past. It lets you fake keyboard and mouse input nicely at a system level (ie not just posting events to a single application).
If you're trying to do any sort of automated testing of whole systems at the GUI level, this excellent USENIX paper describing automated responsiveness testing is a must-read.