2

我想等待并关闭另一个应用程序的模态表单(弹出窗口),一旦它出现。我想从 VB.NET 执行此操作,但 C# 中的建议应该很容易翻译。

我可以在我的应用程序中对模态弹出窗口的标题进行硬编码,因为它又长又独特。我想要做的是模拟用户单击表单上的关闭(“X”)按钮,或者单击表单的默认选项卡顺序 0 按钮。要么工作。

也许除了标题栏的标题之外,我还需要有关模式弹出窗口的更多信息?在任何情况下,将其用作该模态表单的唯一标识符是安全的。我还希望该代码在关闭弹出窗口的第一个事件发生后立即终止检查。

我相信这是微不足道的,但我找不到任何现成的信息。微软说我不应该发送WM_CLOSE到模式弹出窗口,因为它会调用DestroyWindow()而不是EndDialog(),但老实说,我什至不知道“发送WM_CLOSE”到“窗口”是什么意思 =/

感谢您分享一点大师精神!:D

PS:这在 AutoHotkey 中可能是微不足道的。不知道我觉得很蹩脚,我知道我需要它

4

1 回答 1

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

这应该关闭对话框

于 2009-12-16T19:58:59.070 回答