首页  编辑  

监控任务栏的改变

Tags: /超级猛料/OS.操作系统/任务栏/   Date Created:
怎么监视任务栏的改变
把下面的放倒你的窗体里面:
procedure wmsettingchange(var msg:TMessage);message wm_SETTINGCHANGE;
...
begin
 if msg.lParam=1244276 then
   showMessage('任务兰改变了!');
end;
////我先有了这个之后,其他的就不用我说了。
 
在很多情况下,资源管理器/桌面会出错然后重新出来桌面,如果你有一个托盘图标,重新创建桌面之后,你的托盘图标就会消失!如果要自动恢复托盘图标,可以利用任务栏创建消息来实现。
要获取任务栏创建的消息,可以这样:
var
 s_uTaskbarCreated = 0;
然后在程序创建的时候:
s_uTaskbarCreated = RegisterWindowMessage(L"TaskbarCreated");
最后,在主程序的消息循环过程当中,利用case处理s_uTaskbarCreated 消息即可,类似下面:
MainWindowProc(var Msg:TMessage);
begin
 ....
 case Msg.Message of
   WM_CREATE: ....
   WM_CLOSE: ....
 else
   if Msg.Message = uTaskbarCreated then
     ReloadYourTrayIconProcess()
   else
     DefWindowProc(hwnd, uMsg, wParam, lParam)
 end;
 ...
end;