如何判断我的icon是否还在system tray中?(100分)

  • 主题发起人 主题发起人 网痞
  • 开始时间 开始时间

网痞

Unregistered / Unconfirmed
GUEST, unregistred user!
有时候系统出问题,托盘中全没了,如何能知道呢?
 
呵呵,这个有点意思,关注。
 
我觉得应该还在,只是看不见而已,
不知怎么回事,声音那个图标老在。
 
SuperMMX:
有时候声音控制也没了……
BTW:http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=214162
刚才我解决了,你去看看……
 
wjiachun,你说明白点,我在你的url没找到什么啊
反正我感觉这问题是“难者不会,会者不难”呵呵
大家继续努力啊~~

本来以为没办法,后来发现getright的所有东东
在被干掉后,自己会蹦出来,故此问一下大家
如果有知道的千万要告诉我哦
 
至MMX :)

进程当然在,但放再tray中的东东一般是要用mouse去控制的,
如果看不见了,就无法控制啦,所以得想办法继续放一个icon进去。
 
to 网痞:
sorry!我是对SupperMMX说的……
 
>>后来发现getright的所有东东在被干掉后,自己会蹦出来

我估计是这么回事: 因为getright的每个下载的systemtray恢复
窗口的时候会自动删除systemtray,当他缩小的时候再添加上去,
所以即使trayicon被搞没了,当他缩小的时候也会自动出来的.

不过我对这个问题很感兴趣
 
我也很感兴趣。那个tray的容器可以刷新吗?刷新的话,会不会出来啊。
东西应该都在的吧。
 
该图标是由shell管理的,当shell(explorer)出问题时被关闭,
当然也没办法通知各个有托盘图标的程序,当shell自动被重启动后
shell也不知道刚才有哪些托盘图标。
我想,自己的程序可以检测系统中explorer的退出和启动,
确认自己的图标确实已经不在上面的方法是用
Shell_NotifyIcon(NIM_MODIFY,...)
NOTIFYICONDATA只需要填写:
uFlags=0(实际上表示不提供任何新数据),cbsize,hWnd,uId(标识自己的图标)
返回true,说明还在,返回false,说明图标已经不在了
 
其实explorer退出后、再启动,上一辈子的trayicon的数据
新一代已经不知道了。

为什么有一些图标好象又出来了?,因为
放在“启动”菜单、注册表的 Run 下面的程序,每次shell启动时都要运行它,
即使时中途出错关闭被系统又重新运行一次,刚运行的shell也会把哪些autorun的
东西再运行一次
 
Pipi吃肉,大家喝汤,呵呵
其实没次的Shell_NotifyIcon...都有返回,如果false,就ADD一个。
我试了,很灵的 ^_^
 
还有点尾巴问题,何时判断为好呢?
难道要用个timer??
 
用 timer 也行,不過太浪費了,
不妨使用該程式的必備程序,
如剪貼簿可設置成有要剪貼時....
 
后退
顶部