FindWindow på under kontroller!
Hej folks!Jeg er ved at lave et lille stump kode hvor man skal kunne udpege nogle knapper, og så skal mit kode herefter kunne sende beskeder til de udpeget kontroller.
Jeg kan få FindWindow til at virke på hele vinduer men ikke childs/kontroller. Og det er så her i kommer ind i billedet :D
Hvad gør jeg galt, se evt nedenstående kode.
[DllImport("user32.dll")]
static extern int GetClassName(IntPtr hWnd, System.Text.StringBuilder lpClassName,
int nMaxCount);
[DllImport("user32.dll", EntryPoint = "WindowFromPoint")]
static public extern IntPtr WindowFromPoint(Point Point);
[DllImport("user32.dll")]
private static extern int SendMessage( IntPtr handle, UInt32 message,
int wParam,
int lParam);
[DllImport("User32.dll")]
public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, IntPtr windowTitle);
private const UInt32 WM_LBUTTONDOWN = 0x201;
private const UInt32 WM_LBUTTONUP = 0x202;
private void button2_Click(object sender, System.EventArgs e)
{
IntPtr p = WindowFromPoint(Cursor.Position);
string className = GetClassName(p);
string windowText = GetWindowText(p);
IntPtr i = FindWindow( className,windowText);
IntPtr i2 = FindWindowEx(IntPtr.Zero, IntPtr.Zero, className, IntPtr.Zero);
MessageBox.Show(className);
}
private string GetWindowText(IntPtr hWnd)
{
StringBuilder sb = new StringBuilder(256);
GetWindowText(hWnd, sb, 256);
return sb.ToString();
}
private string GetClassName(IntPtr hWnd)
{
StringBuilder sb = new StringBuilder(256);
GetClassName(hWnd,sb,256);
return sb.ToString();
}
