任务栏窗口和状态图标的闪动 z
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相关推荐
- win7怎么合并计算机窗口,win7 已设置任务栏窗口从不合并,游戏多开,如何固定窗口顺序?...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 以下方法已经试过如果是下述方法,就不用回答了,谢谢 取消Win7任务栏窗口排序自动调整:点击"开始"菜单,在"搜索程序和文件 ...
- VC 获取任务栏窗口的句柄
本文将介绍一个未公开的Win32 API函数:GetTaskmanWindow,利用它对Windows的任务栏进行操作.这个函数返回拥有任务栏按钮的窗口句柄.在微软的MSDN文档中,对任务栏是这 ...
- win10关闭任务栏窗口预览
title: win10关闭任务栏窗口预览 date: 2018-12-21 12:00:00 +0800 update: 2018-12-21 12:00:00 +0800 author: me c ...
- Windows下QT设置应用程序(exe)图标、任务栏托盘图标、任务栏窗口图标
1. 设置应用程序(exe)图标 在Qt助手(QT Assistant)中,输入"setting",可以看到下面的列表中有Setting the Application Icon, ...
- PyQt5窗口最小化后,任务栏窗口预览(Windows速览)持续刷新(C++ Qt同理)
PyQt5 / Qt窗口最小化后,鼠标悬停,任务栏窗口预览(Windows速览)继续保持刷新状态 问题描述 解决方案 完整代码 问题描述 最近在做一个PyQt5项目,其中有一个功能是窗口启动后开始计时 ...
- Win10任务栏 窗口 缩略图显示_显示个数设置
Win10任务栏 窗口 缩略图显示出现问题 不显示缩略图 缩略图显示的太少 出问题的原因 => 可能是一些垃圾的 优化程序 将这些注册表的项给优化掉了 解决方案: 计算机\HKEY_CURREN ...
- 桌面计算机任务栏窗口不能最大化,任务栏不能最小化窗口怎么解决
任务栏是管理所有应用程序的地方,如果打开的应用程序窗口太多,可以最小化到任务栏,系统总会出一些毛病,把应用程序最小化后,发现任务栏没有最小化窗口,遇到这样问题该如何处理呢?下面是学习小编给大家整理的有 ...
- 【原创】终结版 窗口前置 方案 最前面 Z 轴 窗体 最前面
要真正的理解和解决这个问题,确实不容易.当我花了好几天时间才搞明白之后(每天都会纠结新的问题),我真想写一本书. 首先说明下让窗口前置的方法非常多,但现有(2011年1月26号)网上(公开中文论坛资料 ...
- java用户登录窗口怎么删除_从窗口中删除 Headers 栏 . 窗口过程由不同的用户启动...
我正在使用此代码(在Windows 2003上)删除和调整窗口大小: Process process = Process.GetProcessById(12121); IntPtr mwh = pro ...
最新文章
- ip分片 tcp分段(转)
- 20145227鄢曼君《网络对抗》逆向及Bof基础
- Jquery实现图片左右滚动,没有头尾的,一直循环
- 全志uboot修改_全志SDK编译问题解决二:build uboot only
- 场地测量的方法和程序_场地测量方案
- OkHttp+Stetho+Chrome调试android网络部分(原创)
- thinkphp5.0 session驱动方式问题汇总
- 计算机应用基础10000字论文,计算机(毕业论文)一万字.doc
- mysql 全文索引 (N-gram parser)
- 学习云计算需要哪些软件,需要什么知识面?
- 平安夜关于苹果的题目——1705. 吃苹果的最大数目
- UG NX二次开发-外部模式
- Error in Summary.factor ‘min’ not meaningful for factors
- 针式PKM,不是简单的“文档管理器”
- 《工程伦理与学术道德》之《工程中的价值、利益与公正》
- 撸一个自定义底部导航View 布局+代码实现导航栏
- python如何实现歌单 黑胶品质?
- 计算机水平vb,2020年计算机等级VB考试强化练习题及答案
- xbox360链接pc_如何将Xbox One游戏流式传输到Windows 10 PC
- 计算机是怎样跑起来的(Ⅱ-2)连接电源、数据总线和地址总线
热门文章
- LAMP兄弟连PHP课程学习笔记 第二天 PHP中使用变量
- 全面支持三大主流环境 |百度PaddlePaddle新增Windows环境支持
- Babylon.js 3.3发布:更强大的粒子系统和WebVR支持
- httpd.2.4虚拟主机配置测试
- 怎么写shell脚本才能不耍流氓?
- 使用Oracle调度程序自动完成任务
- 前端(移动端)开发利器Chrome Developer Tools秘籍(下)
- linux /etc/fstab文件参数求解释
- 老谢oracle视频笔记_day02
- 加入新e时代建站网后,我可以做什么