我有一个使用Delphi 7开发的应用程序,它会弹出模态对话框来处理一些情况。我现在想要从另一个单元中判断特定单元中的对话框是否打开,并关闭它。到目前为止,我尝试了以下代码:
Wnd := GetLastActivePopup(Application.Handle);
if (Wnd <> 0) and (Wnd <> Application.Handle) then
PostMessage(Wnd, wm_close,0,0);
但是,它会关闭所有已打开的对话框。当我尝试指定特定的表单时,例如:
if (Wnd <> 0) and (Wnd <> FormTest.Handle) then
出现访问冲突错误。
我如何确定特定单元的对话框是否弹出?
EnumWindows
获取所有顶级窗口而不是使用FindWindow
获取第一个。无论如何,一个整个桌面的解决方案肯定不是这里所要求的。 - David Heffernan