[DllImport("user32.dll")]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
<DllImport("user32.dll")> _
Shared Function FindWindowEx( _
ByVal hWndParent As IntPtr, _
ByVal hWndChildAfter As IntPtr, _
ByVal ClassName As String, _
ByVal WindowCaption As String) As IntPtr: End Function
Declare Auto Function FindWindowEx Lib "user32" (ByVal hWndParent As IntPtr, ByVal hWndChildAfter As IntPtr, ByVal ClassName As String, ByVal WindowCaption As String) As IntPtr
The FindWindowEx function retrieves the handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the given child window.
Works hand-in-hand with The FindWindow API
Use the fantastic Spy++ (One of the vStudio tools) to get details of specific Windows you're looking for.
//C#
//Open Notepad First
string lpszParentClass = "Notepad";
string lpszParentWindow = "Untitled - Notepad";
string lpszClass = "Edit";
IntPtr ParenthWnd = new IntPtr(0);
IntPtr hWnd = new IntPtr(0);
ParenthWnd = FindWindow(lpszParentClass,lpszParentWindow);
if (ParenthWnd.Equals(IntPtr.Zero))
Console.WriteLine("Notepad Not Running");
else
{
hWnd = FindWindowEx(ParenthWnd,hWnd,lpszClass,"");
if (hWnd.Equals(IntPtr.Zero))
Console.WriteLine("What the F??? Notepad doesn't have an edit component ?");
else
{
Console.WriteLine("Notepad Window: " + ParenthWnd.ToString());
Console.WriteLine("Edit Control: " + hWnd.ToString());
}
}
Do you know one? Please contribute it!