//刷新任务栏图标 function RefreshTaskbarIcon: Integer; var hShellTrayWnd: HWND; //任务栏窗口 hTrayNotifyWnd: HWND; //任务栏右边托盘图标+时间区 hSysPager: HWND; //不同系统可能有可能没有这层 hToolbarWindow32: HWND; //托盘图标窗口 r: TRECT; width, height: integer; x: Integer; begin hShellTrayWnd := FindWindow('Shell_TrayWnd',nil); hTrayNotifyWnd := FindWindowEx(hShellTrayWnd,0,'TrayNotifyWnd',nil); hSysPager := FindWindowEx(hTrayNotifyWnd,0,'SysPager',nil); if (hSysPager <> 0) then hToolbarWindow32 := FindWindowEx(hSysPager,0,'ToolbarWindow32',nil) else hToolbarWindow32 := FindWindowEx(hTrayNotifyWnd,0,'ToolbarWindow32',nil); if (hToolbarWindow32 <> 0) then begin GetWindowRect(hToolbarWindow32,r); width := r.right - r.left; height := r.bottom - r.top; //从任务栏中间从左到右 MOUSEMOVE一遍,所有图标状态会被更新 for x := 1 to width-1 do SendMessage(hToolbarWindow32,WM_MOUSEMOVE,0,MAKELPARAM(x,trunc(height/2))); end; end; --------------------- { 作者:lovewjp 来源:CSDN 原文:https://blog.csdn.net/lovewjp/article/details/44986437 版权声明:本文为博主原创文章,转载请附上博文链接! }