Windows7中JumpList的實現

2021-09-04 09:52:14 字數 3279 閱讀 6562

windows7

就要發布了,近期,就要和

ms 組織一次社群

win7

發布活動,正好這次也講

win7

的taskbar

開發,所以就把要講的東西組織成

blog

,分享給出來,以供參考。

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

對於windows7 taskbar

的開發功能是基於

com 元件來實現的,這些組織提供了操作

windos7

特性的一些功能。開發人員只要對

com 操作就可以,但更為幸福的是,微軟已經開發出一些

kit ,我們直接用這些

kit ,就可以用

c# 對

windos7

的新功能進行程式設計了。

對於這個

kit ,可以從

其中的windowsapicodepack

和registrationhelper

是封裝taskbar

操作的專案,我們直接用他們的

dll 或

exe 就可以。

在做jumplist

時,我們用到

microsoft.windowsapicodepack.dll

,microsoft.windowsapicodepack.shell.dll

和windows7.desktopintegration.registration.exe

當新建乙個

wpf 應用程式時,需要在引用中新增這三個可執行檔案。

在對工作列編和前,先來認識一下

,在win7

中,不是視窗的唯一標識,也不是它的

guid

, 只是一串用來標識窗體的字串。它最大長度為

128 個字元,我們來命名

時,遵循的約定為「

company.product.subproduct.version

」。這個

可以和程序,程式的快捷方式,窗體,

jumplist

,文件註冊型別等關聯起來。

在用以前,必需先註冊它,本質上這個註冊是對登錄檔的操作。

具體代如下:

static registrykey classesroot;

string openwith)

關於win7

的taskbar

有幾種效果,下面分別來說一下。

jumplist

效果圖如下。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

在圖中,下方的三個選項是系統預設就有的,常用和任務,則是必需寫**來完成的。其實

jumplist

就是提供了一組快鍵方式。並且對快鍵方式進行分組分類。

首先來說一下新增和清除任務項,任務就是應用程式外的其他小工具的便鍵呼叫。

首先要註冊一下

,名稱為

要有乙個

jumplist

物件private microsoft.windowsapicodepack.taskbar.jumplist jumplist = microsoft.windowsapicodepack.taskbar.jumplist.createjumplist();

jumplist.refresh();

現在來實現新增任務列表

string systemfolder = environment.getfolderpath(environment.specialfolder.system);

// 建立計算器

ijumplisttask calctask = new jumplistlink(path.combine(systemfolder, "calc.exe"), "

開啟計算器

") ;

jumplist.addusertasks(calctask, new jumplistseparator());

jumplist.refresh();

清除任務列表如下

jumplist.clearallusertasks();

jumplist.refresh();

上面這些類,都是

microsoft.windowsapicodepack.dll

和microsoft.windowsapicodepack.shell.dll

封裝的,這兩個專案都是開源的。其實真正新增任務的工作(包括後面自定義

category

)都是jumplist.refresh()

這個方法完成的。

不防我們來看一下,運用

vs 地「轉到定義」會轉到乙個名為「

taskbarcominte***ces

」的乙個頁面。

其中有如下**:

[comimportattribute()]

[guidattribute("6332debf-87b5-4670-90c0-5e57b408a49e")]

[inte***cetypeattribute(cominte***cetype.inte***ceisiunknown)]

internal inte***ce icustomdestinationlist

可以看到,在

win7

中,jumplist

的程式設計是通過

com 元件來實現的。

我為簡單,建議開發時用

ms 封裝好的

kit ,這樣程式設計更高效。

自定義category

,通常是把自己的型別或系統識別的型別新增成快捷方式。操作**如下:

//建立自己定義

category

jumplistcustomcategory mycategory;

private void addcategory_but_click(object sender, routedeventargs e)

//建立子型別

private void subcategory_but_click(object sender, routedeventargs e)

//建立子連線

private void addlink_but_click(object sender, routedeventargs e)

使用Windows 7中的庫

windows7中的庫功能讓管理檔案和資料夾變得簡單。今天我們就來看看如何使用庫,如何把網路共享的盤新增到庫中。windows7中的庫讓你更方便地管理散落在你電腦裡的各種檔案。你再也不必開啟層層的資料夾尋找你要的檔案了,只要新增到庫中就可以方便地找到它們了。如果windows7你用的時間不短,經常在...

windows7 技巧收藏

一 windows鍵 空格鍵 space 作用 透明化所有視窗,快速檢視桌面 並不切換 快捷鍵 win 空格 小結 當你開啟了很多程式視窗的時候,這招非常有用,而且桌面還會有華麗的光影效果哦。沒用過的趕緊試試先 二 windows鍵 d 作用 最小化所有視窗,並切換到桌面,再次按又重新開啟剛才的所有...

windows7命令雜項

ncpa.cpl 開啟網路連線 tracert 路由追蹤 pathping.exe 包含ping和tracert的程式 winver 檢查系統版本 mstsc 遠端工具 區域網內測試很好用 control 開啟控制中心 taskmgr 開啟任務管理器 devmgmt.msc 開啟裝置管理器 disk...