刷新右下角托盘,清除无效图标
最近有一个需求,程序崩溃(非正常退出)的时候,右下角通知栏区域会有残留的图标,为了获得更好的体验希望能在通知栏不会有很多的图标残留。
关于托盘(tray)和通知栏(notifyicon)
查了很多资料大都是关于刷新托盘(tray)的,但是我的icon是放在隐藏通知栏区域的也就是那个向上的小箭头,点开才能看到,托盘区域,个人感觉偏向于指的是最下面任务栏你能看到的部分,(隐藏)通知栏区域指的是点开那个向上的箭头(通常位于网络旁边)看到的部分。这儿推荐一个vs自带的窗口查看工具spy++,安装过vs的应该都会有的,可以看到不同的窗体(右键,高亮,就可以看到当前窗体具体指的哪个)。
刷新通知栏区域
关于刷新托盘区域,网上已经有很多资源了就不赘述了,刷新通知栏区域也是类似的方法
首先通过FindWindow和FindWindowex 两个API获取窗口句柄,然后模拟鼠标在窗口上面划过(代码仿照刷新托盘即可),然后就可以实现刷通知栏的功能了。(需要代码的留言即可)
存在的问题
有时候通知栏区域的图标会自动跑到下面(托盘)来,点开向上的箭头就会自己进去,这种情况下是刷新不了的,如果有好的建议,烦请告知。
第一次发csdn,还望各位大佬多包涵。