我不想强迫它显示,我只是想让它检查它是否被Windows隐藏。
默认情况下,Windows会隐藏系统图标以外的托盘(操作中心,电池,网络,声音,日期和时间)。
答案 0 :(得分:2)
我使用函数 Shell_NotifyIconGetRect,并获取返回值来检查 NotifyIcon 是否隐藏。
当 NotifyIcon
未隐藏时(在可见的 Tray 部分),函数将返回零。当 NotifyIcon
隐藏时,函数将返回 0x00000001,即 Incorrect function
。这真的是hack,我不知道为什么。这是一个例子:
bool isIconHidden = false;
int hresult = Shell_NotifyIconGetRect(ref nid, out rect);
if (hresult == 0)
{
isIconHidden = false;
}
else if (hresult == 0x00000001)
{
isIconHidden = true;
}
else
throw new Win32Exception(hresult);
有关 Shell_NotifyIconGetRect 函数使用的更多详细信息,请参阅 Notify Icon Position 和 Determining location of tray icon。 但我不确定该解决方案是否适用于所有 Windows 平台。我的操作系统是Win10 家庭。希望它对你有用。
答案 1 :(得分:1)
你仍然可以尝试间接发现。您可以take a snapshot of the desktop位图,找到任务栏(我认为在Windows 7中它不能从底部移动,我不确定)并查找您的图标。如果你找到它 - 就在那里。