【发布时间】:2020-10-01 14:57:49
【问题描述】:
我的软件有一个通知图标。默认情况下,Windows 会隐藏非活动图标。当用户关闭我的应用程序时,我想通知他们,该应用程序在后台仍然处于活动状态,他们可以通过隐藏通知区域中的图标访问它。
如果图标确实不可见,我想仅显示此消息。
使用Shell_NotifyIconGetRect并没有多大帮助,因为即使图标被隐藏,它仍然成功并返回箭头图标的坐标。
有没有其他方法可以确定我的通知图标当前是否可见? 或者,有没有办法找出箭头图标的坐标——然后我可以将它们与我寻找图标的坐标进行比较。或者至少有一种方法可以确定是否显示了箭头图标(这将有助于我使用后备解决方案)。
【问题讨论】:
-
不要尝试这样做。与系统合作,而不是反对它。
-
虽然它可能不是您想要的,但您可以使用 UI 自动化确定箭头是否存在。相应的自动化元素称为“Notification Chevron”。这里有一个关于如何做这种事情的示例:devblogs.microsoft.com/oldnewthing/20141013-00/?p=43863
-
David,我只是想创建一个用户友好的应用程序。只要 MS 没有为此用例提供适当的官方解决方案,我就没有更好的方法。不知道,什么困扰你。 @Simon Mourier 谢谢,这可能会帮助我找到一个备用解决方案。
-
我想使用这个条件来不打扰手动将图标移动到可见区域的用户以及所有图标都可见(通过任务栏属性或组策略)的用户。如果启用了自动隐藏(默认),该图标将在应用程序使用期间几秒钟后消失。
-
用户有这么多不同类型,恐怕你的一般假设几乎没有触及现实。我见过用户用手指点击屏幕,因为他们忘记了他们的设备没有触摸屏。所以,是的,就是这样。即使作为一个更有经验的用户,我也希望在新应用程序最小化为通知图标时收到通知。您可能会有不同的看法,但最后我只是寻求帮助,为我希望在我的软件中具有的功能找到解决方案。
标签: windows winapi taskbar notification-area