public static IntPtr FindControl(String windowName, String className) { var windowHandle = FindWindow(windowName); if (windowHandle == IntPtr.Zero) { return(IntPtr.Zero); } var result = IntPtr.Zero; EnumWindowDelegate findControlInChildren = null; findControlInChildren = (childWindowHandle, lParam) => { result = FindWindowEx(childWindowHandle, IntPtr.Zero, className, null); if (result != IntPtr.Zero) { return(false); } EnumChildWindows(childWindowHandle, findControlInChildren, IntPtr.Zero); return(result == IntPtr.Zero); }; EnumChildWindows(windowHandle, findControlInChildren, IntPtr.Zero); return(result); }
static extern bool EnumWindows(EnumWindowDelegate lpEnumFunc, IntPtr lParam);
private static extern bool EnumThreadWindows(int threadID, EnumWindowDelegate callback, IntPtr longPointer);
private static extern bool EnumChildWindows(IntPtr handler, EnumWindowDelegate callback, IntPtr longPointer);
public static extern bool EnumThreadWindows(int threadId, EnumWindowDelegate enumFunc, int lParam);
public static extern int EnumWindows(EnumWindowDelegate enumFunc, int lParam);
public static extern int EnumWindows(EnumWindowDelegate x, IntPtr y);
public static extern Boolean EnumThreadWindows(Int32 threadId, EnumWindowDelegate callback, IntPtr lParam);
private static extern bool EnumChildWindows(IntPtr hwndParent, EnumWindowDelegate lpEnumFunc, IntPtr lParam);
private static extern bool EnumThreadWindows(uint dwThreadId, EnumWindowDelegate lpfn, IntPtr lParam);
static extern bool EnumWindows(EnumWindowDelegate lpEnumFunc, IntPtr lParam);
private static extern bool EnumThreadWindows(int threadID, EnumWindowDelegate callback, IntPtr longPointer);
private static extern bool EnumChildWindows(IntPtr handler, EnumWindowDelegate callback, IntPtr longPointer);
public static extern Boolean EnumChildWindows(IntPtr parentWindowHandle, EnumWindowDelegate callback, IntPtr lParam);
public static extern int EnumWindows(EnumWindowDelegate x, int y);
public static extern int EnumWindows(EnumWindowDelegate x, int y);
public static extern bool EnumChildWindows(IntPtr hwnd, EnumWindowDelegate lpEnumFunc, IntPtr lParam);
public static extern Boolean EnumDesktopWindows(IntPtr desktopHandle, EnumWindowDelegate callback, IntPtr lParam);