高手请进:如何删除托盘图标

liugy 2004-12-16 10:31:49
在使用popo2004时,我可以用枚举窗口的方法取得主窗口句柄
并将主窗口隐藏

但如何将它的托盘图标删除掉?

...全文
1039 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
liugy 2004-12-27
  • 打赏
  • 举报
回复
在xp下不能获取toolbarwindow32类!
在2000下没问题。
liugy 2004-12-27
  • 打赏
  • 举报
回复
感谢fbmsf(FBM) 提供的asm代码,已经成功改成vc代码

下载代码参考:
http://www.vrforum.cn/attachment.php?aid=2356
fbmsf 2004-12-22
  • 打赏
  • 举报
回复
楼主留下email
luolovegui 2004-12-22
  • 打赏
  • 举报
回复
Shell_NotifyIcon(NIM_DELETE, &tt);
fbmsf 2004-12-22
  • 打赏
  • 举报
回复
已经发了请查收。
liugy 2004-12-22
  • 打赏
  • 举报
回复
liugy@mail.716.com.cn
tyzyx 2004-12-21
  • 打赏
  • 举报
回复
如果谁能模仿出来,请把源代码贴出。
tyzyx 2004-12-21
  • 打赏
  • 举报
回复
大家看看SysTrayX是如何做的吧。
ayanamiwww 2004-12-21
  • 打赏
  • 举报
回复
mark,回头看
fbmsf 2004-12-21
  • 打赏
  • 举报
回复
在2k 下面我试了一下。
可以找到Toolbar的hwnd,然后
invoke FindWindow,addr classname,addr caption
invoke FindWindowEx,eax,0,CTEXT("TrayNotifyWnd"),addr caption
invoke FindWindowEx,eax,0,CTEXT("ToolbarWindow32"),addr caption
mov hWnd,eax
invoke SendMessage,hWnd,TB_SETCMDID,5,1006
invoke SendMessage,hWnd,TB_HIDEBUTTON,1006,TRUE

这个5就是表示是位置,如果你知道位置那么可以用这个方法。1006这个数随便什么都可以只要两个数字都一样就可以了。

另外的方法就是:用注入线程的方法,到他的进程中去del,但是如果你不知道id 是比较麻烦的事情。
fbmsf 2004-12-20
  • 打赏
  • 举报
回复
我要试试
liugy 2004-12-20
  • 打赏
  • 举报
回复
隐藏也可以呀。
没有人会了么?
liugy 2004-12-17
  • 打赏
  • 举报
回复
很遗憾,我用sysTrayX得到了Popo2004的Tray ID 还是无法删除她在托盘中的图标
她好像不响应NIM_DELETE似的。
angelcool 2004-12-17
  • 打赏
  • 举报
回复
GZ
liugy 2004-12-17
  • 打赏
  • 举报
回复
你们看看systrayx 工具, 他是如何获取的呢?
Wenxy1 2004-12-17
  • 打赏
  • 举报
回复
关注
hyamw 2004-12-17
  • 打赏
  • 举报
回复
也可以发送其他的消息,来获取一些相关的其它信息,我就没有测试了。
hyamw 2004-12-17
  • 打赏
  • 举报
回复
http://search.csdn.net/Expert/topic/1044/1044397.xml?temp=.1390039
看看这个帖子,能不能有启发?
托盘区是toolbar类型窗口,给它发送TB_DELETEBUTTON消息,删除指定序号的托盘图标,我测试了一下,可以删除图标,不过前提是,你需要知道你要删除的图标的序号
hyamw 2004-12-16
  • 打赏
  • 举报
回复
关注!!
以前也碰到过类似的问题,没找到解决办法,后来不了了之了。
xp下面的托盘区可以用spy++获取。但是不知道发送什么消息能删除更改里面的图标。我用spy++捕获删除和添加图标的消息的时候,收到一大堆,直接就晕了 ^_^
老夏Max 2004-12-16
  • 打赏
  • 举报
回复
估计很难很难,我以前做过一个类似的想枚举所有窗口的程序,但是无法枚举到在托盘区最小化的程序,当时我也想过通过什么手段获得托盘区,然后获得托盘区的相关程序的信息或者窗口等等,但是一直没有找到方法获得托盘区。还好那个托盘程序是我写的,我给它添加了一个全局的自定义消息,后来通过这个自定义的全局消息完成了我的功能,就是防止运行两个实例,第二个实例运行的时候,激活第一个实例,但是托盘区的程序,无法使用FindWindow找到,所以只有使用全局自定义消息了!
加载更多回复(14)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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