【发布时间】:2010-03-18 07:49:56
【问题描述】:
我需要知道用户是否隐藏了我的程序添加到系统托盘区域的图标。 技术上可行吗?
更新 我的程序 - yowindow 在系统托盘图标中显示当前温度。 我想通过不为没有看到托盘图标的用户自动更新天气来减轻服务器负载。
【问题讨论】:
标签: winapi system-tray
我需要知道用户是否隐藏了我的程序添加到系统托盘区域的图标。 技术上可行吗?
更新 我的程序 - yowindow 在系统托盘图标中显示当前温度。 我想通过不为没有看到托盘图标的用户自动更新天气来减轻服务器负载。
【问题讨论】:
标签: winapi system-tray
没有。
即使你有这些信息,你会怎么做?
(警告 - 我想你可以做一个屏幕抓取,找出任务栏的位置,找出系统托盘的位置,“解析”出每个图标,然后将每个图标与你自己的图标进行位图比较。但真的。 ..)
看看这个related question可能会值得你
基于第一次编辑问题
我明白你的意思。但是从 windows API 设计器的 POV 来看。它们为以“始终可见”的方式创建图标提供了便利。并且每个人+狗都在其中放了一个图标,假设用户总是想了解他们的产品(请注意,我并不是说你在这个在这里分组)。
他们已经注意到了这种失控的行为,虽然他们现在不能取消创建这些图标的能力,但他们希望给予用户控制权。
现在我们来解决问题。想象一下,你是一个不够开明的开发人员。如果您检测到您的图标已被隐藏,则会弹出一条消息,提示用户取消隐藏您的图标。也许您每次登录都会这样做一次。也许你每半小时做一次。这只是一般级别的用户烦恼,类似于托盘中出现 40 个图标,而用户并不关心其中的大部分
问题是 - 如果您设计的 API 允许开发人员发现他们的图标是否实际上是隐藏的。您如何允许您的良性使用,同时防止上一段中的行为?花几分钟假装自己是 Windows API 设计者,并尝试编写必要的函数(为了争论,假设烦人的开发人员不愿意实现 IAmEvil 接口或其他任何东西,或者会愿意实现 IOnlyDoGood 接口...)
希望您的图标很有用,用户将 a) 显示您的图标,或 b) 删除您的应用程序(如果它没有按照他们的意愿/需要)
【讨论】:
据我所知,没有 API 函数可以解决这个问题,也没有很好的解决方案。您可以在安装后直接从托盘显示一条消息,告诉用户该图标可能已隐藏。并不是说它会有所帮助,但这是你能做的。我见过一些程序通过定期显示该消息来欺骗用户,但这确实不是一件好事。
【讨论】: