修改托盘图标设置后如何立即生效?

happy_sea 2008-08-28 02:26:42
XP系统的托盘有个“隐藏不活动的图标”选项,我用regsnap看了一下,修改这个选项时对应注册表中HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer键下的EnableAutoTray值,但是用VB修改这个DWORD值后,是否隐藏不活动图标的效果并不会立即生效,而在设置“任务栏和开始菜单”中修改这个选项并点击应用按钮以后却会马上生效,看来需要向任务栏托盘发送消息来通知它作出响应,但是我试了SendMessage HWND_BRODCAST, WM_SETTINGCHANGE, 0&, 0&没有效果,用
hwnd = FindWindow("Shell_TrayWnd", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "TrayNotifyWnd", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "SysPager", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "ToolbarWindow32", vbNullString)
获取句柄后,SendMessage hwnd, WM_SETTINGCHANGE, 0&, 0&也不行,哪位朋友知道是怎么回事啊?
...全文
372 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy_sea 2008-09-19
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080903/12/19c59e71-385c-4f61-916d-0d5020d8ccbf.html
上面这个贴子是我发的,问题已经用其他方法解决了,我自己现在已经无法回复那个贴子了,大家去接分吧,别浪费了,先到先得哦!
happy_sea 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 Modest 的回复:]
把你代码贴上来,让大家帮你继续研究。
[/Quote]

代码主要就是我的问题中的那几句,修改注册表已经搞定了,只是如何才能达到立即反应修改结果的效果呢,老魏给看看吧。。。
happy_sea 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 suiyunonghen 的回复:]
NotifyIconData函数吧
[/Quote]

谢谢,NotifyIconData好像是一个结构而不是函数,而且也无法解决这个问题。
迈克揉索芙特 2008-09-17
  • 打赏
  • 举报
回复
把你代码贴上来,让大家帮你继续研究。
xiaoyungua 2008-09-15
  • 打赏
  • 举报
回复
加油加油,一定能成功,(*^__^*) 嘻嘻……
happy_sea 2008-09-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 youyouting 的回复:]
如果你还没有解决刷新的问题,可以试试,用程序将explorer.exe进程关闭后,又再启动一下,看托盘中图标是否能够刷新如你所愿。
[/Quote]

这样肯定行的,可是我不想用这个方法,因为把explorer.exe关闭再重新运行的这个过程中屏幕反应太大了。
happy_sea 2008-09-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 PctGL 的回复:]
试试用广播消息把你截取到的东西发过去
[/Quote]

我的思路也是这样的(见2楼),也许是我拦截的消息不对,也许是发送的目标不对,也许是发送消息的方法不对,总之是没有成功。
不得闲 2008-09-15
  • 打赏
  • 举报
回复
NotifyIconData函数吧
youyouting 2008-09-14
  • 打赏
  • 举报
回复
如果你还没有解决刷新的问题,可以试试,用程序将explorer.exe进程关闭后,又再启动一下,看托盘中图标是否能够刷新如你所愿。
PctGL 2008-09-06
  • 打赏
  • 举报
回复
试试用广播消息把你截取到的东西发过去
happy_sea 2008-08-29
  • 打赏
  • 举报
回复
看来是没有希望了,哪位版主看到这个帖子麻烦给删了吧。。。
happy_sea 2008-08-29
  • 打赏
  • 举报
回复
加100分 & 自己顶!
happy_sea 2008-08-28
  • 打赏
  • 举报
回复
我用spy++监控了一下,发现在系统中修改“隐藏不活动的图标”选项时,rundll32.exe进程发送了4条WM_SETTINGCHANGE消息,但是我用VB模拟这4条消息,同样的目标句柄,同样的消息和参数,却没有达到同样的效果,有点奇怪。
happy_sea 2008-08-28
  • 打赏
  • 举报
回复
自己顶!

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧