高难:谁能把系统托盘中的图标给隐藏?系统时间不隐藏。(100分)

H

homejun

Unregistered / Unconfirmed
GUEST, unregistred user!
有这个必要吗??<br>控制面板不是有这个功能吗
 
安装WinXP:D[:D][:D][:D]
 
我也想知道 。
 
以前花大力气找这个方法,但没找到<br>只能摧毁托盘区窗口,时间还是留着<br>关注
 
to lsj:<br>》只能摧毁托盘区窗口,时间还是留着<br>你真厉害,我要的就是这样,能给我原码吗?<br>
 
homejun, 你到底为什么要这么做啊。<br>楼上的说,那个他也实现不了。你要代码也没有用啊。
 
如果把相应的程序退出肯定可以。<br>如果不想退出,可以把原来的图片换成空的,空间还留着,而且还是能响应的。
 
摧毁托盘区是很不合适的,你用spy++可以找到托盘图标窗口名称,然后再找到它的句柄就可以了.<br>正如816所说这样是没用的,因为不但别的应用程序的图标也一起消失而且还会留下一个空白区.<br>你找找托盘区的资料就可以看到,它也是个窗口,里面的图标也有自己的句柄,我们要找的是图标<br>的句柄,但由于程序不是我们自己写的,所以我实在想不到什么方法去找出这个句柄.<br>当时找了好久的MSDN都没找到适用的东西,98好象还有办法,NT/2000就想不到办法了,所以那位大<br>侠有办法还请指教.<br>这题确实是高难啊<br><br>
 
to lsj:<br>&gt;&gt;98好象还有办法<br>是什么办法,我研究了半天,也无法取得图标的句柄。
 
对呀,以前也研究过没实现<br>不过好象有软件可以实现,<br>专门管理托盘图标的<br>不知道怎么做<br>关注
 
easy,look:(w2k下通过,98没试,应该差不多)<br>加上CommCtrl单元<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; aWnd : Thandle;<br>begin<br>&nbsp; aWnd:=FindWindowEx( FindWindow('Shell_TrayWnd',nil),0,'TrayNotifyWnd',nil);<br>&nbsp; aWnd:=GetWindow(aWnd,GW_CHILD) ;<br>&nbsp; aWnd:=GetNextWindow(aWnd,GW_HWNDNEXT);<br>&nbsp; //showwindow(aWnd,SW_HIDE); 隐藏所有图标<br>&nbsp; showmessage(inttostr(SendMessage(aWnd, TB_BUTTONCOUNT, 0, 0))); //得到图标总数(包括分隔条)<br>&nbsp; sendmessage(aWnd,TB_HIDEBUTTON,2,1); &nbsp;//隐藏某个图标<br>end;<br>
 
to zleo:<br>&nbsp; &nbsp;这样无法得到具体某个程序图标.<br>&nbsp; &nbsp;比如说,我有个程序A在托盘区有个图标,我要隐去它,那么枚举图标是没用的,因为它的图标<br>在托盘区的位置是不确定的.<br>&nbsp; &nbsp;另外sendmessage(aWnd,TB_HIDEBUTTON,2,1); 这句怎么没效果啊? 我是用2K<br>&nbsp; &nbsp;showwindow(aWnd,SW_HIDE); 这句是隐藏了窗口<br>&nbsp; <br><br>to coolbaby:<br>&nbsp; &nbsp;有什么软件,说来听听,小弟孤陋寡闻还没见过^_^<br><br>&nbsp; &nbsp;
 
to lsj:<br>sorry,我一时也想不起来了<br>我查查看<br>查到告诉你
 
实际是个按钮,有toolbar的句柄就可以获得每个按钮的信息,比如文本、ID、<br>甚至图标,作比较就能找到你需要的了
 
找到了,是Toolbar Control Messages,在MSDN的shell common control部分<br>谢谢zleo ^_^
 
唉,有时问题能否得到解决取决于能否在MSDN中找到合用东西
 
to zleo:<br>在win98 se下无效
 
不能制定一个吗?
 
这是一个高难度的问题,期待问题的解决
 

Similar threads

D
回复
0
查看
741
DelphiTeacher的专栏
D
D
回复
0
查看
742
DelphiTeacher的专栏
D
D
回复
0
查看
749
DelphiTeacher的专栏
D
顶部