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修改了,但是界面没有更新

本文地址:http://www.cnblogs.com/liuxiaobo93/p/3914424.html 暮雨冰蓝

c#实现任务栏添加控制按钮的更多相关文章

  1. 如何在Word表格中的某一栏添加背景颜色

     如何在Word表格中的某一栏添加背景颜色 编写人:CC阿爸 2014-3-14 用鼠标选中某一个单元格然后右键单击 下拉菜单选择.<边框和低纹>然后点<低纹>选项卡 选中色卡 ...

  2. UIBarButtonItem导航栏添加按钮

    1 前言 UIBarButtonItem为导航栏按钮,在导航栏的左侧和右侧,他们具有许多种不同的形状和形式. 2 代码讲解 ZYViewController.m [plain]  (void)view ...

  3. Windows 10 任务栏添加网易云音乐控制按钮

      软件背景: 算是老帖新发,之前有朋友分享过一个很好用的工具,但可能是因为网易云软件更新后,导致控件失灵了,只剩下歌词控件有用了,所以今天用python重新写了一个小工具,发出来分享给大家,附上之前 ...

  4. 使用vue给导航栏添加链接

    如下面的导航栏,使用vue技术给该导航栏增加链接: js代码为: navigation:function(){ new Vue({ el: '#navUl', data: { menuData:{ ' ...

  5. 利用Jquery给当前页或者跳转后页面的导航栏添加选中后样式

    具体的样式有两种情况,一种是直接给当前页面添加特殊样式,当网页刷新或者跳转到下一页后,样式消失:另一种情况是即使刷新页面后样式仍然有效. 直接上代码: 第一种情况: 在CODE上查看代码片派生到我的代 ...

  6. Ubuntu 启动栏添加eclipse图标

    sudo gedit /usr/share/applications/eclipse.desktop [Desktop Entry] Name=Eclipse Comment=c project ma ...

  7. JavaScript--收藏栏添加按钮,放大hdu题目字体

    觉得HDOJ的题目字体太小了,一波小操作 在收藏栏添加:添加网页->网址改为: javascript: void((function() { var element = document.get ...

  8. ubuntu12.04向左边栏添加图标(引用)

    转自:http://forum.ubuntu.com.cn/viewtopic.php?f=86&t=317442 打开想添加的软件,图标会出现在侧边栏,右击之,点Keep In Launch ...

  9. foobar2000 频谱给我的win10 任务栏添加一点会动背景

    在任务栏右键,"任务栏设置",颜色 -> 透明效果, 然后 foobar2000 的 view -> layout -> Quick Setup,选择带有Visu ...

随机推荐

  1. python and 我爱自然语言处理

    曾经因为NLTK的 缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python.离 开腾讯创业后,第一个作品课程图谱也 ...

  2. window下cmd的宽度调整

    一直被cmd的宽度这么了好些年,刚才搜索了下,还真可以设置.标题栏右键属性,调整屏幕缓冲区宽度,只要足够长就不会换行了,然后调整窗口大小-宽度,不能超过屏幕缓冲区宽度,当小于屏幕缓冲区的时候,就会显示 ...

  3. 使用JCONSOLE远程监控JVM

    启动JMS服务 JConsole是从Java 5中开始引入的一个用于对JVM性能和资源消耗进行监控的图形化工具.JConsole可以连接本地的Java程序,也可以连接远程的Java程序.由于是GUI的 ...

  4. MySQL - 查询今天的数据(以及昨天、本月、上个月、今年...) 查询Datetime 时间的数据

    1,查询当天(今天)的数据 1 SELECT * FROM `order` WHERE TO_DAYS(order_time) = TO_DAYS(NOW()) 2,查询昨天的数据 1 SELECT  ...

  5. 0701-spring cloud config-简介、Config Server开发、Config Client开发

    一.概述 参看地址: https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_spring_ ...

  6. mysql监控优化(一)连接数和缓存

    一.mysql的连接数 MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,连接数少的话,在大并发下连接数会不够用,会有很多线程在等待其他连接释放 ...

  7. Spark2.0 Pipelines

    MLlib中众多机器学习算法API在单一管道或工作流中更容易相互结合起来使用.管道的思想主要是受到scikit-learn库的启发. ML API使用Spark SQL中的DataFrame作为机器学 ...

  8. sscanf,sscanf

    在#include<stdio.h> 定义函数 int sscanf (const char *str,const char * format,........); 函数说明: sscan ...

  9. 浅析Spring AOP

    在正常的业务流程中,往往存在着一些业务逻辑,例如安全审计.日志管理,它们存在于每一个业务中,然而却和实际的业务逻辑没有太强的关联关系. 图1 这些逻辑我们称为横切逻辑.如果把横切的逻辑代码写在业务代码 ...

  10. 记录:tensoflow改错TypeError: Cannot interpret feed_dict key as Tensor: Can not convert a float into a Te

    错误描述: TypeError: Cannot interpret feed_dict key as Tensor: Can not convert a float into a Tensor. 改错 ...