我Delphi写的结束某一进程的程序,但结束该进程后,需要把鼠标移到它的托盘图标后图标才能消失。
  请问如何使它的托盘图标立即消失?
多谢!

解决方案 »

  1.   

    找到这个tryiconwnd,然后发送repaint消息,不知道可以否?
      

  2.   

    在结束进程之前,先找出该进程所有的窗口句柄,然后以这些窗口句柄为参数,用Shell_NotifyIcon(NIM_DELETE, ...)逐一尝试删除托盘图标。
      

  3.   

    请教这个Shell_NotifyIcon(NIM_DELETE, ...)函数的使用。多谢!
      

  4.   

    procedure uninstanllicon;
    var
      icondata:tnotifyicondata;
    begin
      icondata.cbSize:=sizeof(icondata);
      icondata.Wnd:=handle;
      icondata.uID:=icon_id;
      shell_notifyicon(nim_delete,@icondata);
    end;在FormDestroy执行uninstanllicon就可以了
      

  5.   

    似乎是Windows自身有些缺陷,虽然我在代码中已经删除了图标,还是会留在托盘里面。索性也就不管它好了,毕竟QQ之类都有这个问题。