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

  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. if (hToolbarWindow32 <> 0) then
  20. begin
  21. GetWindowRect(hToolbarWindow32,r);
  22. width := r.right - r.left;
  23. height := r.bottom - r.top;
  24. //从任务栏中间从左到右 MOUSEMOVE一遍,所有图标状态会被更新
  25. for x := 1 to width-1 do
  26. SendMessage(hToolbarWindow32,WM_MOUSEMOVE,0,MAKELPARAM(x,trunc(height/2)));
  27. end;
  28. end;
时间: 2024-10-29 19:08:50

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

关于点击程序的任务栏图标无法最小化程序界面的问题

一般情况下,点击程序任务栏的图标,程序会响应WM_SYSCOMMAND消息,然后再OnSysCommand()消息函数里面截取 (nID & 0xFFF0) == SC_MINIMIZE这个消息. 然后 ShowWindow(SW_HIDE); //隐藏当前窗口 Shell_NotifyIcon(NIM_ADD,&m_NotifyData); //注册任务栏信息 就可以把窗口最小化. 但是,不知道为什么我的程序无法响应OnSysCommand消息,在网上查询了下 在InitDialog中加

windows开始菜单和任务栏图标显示空白并且点击时候显示项目已被移动或删除

这几天实验室老经常自动断电,这是很蛋疼的一件事,这不上次断电就出事了.来电后开机,点击任务栏上的程序全都显示为无法打开此项目,该项目已被移动.删除.原因是图标缓存丢失,可能是突然断电引起的,也有可能是用网上下载的清理垃圾的bat文件引起的. 解决方法: 1. step1:开机按F8启动到安全模式. step2:打开windows vista所在的盘符,使用搜索找到iconcache.db这个文件,将其删除. step3:重启到正常模式,桌面图标就恢复正常啦! 如果搜索没有找到缓存文件iconca

FireMonkey隐藏任务栏图标

FMX(FireMonkey)可以轻松实现很多VCL无法或难以实现的特效,所以将FMX程序作为界面,打包入DLL由VCL程序调用,是一个不错的方案.为了程序的完整性,你不想看见FMX程序在任务栏上显示图标.可是普通的Windows函数似乎没有作用,比如你取得FMX窗体的句柄后,使用ShowWindow函数隐藏任务栏图标,结果是毫无作用.其实原因很简单,只是你使用的句柄不正确而已. 正确的源代码我贴出来,具体我就不解释了,相信有基础的人都能看懂. unit Unit1; interface use

Qt 单击任务栏图标实现最小化

Qt中对于窗口边框的设置一般用到setWindowFlags函数. void setWindowFlags(Qt::WindowFlags type) 如果只setWindowFlags(Qt::FramelessWindowHint); 去掉边框,此时会发现,当程序打开后,单击任务栏的按钮,会发现无法最小化,隐藏窗口. 解决的方法是: setWindowFlags(Qt::Window|Qt::FramelessWindowHint |Qt::WindowSystemMenuHint|Qt::

windows 任务栏图标宽度固定

这个需要修改注册表. win+r regedit ->enter 找到以下项 HKEY_CURRENT_USER-Control Panel-Desktop-WindowsMetrics 新建字符键值.. MinWidth 54 MaxWidth 55 注销重新登录.. 效果如图. windows 任务栏图标宽度固定,码迷,mamicode.com

C#实现无标题栏窗体点击任务栏图标正常最小化或还原的解决方法

对于无标题栏窗体,也就是FormBorderStyle等于System.Windows.Forms.FormBorderStyle.None的窗体,点击任务栏图标的时候,是不能象标准窗体那样最小化或还原的.把下面的代码加到你的Form实现类中,即可实现点击任务栏图标正常最小化或还原窗体. [c-sharp] view plain copy protected override CreateParams CreateParams { get { const int WS_MINIMIZEBOX =

win7中如何隐藏pcanywhere任务栏图标

pcanywhere是一款远程协助软件,在大型企业网络中得到广泛应用,但有些用户看到任务栏的pcanywhere等待图标,,就会右击此图标"取消主机"造成网络管理员远程连接不到主机,所以如果可以把pcanywhere任务栏图标隐藏掉了,那么用户就不能在图标上点"取消主机"造成连接不到主机的情况了.在网上查找的都是针对XP系统的修改注册表的步骤,后来终于发现原来win7-64位中安装了32位的pcanywhere在注册中的修改的位置: 原xp编辑注册表(regedit

Win10如何隐藏Windows Defender任务栏图标

Windows 10 至发布以来就内置集成了 Windows Defender 安全防护应用,但有许多用户平常压根儿就没注意到它的存在.微软为了使安全防护功能更加明显,Windows 10 周年更新中将 Windows Defender 图标列到了任务栏通知区域,以方便用户使用. 禁用任务栏图标并不会影响到 Windows Defender 的正常工作,它仍会在后台对系统进行安全防护,你可以正常通过「设置」-「更新和安全」-「Windows Defender」或在「开始」菜单中搜索 Window

WPF 任务栏图标闪烁提醒

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Runtime.InteropServices; 5 using System.Text; 6 using System.Windows; 7 using System.Windows.Interop; 8 9 10 public static class FlashWindow 11 { 12 [DllImport("u