Demo程序:

实现任务栏窗体和图标的闪动:

整个程序是基于Windows Forms的,对于任务栏右下角状态图标的闪动,创建了一个类型:NotifyIconAnimator,基本上是包装了Windows Forms中的NotifyIcon类型,然后内部有个Timer,不断循环设置NotifyIcon的Icon属性从而实现图标的闪烁。使用起来很简单,开始动画方法:

//开始闪烁,icons是图标列表,interval是Timer间隔,loopCount是闪烁次数,-1代表永远循环 publicvoid StartAnimation(Icon[] icons, int interval, int loopCount)

停止动画方法是StopAnimation,直接调用就好。

NotifyIconAnimator的构造函数需要NotifyIcon对象,同时在StartAnimation调用后,当前NotifyIcon的图标会被缓存,当StopAnimation被调用后,缓存的图标会重新还原到NotifyIcon对象上。

对于窗口的闪烁,当然是直接调用FlashWindowEx Win32 API,这个函数在Windows XP中才有(Windows 2000可以忽略了吧)。具体API封装可以直接参考pinvoke.net,里面也有直接对Form类型的支持。

还有一点,当当前窗口是活动窗口后调用FlashWindowEx的话,窗口标题栏会闪烁的,如果不希望这样,即只有在当前窗口是非活动窗口才要进行闪烁的话,需要额外调用GetForegroundWindow API,通过对比程序窗口和桌面活动窗口的Handle,如果不一样,说明程序窗口不是当前活动窗口,然后再调用FlashWindowEx即可,如下参考代码:

//窗体中3秒后非活动闪烁窗口的按钮点击事件执行 //NativeMethods类型是Win32 API的封装类型,请参考源代码或者pinvoke.net privateasyncvoid button4_Click(object sender, EventArgs e) { //等3秒 awaitTask.Delay(3000); //判断Form的Handle是否是当前活动窗口的Handle if (this.Handle !=NativeMethods.GetForegroundWindow()) //如果是的话,执行FlashWindowEx NativeMethods.FlashWindowEx(this); }

任务栏窗口和状态图标的闪动 z相关推荐

  1. win7怎么合并计算机窗口,win7 已设置任务栏窗口从不合并,游戏多开,如何固定窗口顺序?...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 以下方法已经试过如果是下述方法,就不用回答了,谢谢 取消Win7任务栏窗口排序自动调整:点击"开始"菜单,在"搜索程序和文件 ...

  2. VC 获取任务栏窗口的句柄

     本文将介绍一个未公开的Win32 API函数:GetTaskmanWindow,利用它对Windows的任务栏进行操作.这个函数返回拥有任务栏按钮的窗口句柄.在微软的MSDN文档中,对任务栏是这 ...

  3. win10关闭任务栏窗口预览

    title: win10关闭任务栏窗口预览 date: 2018-12-21 12:00:00 +0800 update: 2018-12-21 12:00:00 +0800 author: me c ...

  4. Windows下QT设置应用程序(exe)图标、任务栏托盘图标、任务栏窗口图标

    1. 设置应用程序(exe)图标 在Qt助手(QT Assistant)中,输入"setting",可以看到下面的列表中有Setting the Application Icon, ...

  5. PyQt5窗口最小化后,任务栏窗口预览(Windows速览)持续刷新(C++ Qt同理)

    PyQt5 / Qt窗口最小化后,鼠标悬停,任务栏窗口预览(Windows速览)继续保持刷新状态 问题描述 解决方案 完整代码 问题描述 最近在做一个PyQt5项目,其中有一个功能是窗口启动后开始计时 ...

  6. Win10任务栏 窗口 缩略图显示_显示个数设置

    Win10任务栏 窗口 缩略图显示出现问题 不显示缩略图 缩略图显示的太少 出问题的原因 => 可能是一些垃圾的 优化程序 将这些注册表的项给优化掉了 解决方案: 计算机\HKEY_CURREN ...

  7. 桌面计算机任务栏窗口不能最大化,任务栏不能最小化窗口怎么解决

    任务栏是管理所有应用程序的地方,如果打开的应用程序窗口太多,可以最小化到任务栏,系统总会出一些毛病,把应用程序最小化后,发现任务栏没有最小化窗口,遇到这样问题该如何处理呢?下面是学习小编给大家整理的有 ...

  8. 【原创】终结版 窗口前置 方案 最前面 Z 轴 窗体 最前面

    要真正的理解和解决这个问题,确实不容易.当我花了好几天时间才搞明白之后(每天都会纠结新的问题),我真想写一本书. 首先说明下让窗口前置的方法非常多,但现有(2011年1月26号)网上(公开中文论坛资料 ...

  9. java用户登录窗口怎么删除_从窗口中删除 Headers 栏 . 窗口过程由不同的用户启动...

    我正在使用此代码(在Windows 2003上)删除和调整窗口大小: Process process = Process.GetProcessById(12121); IntPtr mwh = pro ...

最新文章

  1. ip分片 tcp分段(转)
  2. 20145227鄢曼君《网络对抗》逆向及Bof基础
  3. Jquery实现图片左右滚动,没有头尾的,一直循环
  4. 全志uboot修改_全志SDK编译问题解决二:build uboot only
  5. 场地测量的方法和程序_场地测量方案
  6. OkHttp+Stetho+Chrome调试android网络部分(原创)
  7. thinkphp5.0 session驱动方式问题汇总
  8. 计算机应用基础10000字论文,计算机(毕业论文)一万字.doc
  9. mysql 全文索引 (N-gram parser)
  10. 学习云计算需要哪些软件,需要什么知识面?
  11. 平安夜关于苹果的题目——1705. 吃苹果的最大数目
  12. UG NX二次开发-外部模式
  13. Error in Summary.factor ‘min’ not meaningful for factors
  14. 针式PKM,不是简单的“文档管理器”
  15. 《工程伦理与学术道德》之《工程中的价值、利益与公正》
  16. 撸一个自定义底部导航View 布局+代码实现导航栏
  17. python如何实现歌单 黑胶品质?
  18. 计算机水平vb,2020年计算机等级VB考试强化练习题及答案
  19. xbox360链接pc_如何将Xbox One游戏流式传输到Windows 10 PC
  20. 计算机是怎样跑起来的(Ⅱ-2)连接电源、数据总线和地址总线

热门文章

  1. LAMP兄弟连PHP课程学习笔记 第二天 PHP中使用变量
  2. 全面支持三大主流环境 |百度PaddlePaddle新增Windows环境支持
  3. Babylon.js 3.3发布:更强大的粒子系统和WebVR支持
  4. httpd.2.4虚拟主机配置测试
  5. 怎么写shell脚本才能不耍流氓?
  6. 使用Oracle调度程序自动完成任务
  7. 前端(移动端)开发利器Chrome Developer Tools秘籍(下)
  8. linux /etc/fstab文件参数求解释
  9. 老谢oracle视频笔记_day02
  10. 加入新e时代建站网后,我可以做什么