wpf 状态栏图标背景闪烁提醒 FlashWindowEx
来源:互联网 发布:淘宝采集工具 编辑:程序博客网 时间:2024/05/16 17:53
using System;using System.Runtime.InteropServices;using System.Windows;using System.Windows.Interop;namespace XCommon {public static class WindowExtensions { #region Window Flashing API Stuff private const UInt32 FLASHW_STOP = 0; //Stop flashing. The system restores the window to its original state. private const UInt32 FLASHW_CAPTION = 1; //Flash the window caption. private const UInt32 FLASHW_TRAY = 2; //Flash the taskbar button. private const UInt32 FLASHW_ALL = 3; //Flash both the window caption and taskbar button. private const UInt32 FLASHW_TIMER = 4; //Flash continuously, until the FLASHW_STOP flag is set. private const UInt32 FLASHW_TIMERNOFG = 12; //Flash continuously until the window comes to the foreground. [StructLayout(LayoutKind.Sequential)] private struct FLASHWINFO { public UInt32 cbSize; //The size of the structure in bytes. public IntPtr hwnd; //A Handle to the Window to be Flashed. The window can be either opened or minimized. public UInt32 dwFlags; //The Flash Status. public UInt32 uCount; // number of times to flash the window public UInt32 dwTimeout; //The rate at which the Window is to be flashed, in milliseconds. If Zero, the function uses the default cursor blink rate. } [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool FlashWindowEx(ref FLASHWINFO pwfi); [DllImport("user32.dll")] private static extern IntPtr GetForegroundWindow(); #endregion public static void FlashWindow(this Window win, UInt32 count = UInt32.MaxValue, UInt32 interval = 100) { //Don't flash if the window is active if (win.IsActive) return; WindowInteropHelper h = new WindowInteropHelper(win); FLASHWINFO info = new FLASHWINFO { hwnd = h.Handle, dwFlags = FLASHW_ALL | FLASHW_TIMER, uCount = count, dwTimeout = interval }; info.cbSize = Convert.ToUInt32(Marshal.SizeOf(info)); FlashWindowEx(ref info); } public static void StopFlashingWindow(this Window win) { WindowInteropHelper h = new WindowInteropHelper(win); FLASHWINFO info = new FLASHWINFO(); info.hwnd = h.Handle; info.cbSize = Convert.ToUInt32(Marshal.SizeOf(info)); info.dwFlags = FLASHW_STOP; info.uCount = UInt32.MaxValue; info.dwTimeout = 0; FlashWindowEx(ref info); }}}
使用方法:开始闪烁:FlashWindow(this Window win, UInt32 count = UInt32.MaxValue, UInt32 interval = 100)win 主窗体,count 闪动次数微信是4次,interval 闪烁间隔毫秒例子:WindowExtensions.FlashWindow(this, 5, 500);停止闪烁:private void window_OnActivated(object sender, EventArgs e) { if (this.IsActive) { if (notificationTimer.Enabled) { notificationTimer.Enabled = false; // 停止闪烁通知区域图标 notifyIcon.Icon = icons[0]; } WindowExtensions.StopFlashingWindow(this); // 停止闪烁任务栏 } }
阅读全文
0 0
- wpf 状态栏图标背景闪烁提醒 FlashWindowEx
- 任务栏图标闪烁 FlashWindowEx
- 设置提醒图标,设置状态栏
- 状态栏的图标与文字提醒
- 消息提醒、带声音提示、托盘图标闪烁
- FlashWindowEx
- 状态栏背景颜色和状态栏图标icon颜色修改
- 《Windows核心编程》の窗口闪烁函数FlashWindow和FlashWindowEx
- FlashWindowEx实现窗口在任务栏闪烁/变化颜色
- FlashWindowEx实现窗口在任务栏闪烁/变化颜色
- android标题栏、状态栏图标文字颜色及背景动态变化
- Android--状态栏的图标和文字提醒/NotificationManager与Notification对象的应用
- 状态栏的图标与文字提醒(NotificationManager与Notification对象的应用)
- 在状态栏上显示会闪烁的图标(类似qq消息提示)
- Mac状态栏wifi图标一直闪烁重复连接但是网络正常的解决办法
- android Notification 状态栏提醒
- 状态栏提醒Notification,NotificationManager
- android状态栏提醒
- 初窥Linux 之 我最常用的20条命令
- VP中鼠标类中事件的认识
- 新路程------GDB 调试(1)
- ionic配代理解决添加插件时connect etimedout的错误
- 强制解包看 Swift 的设计
- wpf 状态栏图标背景闪烁提醒 FlashWindowEx
- Kubernetes从Private Registry中拉取容器镜像的方法
- spring security4学习(一)
- 今天找到的坑
- 验证码图片 ImageView,相当实用
- Spring的IOC原理
- Selenium Ruby环境搭建、启动IE
- 美国职业棒球app“At Bat VR”即将上线Daydream
- 洛谷OJ