从vb.net关闭模式弹出窗口?

时间:2009-12-15 17:28:19

标签: vb.net winapi automation modal-dialog external-process

我想等待并立即从另一个应用程序关闭模式窗体(弹出窗口)。我想从VB.NET中做到这一点,但C#中的建议应该很容易翻译。

我可以在我的应用程序中对模态弹出框的标题进行硬编码,因为它很长而且很独特。我想要做的是模拟用户点击表单上的关闭(“X”)按钮,或者单击表单的defeault,tab-order 0按钮。要么工作。

也许除了标题栏的标题之外,我还需要更多关于模态弹出窗口的信息?无论如何,将它用作该模态形式的唯一标识符是安全的。我也希望该代码在关闭弹出窗口的第一个事件发生时立即终止检查。

我认为这是微不足道的,但我找不到任何关于此的准备信息。微软说我不应该将WM_CLOSE发送到模态弹出窗口,因为它会调用 DestroyWindow()而不是 EndDialog(),但说实话我不喜欢甚至知道“发送WM_CLOSE”到“窗口”是什么意思= /

感谢分享一下大师! :d

P.S。:在AutoHotkey中这可能是微不足道的。我感到羞耻,不知道,I know I need it

1 个答案:

答案 0 :(得分:1)

IntPtr handle = FindWindow(null, "Dialog_Title");
SendMessage(handle, WM_NCDESTROY, 0, 0);

这应关闭对话框