【发布时间】:2015-07-07 16:58:02
【问题描述】:
“休眠”应用程序可以通过七种方式变为“活动”应用程序,具体取决于它是最小化还是简单地隐藏,以及是否通过 alt-tab、鼠标重新激活 -单击它的图标,通过从另一个程序发送 Windows 消息重新激活它,或者当隐藏它的应用程序关闭(或最小化)时被简单地“发现”为桌面上最顶层的应用程序。
在所有情况下,我都需要知道我的应用程序现在是活动的(例如桌面上最顶部的)应用程序,以便我可以从数据库中刷新它的数据。
我确实知道应用程序“知道”它们何时位于最顶部,因为我可以看到边框在它们成为最顶部时立即变为活动颜色。
如果我捕获 WM_ACTIVATE_APP 消息,这在大多数情况下都有效,但在我的应用最小化并恢复到活动状态时似乎不起作用。
在用户执行任何操作之前,我需要被告知我的应用现在处于最顶层且处于活动状态。
有什么建议吗?谢谢,戴夫
【问题讨论】:
-
如果一个非活动的应用程序被简单地发现并且没有因此变得活动,它的边界不会改变。我想您正在询问如何特别检测这种情况(因为如果应用程序确实变得活跃,您将获得 WM_ACTIVATE_APP)。我认为这与应用程序是否是最顶级的无关。也许您应该更新您的问题以澄清这一点。