请问结束了某一进程后,如何使它的托盘图标立即消失?
我Delphi写的结束某一进程的程序,但结束该进程后,需要把鼠标移到它的托盘图标后图标才能消失。
请问如何使它的托盘图标立即消失?
多谢!
[解决办法]
找到这个tryiconwnd,然后发送repaint消息,不知道可以否?
[解决办法]
在结束进程之前,先找出该进程所有的窗口句柄,然后以这些窗口句柄为参数,用Shell_NotifyIcon(NIM_DELETE, ...)逐一尝试删除托盘图标。
[解决办法]
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就可以了
[解决办法]
似乎是Windows自身有些缺陷,虽然我在代码中已经删除了图标,还是会留在托盘里面。索性也就不管它好了,毕竟QQ之类都有这个问题。