FindWindowEx (user32)
Last changed: a-202.69.38.82

.
Summary

C# Signature:

[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className,  IntPtr windowTitle);

VB Signature:

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr, _
                      ByVal childAfter As IntPtr, _
                      ByVal lclassName As String, _
                      ByVal windowTitle As String) As IntPtr
End Function

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

/// <summary>
/// Gets the handle to the horizontal scroll bar.
/// </summary>
/// <param name="parentControl">The parent window of the scrollbar.</param>
/// <returns>Handle to the scrollbar window.</returns>
private IntPtr GetHandleToHorizontalScrollBar(Control parent)
{
    // Locals
    IntPtr childHandle;
    string appDomainHexedHash;

    // Get the hexadecimal value of AppDomain hash code.
    // This value is dynamically appended to the window class name of the child window
    // for .NET Windows Forms.  This name is viewable via the Spy++ tool.
    appDomainHexedHash = AppDomain.CurrentDomain.GetHashCode().ToString("x");

    // Find window handle
    childHandle = FindWindowEx(
        parent.Handle,    // Parent handle
        IntPtr.Zero,    // Child window after which to seek
        "WindowsForms10.SCROLLBAR.app.0." + appDomainHexedHash, // Class name to seek (viewable in the Spy++ tool)
        IntPtr.Zero);    // Window title to seek

    // Return handle
    return childHandle;
}

private string GetUrlFromIE()
{
    IntPtr windowHandle = GetForegroundWindow();
    IntPtr childHandle;
    String strUrlToReturn = "";

    //try to get a handle to IE's toolbar container
    childHandle = FindWindowEx(windowHandle,IntPtr.Zero,"WorkerW",IntPtr.Zero);
    if(childHandle != IntPtr.Zero)
    {
        //get a handle to address bar
        childHandle = FindWindowEx(childHandle,IntPtr.Zero,"ReBarWindow32",IntPtr.Zero);
        if(childHandle != IntPtr.Zero)
        {
            // get a handle to combo boxex
            childHandle = FindWindowEx(childHandle, IntPtr.Zero, "ComboBoxEx32", IntPtr.Zero);
            if(childHandle != IntPtr.Zero)
            {
                // get a handle to combo box
                childHandle = FindWindowEx(childHandle, IntPtr.Zero, "ComboBox", IntPtr.Zero);
                if(childHandle != IntPtr.Zero)
                {
                    //get handle to edit
                    childHandle = FindWindowEx(childHandle, IntPtr.Zero, "Edit", IntPtr.Zero);
                    if (childHandle != IntPtr.Zero)
                    {
                        strUrlToReturn = GetText(childHandle);
                    }
                }
            }
        }
    }
    return strUrlToReturn;
}

Alternative Managed API:

Do you know one? Please contribute it!

Referrel URL : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/findwindowex.asp

Documentation