C#如何获取通知区域图标(托盘图标)上的文本信息

8
我正在为了学习目的编写“你正在听什么”插件,该插件会将当前Spotify或Winamp歌曲作为消息显示在即时通讯客户端中。
到目前为止,它非常简单,我只是从标题中获取播放的歌曲。
Process.GetProcessesByName("spotify");

然后只需挑选出歌曲部分("Spotify - <歌曲标题>")即可。

proc.MainWindowTitle.Substring(10);

然而,大多数人不会将主窗口保持打开或最小化到任务栏,而是仅将其显示为托盘图标。我想获取那里的文本(悬停在其上方时显示的文本)。
有没有简单的方法可以做到这一点?
谢谢
1个回答

4

设置图标的提示文本需要使用带有NIM_UPDATE消息的Shell_NotifyIcon()函数,设置NOTIFYICONDATA.szTip成员。

问题在于,如果你不拥有托盘图标,就无法找到所需使用的hWnd和uID值。Windows不支持枚举托盘图标,这也防止了获取提示文本。


实际上你可以枚举它们:http://www.codeproject.com/KB/applications/ShellTrayInfo.aspx - Giorgi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接