110,538
社区成员
发帖
与我相关
我的任务
分享
[DllImport("User32.dll")]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
IntPtr hwndPlus = FindWindowEx(form.Handle, IntPtr.Zero, "#32770", null);
private int messageBoxHandle = 0; // 消息框的句柄
/// <summary>
/// 枚举所有窗口时的回调函数
/// </summary>
/// <param name="hwnd">枚举所有窗口时当前访问的句柄</param>
/// <param name="parentHandle">要查找的窗口的父窗口的句柄</param>
/// <returns></returns>
public delegate bool CallBack(int hwnd, int parentHandle);
[DllImport("user32.dll")]
public static extern int EnumWindows(CallBack callBack, int parentHandle);
[DllImport("user32")]
public static extern int GetParent(int hwnd);
// 获取从parentHandle弹出的消息框
public bool GetMessageBox(int hwnd, int parentHandle)
{
int pHwnd = GetParent(hwnd);
if (pHwnd == parentHandle)
{
this.messageBoxHandle = hwnd;
}
return true;
}
/*** 调用 ***/
// 查找消息框的句柄
EnumWindows(this.GetMessageBox, form.Handle.ToInt32());