问题描述
||
我想知道如何在user32 dll的帮助下以编程方式激活按钮。感谢帮助。
在下一个代码中,我可以处理我的特定窗口。现在,我想激活此窗口具有的按钮(“打开”按钮)。
有没有一种方法可以搜索和打印处理程序在窗口中看到的所有内容(按钮打开,关闭...等等)?
需要帮忙!!
这是我的代码:
StringBuilder bld = new StringBuilder(256);
StringBuilder className = new StringBuilder(256);
GetwindowText(hwnd,bld,256);
GetClassName(hwnd,className,256);
string text = bld.ToString();
if (text.Length > 0)
{
Console.WriteLine(\"Pointer: \" + hwnd.ToInt32().ToString() + \" Window Title: \" + text);
if (text == \"my_window\") {
Console.WriteLine(bld.ToString()+\"...\"+className.ToString()+\"...\"+hwnd.ToString());
system.intPtr ptrChild = Getwindow(hwnd,5);
IntPtr handll = FindWindow(className.ToString(),\"my_window\");
if (handll == IntPtr.Zero)
{
Console.WriteLine(\"not working\");
}
SetForegroundWindow(handll);
while (!handll.Equals(IntPtr.Zero)){ //HOW TO CHECK (FIND) FOR THE OK BUTTON?!}
..}
解决方法
您可以使用FindWindowEx搜索所有控件。
IntPtr handle = FindWindowEx(parentWindow,IntPtr.Zero,null,null);
while(handle != IntPtr.Zero)
{
GetWindowText(handle,bld,255);
MessageBox.Show(bld.ToString()); // writes out displayed text
handle = FindWindowEx(parentWindow,handle,null);
}
(可选)您只能搜索按钮:
IntPtr handle = FindWindowEx(parentWindow,\"BUTTON\",null);
}