//刷新任务栏图标 终止别的进程序有些程序有托盘会残留

本文介绍了一种使用Delphi编程语言刷新Windows任务栏图标的方法。通过调用Windows API函数,如FindWindow、FindWindowEx、GetWindowRect、SendMessage等,找到并更新任务栏上指定的图标。该方法适用于需要在软件中动态刷新任务栏图标的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. //刷新任务栏图标  
  2. function RefreshTaskbarIcon: Integer;  
  3. var  
  4.   hShellTrayWnd: HWND;   //任务栏窗口  
  5.   hTrayNotifyWnd: HWND;  //任务栏右边托盘图标+时间区  
  6.   hSysPager: HWND;     //不同系统可能有可能没有这层  
  7.   hToolbarWindow32: HWND;  //托盘图标窗口    
  8.   r: TRECT;  
  9.   width, height: integer;  
  10.   x: Integer;  
  11. begin  
  12.   hShellTrayWnd  := FindWindow('Shell_TrayWnd',nil);  
  13.   hTrayNotifyWnd := FindWindowEx(hShellTrayWnd,0,'TrayNotifyWnd',nil);  
  14.   hSysPager := FindWindowEx(hTrayNotifyWnd,0,'SysPager',nil);   
  15.   if (hSysPager <> 0) then  
  16.         hToolbarWindow32 := FindWindowEx(hSysPager,0,'ToolbarWindow32',nil)  
  17.   else  
  18.     hToolbarWindow32 := FindWindowEx(hTrayNotifyWnd,0,'ToolbarWindow32',nil);  
  19.   
  20.   if (hToolbarWindow32 <> 0) then  
  21.   begin  
  22.     GetWindowRect(hToolbarWindow32,r);  
  23.     width := r.right - r.left;  
  24.     height := r.bottom - r.top;  
  25.     //从任务栏中间从左到右 MOUSEMOVE一遍,所有图标状态会被更新    
  26.     for x := to width-do  
  27.       SendMessage(hToolbarWindow32,WM_MOUSEMOVE,0,MAKELPARAM(x,trunc(height/2)));  
  28.   end;  
  29. end;  

转载于:https://www.cnblogs.com/upshania/p/6662293.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值