See the question and my original answer on StackOverflow

I suggest you use the cool but little-known UI Automation API for this work.

For this, the first thing to test is launch the associated UISpy tool. It will display a tree of all accessible windows on screen. It also is able to run some actions like pressing a menu, selecting an item, etc. This is using what's called UI Automation Control Patterns, which provide a way to categorize and expose a control's functionality independent of the control type or the appearance of the control.

So, if you can automate this application with UI Spy, you also can do the exact same thing using .NET code (UISpy is itself simply using the underlying API).

Here is an interesting tutorial article about UI automation programming: The Microsoft UI Automation Library