用C# 自定义Window7的JumpList(跳转列表) X

相信用过window7 的都知道window7任务栏新增加了一些功能比如JumpList(跳转列表),如图:

 

这是IE8的Jumplist,现在利用Visual Studio 2010 和C#4.0 我们可以编写Code来改变Jumplist和自定义。

首先,用VS2010新建一个windowform project(注意是 .Net 4.0的架构),然后右击选择解决方案(屏幕右边)下的reference点Addreference(添加引用)这是我们要添加两个Dll文件 路径为:C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0  选 PresentationCore.dll 和PresentationFramework.dll。 因为Jumplist类包含在这两个namespace下。

引用如下:

using System.Windows.Shell;

using System.IO;

 

核心代码如下:

private void btnAdd_Click(object sender, EventArgs e)
        {
            JumpTask jumptask = new JumpTask();//实例化一个JumpTask Object

            jumptask.ApplicationPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "calc.exe");//ApplicationPath就是应用程序路径。。
            jumptask.IconResourcePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "calc.exe");//程序的图标路径。
            jumptask.Title = "Claculator";//标题
            jumptask.Description = "Start Calculator";//描述
            jumptask.CustomCategory = "New Micosoft Tools";

            JumpTask jumptask1 = new JumpTask();
            jumptask1.ApplicationPath = "http://www.cnblogs.com/xspaceworld/";
            jumptask1.IconResourcePath = @"C:\Program Files\Internet Explorer\iexplore.exe";
            jumptask1.Description = "Go To X-Space Blog";
            jumptask1.Title = "Xuya's Blog";
            jumptask1.CustomCategory = "Bolg Links";


            JumpTask jumptask2 = new JumpTask();
            jumptask2.ApplicationPath = textBox1.Text;
            jumptask2.IconResourcePath = textBox4.Text;
            jumptask2.Description = textBox2.Text;
            jumptask2.Title = textBox3.Text;
            jumptask2.CustomCategory = comboBox1.Text;

            JumpList jumplist = new JumpList();
            jumplist.JumpItems.Add(jumptask);
            jumplist.JumpItems.Add(jumptask1);
            jumplist.JumpItems.Add(jumptask2);
            jumplist.Apply();
        }
        private void btnClear_Click(object sender, EventArgs e)
        {
            JumpList jumplist1 = new JumpList();
            jumplist1.JumpItems.Clear();
            jumplist1.Apply();
        }

        private void btnOpen_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK) 
            {
                textBox1.Text = openFileDialog1.FileName;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter ="ico|*.ico|exe|*.exe";
            if (openFileDialog1.ShowDialog() == DialogResult.OK) 
            {
                textBox4.Text = openFileDialog1.FileName;
                pictureBox1.Image =Image .FromFile (openFileDialog1 .FileName );
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("Bolg Links");
            comboBox1.Items.Add("New Micosoft Tools");
            comboBox1.SelectedIndex = 0;
        }

有些方面还需要改进。。

比如把之前增加过的到导出一张List,如果再要增加的话就直接调用这个List把之前的内容加进去,现在只能实现一个增加。 有会的高手多指点指点,多交流交流。

效果图:

原文地址:https://www.cnblogs.com/xspaceworld/p/1774768.html