Winapi Windows API:是否可能知道用户是否隐藏了系统托盘中的图标?

Winapi Windows API:是否可能知道用户是否隐藏了系统托盘中的图标?,winapi,system-tray,Winapi,System Tray,我需要知道用户是否隐藏了我的程序添加到系统托盘区域的图标。 技术上可行吗 更新 我的程序-在系统托盘图标中显示当前温度。 我不想为看不到托盘图标的用户自动更新天气,以节省服务器负载。否 即使你有这些信息,你会怎么处理 (警告-我想你可以抓取屏幕,找出任务栏的位置,找出系统托盘的位置,“解析”出每个图标,然后将每个图标与自己的图标进行位图比较。但实际上…) 也许值得你看看这个 基于对问题的第一次编辑 我明白你的意思。但是从WindowsAPI设计师的视角来看。它们提供了一种以“始终可见”的方式创建

我需要知道用户是否隐藏了我的程序添加到系统托盘区域的图标。 技术上可行吗

更新 我的程序-在系统托盘图标中显示当前温度。 我不想为看不到托盘图标的用户自动更新天气,以节省服务器负载。

即使你有这些信息,你会怎么处理

(警告-我想你可以抓取屏幕,找出任务栏的位置,找出系统托盘的位置,“解析”出每个图标,然后将每个图标与自己的图标进行位图比较。但实际上…)

也许值得你看看这个

基于对问题的第一次编辑

我明白你的意思。但是从WindowsAPI设计师的视角来看。它们提供了一种以“始终可见”的方式创建图标的工具。每个人+狗都会在里面放一个图标,假设用户总是想知道他们的产品(请注意,我并不是说你在这里)

他们已经注意到这种失控的行为,虽然他们现在不能剥夺创建这些图标的能力,但他们希望让用户控制

现在我们来讨论这个问题。想象一下,你是一个不够开明的开发者。如果你检测到你的图标被隐藏,你会弹出一条消息,提示用户取消隐藏你的图标。也许你每次登录都会这样做一次。也许你每半小时做一次。这只是用户烦恼的一般程度,类似于当用户不关心其中的大多数图标时,托盘中会出现40个图标

问题是——如果您设计的API允许开发人员发现他们的图标实际上是否隐藏。您如何允许您的良性使用,同时防止上一段中的行为?花几分钟的时间假装成一个windows API设计器,并尝试编写必要的函数(为了便于讨论,假设恼人的开发人员不愿意实现IAMMevil接口或其他什么,或者愿意实现IOnlyDoGood接口…)

希望你的图标是有用的,用户可以a)显示你的图标,或者b)删除你的应用程序(如果它不是他们想要/需要的)

即使你有这些信息,你会怎么处理

(警告-我想你可以抓取屏幕,找出任务栏的位置,找出系统托盘的位置,“解析”出每个图标,然后将每个图标与自己的图标进行位图比较。但实际上…)

也许值得你看看这个

基于对问题的第一次编辑

我明白你的意思。但是从WindowsAPI设计师的视角来看。它们提供了一种以“始终可见”的方式创建图标的工具。每个人+狗都会在里面放一个图标,假设用户总是想知道他们的产品(请注意,我并不是说你在这里)

他们已经注意到这种失控的行为,虽然他们现在不能剥夺创建这些图标的能力,但他们希望让用户控制

现在我们来讨论这个问题。想象一下,你是一个不够开明的开发者。如果你检测到你的图标被隐藏,你会弹出一条消息,提示用户取消隐藏你的图标。也许你每次登录都会这样做一次。也许你每半小时做一次。这只是用户烦恼的一般程度,类似于当用户不关心其中的大多数图标时,托盘中会出现40个图标

问题是——如果您设计的API允许开发人员发现他们的图标实际上是否隐藏。您如何允许您的良性使用,同时防止上一段中的行为?花几分钟的时间假装成一个windows API设计器,并尝试编写必要的函数(为了便于讨论,假设恼人的开发人员不愿意实现IAMMevil接口或其他什么,或者愿意实现IOnlyDoGood接口…)


希望你的图标是有用的,用户可以a)显示你的图标,或者b)删除你的应用程序(如果它没有做他们想要/需要的事情)

据我所知,没有API函数,也没有很好的解决方案。您可以在安装后直接从托盘中显示一条消息,告诉用户图标可能被隐藏。并不是说这会有帮助,但这是你所能做的。我见过一些程序会定期向用户显示该消息,从而给用户带来麻烦,但这确实不是一件好事。

据我所知,没有API函数来解决这个问题,也没有很好的解决方案。您可以在安装后直接从托盘中显示一条消息,告诉用户图标可能被隐藏。并不是说这会有帮助,但这是你所能做的。我见过一些程序通过周期性地显示该消息来给用户带来麻烦,但这确实不是一件好事。

解释得很好。我同意你的看法,只要Windows让开发者控制图标的可见性,他们就会开始要求用户重新显示图标。谢谢你,达米恩!把你的回答记下来,解释得很好。我同意你的看法,只要Windows让开发者控制图标的可见性,他们就会开始要求用户重新显示图标。谢谢你,达米恩!把你的回答记为答案。