Hey guys.
You seem more knowledgeable in the ways of interfacing with hostile applications than most people on the web, so maybe you can throw me some solid pointers.
I'm currently interacting with an unmanaged application without an open API in C# and its proving to be something of a challenge. I need to interact, through mouse clicks, with buttons and listboxes aswell as reading out string values on the screen.
Its not a game with custom UI in fullscreen DirectX or such. The controls are seemingly very similar to normal WPF UI blocks and then again, not.
Normally I'd use UISpy from MS to get all the UI objects and call them through UI Automation, but UISpy only registers the first mother pane. The following 3 panes are blank from content objects.
I used Spy++ to get relative coordinates to buttons, along with Shynd's awesome PostMessages.cs code, but unfortunately those coordinates change as the window resizes :/ Then again, if Windows registers WM_LButtonDown events or similar on the buttons, my thought is I should be able to read out what object that button is and interface with it somehow.
How do I go about getting those object references for non standard UI controls?
I'm sort of not interested in going down the standard offset/hooking route.
Mainly because I stink at reverse engineering and the application internals update somewhat every week making that approach very costly for me.
Feel free to ask if I've missed out explaining something and thanks for your time.