日期:2014-05-18  浏览次数:20716 次

怎么获取没有标题的消息框
我通过我的程序打开另外一个程序A,然后模拟这个程序A的一些操作,操作进行到一个form的时候,
在form里面弹出了一个MessageBox,没有标题,里面只有一个确定按钮
form我已经获取到了,尝试用下面的方法获取MessageBox,但是返回的句柄为0
#32770是用spy获取到的消息框的类名

C# code


[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);




我是想让程序自动关闭MessageBox,模拟回车也试过了SendKeys.Send(Keys.Enter.ToString()),但是不起作用


------解决方案--------------------
#32770是对话框类窗体共用的窗体类,枚举这种窗体再做其它判断就可以了.
要找到一个窗体有很多种方法,FindWindow只是其中之一.

比如:
通过父窗体找:GetParent.

通过进程和线程找:GetWindowThreadProcessId

当然,用这些的前提是你会枚举窗体.