如何检测窗口是否有“是否要保存更改”对话框?

时间:2017-03-10 07:09:18

标签: c# wpf winapi

我正在尝试关闭类似于this的WPF应用程序中的其他窗口。问题是某些窗口应用程序(如记事本)仅显示一个对话框,其中包含“是否要保存更改?”。如何检测窗口是否自动关闭?此外,是否有可能的方法来覆盖此行为?

1 个答案:

答案 0 :(得分:0)

没有通用"你想保存吗?" Windows中的对话框。应用程序通常只显示MessageBox以响应WM_CLOSE消息。

您可以尝试手动发布 WM_CLOSE消息到顶级窗口,如果在短暂超时后,窗口会被禁用但仍然可见,那么您可以认为它正在显示一个模式对话框,可能要求用户保存。

为了使其更强大,您可以在一个线程上发送消息并检查另一个线程上的启用状态,但这仍然是您真正应该避免的黑客攻击。

与其他UI应用程序交互的正确方法是使用UI Automation。特别是如果你打算做一些令人讨厌的事情,比如代表用户点击其中一个按钮。