现在有一程序,运行后后缩到托盘处。怎么去掉这个图标?当然那个程序还要运行。谢谢!

解决方案 »

  1.   

    在XP下,放托盘图标的控件类名为"ToolbarWindow32"控件标题为"通知区域",实际上就是个工具标了,你可以找到这个控件的句柄,然后用标准的SDK方式修改其上面的按钮(也就是显示的图标),具体方法请参考WIN32SDK手册.
      

  2.   

    无论相信与否,创建、修改和移走托盘图标只需要一个A P I调用即可完成。这个函数叫做shell_NotifyIcon()。这个函数和其他处理Wi n d o w s外壳的函数都包含在S h e l l A P I单元中。
    呵呵《D5开发人员指南〉里第24章有详细介绍,我就不摘抄了
      

  3.   

    楼上的办法只能删除自己程序做的托盘,但楼主的意思是删其它进程的托盘吧.
    反正睡不着,偶把代码写出来.
    要引用Commctrl单元.
    procedure TForm1.Button1Click(Sender: TObject);
    var
      PanelHandle, ToolBarHandle: THandle;
    begin
      PanelHandle := FindWindow('Shell_TrayWnd', nil);
      PanelHandle := FindWindowEx(PanelHandle, 0, 'TrayNotifyWnd', nil);
      Panelhandle := FindWindowEx(PanelHandle, 0, 'SysPager', nil);
      ToolBarHandle := FindWindowEX(PanelHandle, 0, 'ToolbarWindow32', '通知区域');
      SendMessage(ToolBarHandle, TB_DELETEBUTTON, 1, 0);
    end;
    上面只是随便删的一个.
      

  4.   

    你是什么系统?其它系统的话可能找TOOLBARWINDOWS32的方法会有点不一样.
      

  5.   

    pankun(剑神一笑) 的方法已经不错,不同的系统可能有所不同,用spy++看一下你需要获得的句柄