[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);
<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 tring) As IntPtr
End Function
None.
None.
Please add some!
/// <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)
{
IntPtr childHandle;
IntPtr size = IntPtr.Zero;
StringBuilder currentUrl = new StringBuilder();
//try to get a handle to IE's toolbar container
childHandle = Win32.FindWindowEx(windowHandle,IntPtr.Zero,"WorkerW",IntPtr.Zero);
if(childHandle != IntPtr.Zero)
{
//get a handle to address bar
childHandle = Win32.FindWindowEx(childHandle,IntPtr.Zero,"ReBarWindow32",IntPtr.Zero);
if(childHandle != IntPtr.Zero)
{
//finally, locate combo box and add its text to the list
childHandle = Win32.FindWindowEx(childHandle, IntPtr.Zero, "ComboBoxEx32", IntPtr.Zero);
if(childHandle != IntPtr.Zero)
{
size = Win32.SendMessage(childHandle,Win32.WM_GETTEXTLENGTH,IntPtr.Zero,IntPtr.Zero);
Win32.SendMessage(childHandle,Win32.WM_GETTEXT,size,currentUrl);
}
}
}
return currentUrl.ToString();
}
Do you know one? Please contribute it!