c#实现任务栏添加控制按钮
Windows7Taskbar的使用
你需要引入3个文件VistaBridgeLibrary.dll、Windows7.DesktopIntegration.dll、Windows7.DesktopIntegration.Registration.exe
下载地址:http://yunpan.cn/QauRaNK4H3BYW (提取码:fe58)
里面封装好的类:Windows7Taskbar、ThumbButtonManager、ThumbButton、JumpListManager、RegistrationHelper等等
Windows7Taskbar用于注册及初始化,ThumbButtonManager管理ThumbButton,包括创建添加按钮,JumpListManager历史记录,RegistrationHelper关联文件类型
实现步骤:
1.引用
using Windows7.DesktopIntegration;
using Windows7.DesktopIntegration.WindowsForms;
2.初始化(窗体Load时)
Windows7Taskbar.AllowTaskbarWindowMessagesThroughUIPI();
Windows7Taskbar.SetCurrentProcessAppId("TaskbarManaged");//里面的参数自定义
3.创建按钮
ThumbButtonManager buttonManager=this.CreateThumbButtonManager();
ThumbButton taskbarBtnPause = buttonManager.CreateThumbButton(, Properties.Resources.playtask, "播放");
taskbarBtnPause.Clicked += (sender, e) =>
{
btnPlay_PictureClick(sender, e);
if (IsPlay == true)//这里判断是否在播放,更新图标
{
taskbarBtnPause.Icon = Properties.Resources.playtask;
}
else
{
taskbarBtnPause.Icon = Properties.Resources.pausetask;
}
};
buttonManager.AddThumbButtons(taskbarBtnPause);
4.捕获信息
protected override void WndProc(ref Message m)
{
if (buttonManager != null)
buttonManager.DispatchMessage(ref m);
base.WndProc(ref m);
}
效果图:
需要注意的是:
最多7个button, 没有方法添加或删除一个按钮,在你初始化以后, 只能让它不可用或隐藏.可以调用ThumbBarAddButtons和ThumbBarUpdateButtons方法来控制工具栏.
在窗体的Load时间里添加ThumbButton不会起作用,这就是为什么我不在窗体Load时添加ThumbButton的原因,并且每个ThumbButton都有一个ID,这个ID是你自己分配的,不能重复
遇到的问题:
我给taskbarBtnPause.Clicked添加了一个处理事件,也就是改变图标,结果是当触发该事件时ThumbButton的属性Icon修改了,但是界面没有更新

c#实现任务栏添加控制按钮的更多相关文章
- 如何在Word表格中的某一栏添加背景颜色
如何在Word表格中的某一栏添加背景颜色 编写人:CC阿爸 2014-3-14 用鼠标选中某一个单元格然后右键单击 下拉菜单选择.<边框和低纹>然后点<低纹>选项卡 选中色卡 ...
- UIBarButtonItem导航栏添加按钮
1 前言 UIBarButtonItem为导航栏按钮,在导航栏的左侧和右侧,他们具有许多种不同的形状和形式. 2 代码讲解 ZYViewController.m [plain] (void)view ...
- Windows 10 任务栏添加网易云音乐控制按钮
软件背景: 算是老帖新发,之前有朋友分享过一个很好用的工具,但可能是因为网易云软件更新后,导致控件失灵了,只剩下歌词控件有用了,所以今天用python重新写了一个小工具,发出来分享给大家,附上之前 ...
- 使用vue给导航栏添加链接
如下面的导航栏,使用vue技术给该导航栏增加链接: js代码为: navigation:function(){ new Vue({ el: '#navUl', data: { menuData:{ ' ...
- 利用Jquery给当前页或者跳转后页面的导航栏添加选中后样式
具体的样式有两种情况,一种是直接给当前页面添加特殊样式,当网页刷新或者跳转到下一页后,样式消失:另一种情况是即使刷新页面后样式仍然有效. 直接上代码: 第一种情况: 在CODE上查看代码片派生到我的代 ...
- Ubuntu 启动栏添加eclipse图标
sudo gedit /usr/share/applications/eclipse.desktop [Desktop Entry] Name=Eclipse Comment=c project ma ...
- JavaScript--收藏栏添加按钮,放大hdu题目字体
觉得HDOJ的题目字体太小了,一波小操作 在收藏栏添加:添加网页->网址改为: javascript: void((function() { var element = document.get ...
- ubuntu12.04向左边栏添加图标(引用)
转自:http://forum.ubuntu.com.cn/viewtopic.php?f=86&t=317442 打开想添加的软件,图标会出现在侧边栏,右击之,点Keep In Launch ...
- foobar2000 频谱给我的win10 任务栏添加一点会动背景
在任务栏右键,"任务栏设置",颜色 -> 透明效果, 然后 foobar2000 的 view -> layout -> Quick Setup,选择带有Visu ...
随机推荐
- qt and redis desktop manager
(ubuntu desktop)http://blog.csdn.net/ficksong/article/details/7497827 redis manager in ubuntu wget h ...
- 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活--hdu2191(多重背包模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 标准的多重背包 题目 有N种物品和一个容量为V的背包.第i种物品最多有n[i]件可用,每件费用是 ...
- CDH部署日志
CDH部署时出现如图所示的错误 可去服务器查看:/opt/cm-5.5.0/run/cloudera-scm-agent/process/ccdeploy_hbase-conf_etchbasecon ...
- C++ 带有通配符*与?的字符串匹配
题目:两个字符串,一个是普通字符串,另一个含有*和?通配符,*代表零个到多个任意字符,?代表一个任意字符,通配符可能多次出现.写一个算法,比较两个字符串是否相等. 发现许多公司笔试面试都有这道题目,于 ...
- 【我的Android进阶之旅】Android 7.0报异常:java.lang.SecurityException: COLUMN_LOCAL_FILENAME is deprecated;
之前开发的一个和第三方合作的apk,在之前公司的 Android 5.1 系统的手表上运行正常,今天在公司新开发的 Android 7.1系统的手表上运行的时候,使用 DownloadManager ...
- 007-aven-assembly-plugin和maven-jar-plugin打包,java启动命令
一.需求 打一个zip包,包含如下: bin为程序脚本,启动和停止 lib为依赖包 根目录下为配置文件和项目jar包 二.知识储备 2.1.插件了解 plugin function maven-jar ...
- POJ3281:Dining(dinic+拆点)
题目链接:http://poj.org/problem?id=3281 PS:刷够网络流了,先这样吧,之后再刷,慢慢补. 题意:有F种食物,D种饮料,N头奶牛,只能吃某种食物和饮料(而且只能吃特定的一 ...
- 在eclipse中,Python项目遇到:…… from appium import webdriver ImportError: No module named appium
1) Traceback (most recent call last): File "D:\python workspace\src\p_test01\__init__.py" ...
- vue 动画过渡
一.过渡(动画) 1. 简介 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果,本质上还是使用CSS3动画:transition.animation 2. 基本用法 1.使用t ...
- python全栈开发从入门到放弃之内置函数
1.locals.globals def func(): x = 1 y = 2 print(locals()) #打印局部作用域中的名字 print(globals()) #打印全局作用域中的名字 ...