[1] Well, to answer your *last* question, class name is usually good, unless you're working with a program written in VB (they all have the same classes)

[2] I've never heard of "DLL injection"...what is it?

[3]
For TextPad, there are over 30 top-level windows for this application...for scroll bar, combo boxes, buttons, etc. I can switch any of them that I like to the foreground but I really only want the one that would be maximized when the user clicks on the minimized application in the taskbar.
I have a baaaaaaaad feeling you have NO CLUE what a top level window is. Try looking at the taskbar. All the visible top-level windows, and only those windows, show up on the taskbar. (with a few exceptions). Scroll bars and combo boxes and buttons and other controls are NOT top-level windows, and I'd really like to know who told you they were, so I can kick his ass.