2009-11-23 74 views
3

我正在使用Windows API Code Pack for Microsoft .NET Framework來嘗試使用Win7任務欄的一些新UI功能。我在C#中編寫代碼。Windows 7任務欄 - 跳轉列表,跳轉列表鏈接和跳轉列表

我有一個關於跳列表的問題。所提供的所有示例代碼都假定跳轉列表上的條目用於調用以運行特定應用程序或打開文檔,例如, MRU列表中的文本文檔或運行mspaint.exe。

我想實現一些項目,允許我在自己的應用程序(即與任務欄交互的應用程序)中設置狀態。例如,MSN Messenger可以設置您的狀態(忙碌,離線等)。

盡我所能,我不能創建一個JUmpListItem或JumpListLink以這種方式行爲 - 它將它們視爲應用程序或文檔。

有沒有人有任何樣品如何創建一個項目,在創建它的同一個應用程序中引發一個事件?我相信這很簡單,但我很愚蠢。

非常感謝您的幫助。

+0

這篇關於** CodeProject **的文章可能對[此處]有幫助(http://www.codeproject.com/KB/WPF/MefFX.aspx)。 – t0mm13b 2009-11-25 16:03:23

回答

0

使用TaskBarDemo,打開您的應用程序創建的項目都必須引用,也就是說,如果你的程序創建一個PDF文件,你可以這樣做:

jumpList.AddUserTasks(new JumpListLink(Path.Combine(systemFolder, "C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRD32.exe"), "Open Adobe Reader") 
     { 
      IconReference = new IconReference(Path.Combine(systemFolder, "C:\\Program Files\\Adobe\\Reader 9.0\\Reader\\AcroRD32.exe"), 0) 
     }); 

否則,你就必須確保你的應用程序註冊文件關聯,用於最近或頻繁的項目。

我在使用API​​ Pack時遇到了一些跳轉列表問題,我現在使用VS 2010 Beta 2並讓shell處理跳轉列表。

希望這是有幫助的。

+0

謝謝,但我不想在外部實例化任何東西,我只是想在我的應用程序中發送一個事件 - 真的很像一個漂亮的上下文菜單。 Jumplists可能嗎? – mrbouffant 2009-11-24 07:54:38

1

我相信你想要做的就是用一組特殊的標誌調用你的應用程序(即用特定的參數啓動可執行文件)。在應用程序啓動時,您將檢查設置了哪些標誌,然後將消息發送到應用程序的主實例,然後退出新實例。

0

這些任務是某種IShellLink。然後,您應該調用ICustomDestinationList的AddUserTasks。在Windows 7培訓工具包中查找示例。