Kevin Schofield - Tour of Microsoft Research, Part I (graphic and developer tool research)

To create the automated tests, do you record and then playback mouse and keyboard events? I was assuming you'd do it programmatically with COM or maybe send WM_COMMANDs.
A while ago I had to automate the AOL dial-up window because it didn't use a standard RAS entry. Instead I found the control IDs with Spy++ and used PostMessage and SendMessage to click the right buttons. I guess you don't do it that way because your goal is to simulate an actual user?
Record and playback is definitely one way to automate tests. Our primary method is to use a combination of MSAA and Win32 api calls, like sending messages to a control as you describe above. We drive the UI (meaning we use the mouse and/or keyboard to
click on menus, buttons, etc) as much as possible to simulate an actual user, and it does a really good job.
Brian McMaster, one of our software testing architects (someone who designs our automation framework) wrote this whitepaper on Automating WinForms...
https://msdn.microsoft.com/library/en-us/dnwinforms/html/autowforms.asp
Hope this helps!
-sara