2010-10-01 58 views
1

我認爲這是這個叫做:的Windows 7跳轉列表

enter image description here

我希望能夠以這樣的東西添加到我的計劃。如打開按鈕和其他按鈕,將在應用程序內執行方法。順便說一下,這是用C#編寫的。

我DID看看Windows 7 API代碼包,但它沒有按照我想要的方式工作。它不會讓我像我想要的那樣在我的應用程序內執行一個方法。它只是讓你打開其他應用程序。

是這樣的可能嗎?

+0

嗨伊頓,請添加一些ocde,所以我們可以幫助你。謝謝! – 2010-10-01 03:12:38

+0

你好,我從來沒有真正想出任何代碼,因爲W7代碼包沒有我需要的功能。 – Eaton 2010-10-01 03:16:11

回答

4

我認爲你不明白JumpLists是如何工作的。 「它只是讓你打開其他應用程序」正是它所做的,沒有別的。這就是Windows 7功能,而不是API代碼包限制。關鍵是這個事實,即你的應用程序沒有運行,所以它應該在哪裏執行你的方法? 正確的實現將使您的JumpList以正確的參數運行您的應用程序,然後在您的應用程序內部根據這些參數調用不同的方法。 不要忘記,即使窗口應用程序也具有輸入參數,就像控制檯應用程序一樣。

+0

感謝您的信息! – Eaton 2010-10-02 03:45:17

1

如果你看看Outlook和Messenger,他們會調用應用程序中的其他命令,所以你知道這是可能的。但正如@Euphoric所說,跳轉列表的架構非常簡單 - 選擇目標(例如文件名或URL)會導致Windows啓動應用程序的另一個實例並將該目標作爲命令行參數傳遞。選擇任務會導致Windows啓動該任務,該任務需要成爲其他某個exe。

如何解決這個看似矛盾?另一個exe是與主應用程序通信的助手exe。這方面的例子供不應求,但我正在爲11月初的演講做一個演示,並在完成之後將其發佈到博客上。也許這個架構指針會讓你開始。

0

將URL分配給跳轉列表項並使用HTTP偵聽器在應用程序上調用方法。像這樣URL mapping with C# HttpListener

此外,您可以走向蜿蜒的路線並使用共享互斥體僅使您的應用程序單個實例,並在命名管道中轉發命令行參數。但http聽者更好;)

相關問題