To add to what Graeme has said ...
Quote:
Is there a way to have the C# find and recognize the various capabilities of the app and then work with these? For example, read data in the app's components or windows, press buttons, etc?
And what good will that do you? You can't identify a control as a text box or a label just by looking at it's handle - which is about all you can get from a running app, so you certainly can't tell if you should send it the username or the password!
You need to look at the app and treat it the way a user would when he's used to it: "it starts in the username box, so type that, then TAB, then the password"
But ... if the app updates, it may start somewhere totally different, or the password could be on a different page.
What are you trying to automate anyway?