如何把托盘区的以有的图标删除

asper 2000-09-01 11:42:00
比如说删除金山词霸的图标
...全文
457 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
skt642 2001-05-31
18974关注!
  • 打赏
  • 举报
回复
hswqs 2001-04-15
happylaodu(青菜豆腐)说的是对的“TrayNotifyWnd下面只有一个时钟窗口,再无其它。”
我花了很长的时间也没有搞定,还请高手指教。
  • 打赏
  • 举报
回复
sxbyl 2000-10-29
我倒是知道一个方法,是我编程过程中的一个副产品。
你打开Spy++看看,会发现一个Shell_TrayWnd类,这就是桌面任务栏的类,展开它,会看到一个TrayNotifyWnd类,这就是托盘区+时钟区的窗口类,展开后,又看到一个ToobarWindow32窗口类。现在知道该怎么办了吧?先用FindWindow找到任务栏窗口的句柄,然后用FindWindowEx找到托盘区+时钟区窗口句柄,再用一次FindWindowEx找到托盘区窗口句柄,将该句柄Attach到一个CToolBarCtrl类,然后你就可以……
用此法可以删掉大部分图标,不过好像有些图标删不掉,像金山词霸和SQL Server Service Manage,但当时由于不是为此目的,因此没有深究,你可以再试试,不过小心IE执行非法操作。
  • 打赏
  • 举报
回复
happylaodu 2000-10-25
我用EnumSubWindows试了一下,TrayNotifyWnd下面只有一个时钟窗口,再无其它,而且
TrayNotifyWnd本身也不应是ToolBar:我把它当作ToolBar,让它返回按钮数,竟有几万个。
  • 打赏
  • 举报
回复
happylaodu 2000-10-24
如何遍历里面的图标呢?
  • 打赏
  • 举报
回复
longx 2000-10-23
托盘区的窗口可按如下步骤找到窗口句柄。
Shell_TrayWnd->TrayNotifyWnd->ToolbarWindow32
找到之后最简单的办法就是隐藏该窗口,这样所有的图标
都看不见了,另外,该窗口实际是一个Toolbar,所以你
可以用Toolbar的方法来控制里面的每一个Item.
  • 打赏
  • 举报
回复
BugKiller 2000-10-23
请用Shell_NotifyIcon()函数来控制。
先遍历托盘区的图标,
然后将调用Shell_NotifyIcon( NIM_DELETE , pnid)删除。
pnid包含了托盘区图程序的信息。

===============================================

<a href="http://www.ChinaITHero.com">小辉程序员之路 http://www.ChinaITHero.com</a>

一个程序员的真实情感
一个程序员的风雨经历
一个程序员的编程经验
……

===============================================
  • 打赏
  • 举报
回复
happylaodu 2000-10-23
关注!

本人也正为这个问题困惑:如何例举出托盘中的图标?

我用FindWindow和EnumSubwindows已能找到托盘窗口指针,但不知道如何得到它里面的图标。
  • 打赏
  • 举报
回复
happylaodu 2000-10-23
关注!

本人也正为这个问题困惑:如何例举出托盘中的图标?

我用FindWindow和EnumSubwindows已能找到托盘窗口指针,但不知道如何得到它里面的图标。
  • 打赏
  • 举报
回复
asper 2000-09-02
我的意思是让运行中的程序比如说是金山词霸的图标消失
  • 打赏
  • 举报
回复
Holly 2000-09-02
如果你不想关掉程序但又要去掉图标,可能你需要用HOOK的方法,检测有关托盘的消息,同时可能还要挂接Shell_NotifyIcon(...)函数!
  • 打赏
  • 举报
回复
luxes 2000-09-02
用FindWindow来找嘛,只要在任务列表中有的,就能找到。
  • 打赏
  • 举报
回复
killjapan05 2000-09-01
观注
  • 打赏
  • 举报
回复
托盘区的图标都是正在运行的程序,正在运行的程序可以在托盘区显示一个或几个图标,不再运行的程序是不能在托盘区中显示的。当然你也可以编一个程序让你的程序在运行时在托盘显示一个图标

我知道有3个地方包含的文件是要在 Windows 启动时自动运行的

(1) 看看开始菜单->程序->启动 里是否有这些程序,这个文件夹的程序启动Windows时就运行了
只要从开始菜单的启动里删掉就可以了

(2) 启动 Windows 时还要运行注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
里面所包含的程序文件,在注册表里删除你不想要运行的文件就可以了

(3) 启动 Windows 时还要运行这里的文件:
配置文件 C:\WINDOWS\WIN.INI 里面 [windows] 下的
load=
run=
的程序文件,在 WIN.INI 里删除你不想运行的文件名就可以了
  • 打赏
  • 举报
回复
发帖
VC/MFC
加入

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
申请成为版主
帖子事件
创建了帖子
2000-09-01 11:42
社区公告

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