簡體   English   中英

如何在Windows 7中的任務欄上放置我的自定義工具欄(DeskBand?)贏得WPF?

[英]How do I place my custom toolbar (DeskBand?) on taskbar in Windows 7 win WPF?

如何在任務面板之前將自定義工具欄放在Windows 7的任務欄上? 有一個名為Pokki的流行應用程序可以做到這一點。 在此輸入圖像描述 我想知道我該怎么做?

編輯1:我需要100%的方式來訪問Windows 7的自定義工具欄(DeskBand?)。我不是在尋找一個pin-an應用程序解決方案,而是一種構建自定義解決方案的方法,該解決方案能夠處理它自己的消息並顯示它自己的圖標。 C#方式非常感謝。

Edit2:非常感謝WPF方式。

你會得到很多建議,為在C#中沒有做到這一點。 我不能建議,你的桌面帶不能工作的幾率很大。 問題是CLR版本注入問題,一個進程(如explorer.exe)只能加載一個版本的CLR。 如果版本錯誤,您的桌面帶將無法正常工作。

在.NET 4.0中添加了針對此問題的非常具體的對策,其CLR支持CLR的進程內並行版本。 換句話說,在一個進程中加載​​了多個CLR。 該功能適用​​於此特定方案,即需要CLR的COM服務器,因為它是用托管代碼編寫的。 因此絕對要求您編寫針對.NET 4.0或更高版本的擴展。

但是仍然存在遺留問題,而且微軟仍然不支持shell擴展的這種情況的核心原因。 有一個“誰先來”的問題。 盡管警告沒有這樣做,但有一些shell擴展使用托管代碼和目標CLR版本2.如果這樣的擴展你的之前加載,一個完全隨機的事件,因為它取決於注冊表中的鍵的順序,資源管理器可能會首先加載CLR 2。 這會阻止進程並行功能的工作,只有在首先加載CLR版本4時才能達到良好的目的。

這是完全不可識別的,當無法加載擴展時,資源管理器不會發出吱吱聲。 對普通用戶來說無法修復,你不能指望他修補一些模糊的注冊表項。

在完全解除這個問題之前需要花費很多時間。 實際上,Windows需要在.NET 4之前停止支持.NET版本才能獲得保證。 Windows 8首先沒有安裝.NET 3.5,但它仍然可以很容易地添加它。 所以要花很多時間,十年或更長時間。

那么,請注意風,如果你不擔心隨機故障,你可以使它在C#中工作。 接下來你將被隱藏在非常模糊的COM接口細節中,幸存下來需要黑帶技能,知道如何正確聲明[ComImport]接口。 這不是你應該自己解決的問題,而是由其他人完成的。 不習慣推薦產品,但不能跳過推薦EZShellExtensions ,這是一個專門用於幫助在C#中編寫shell擴展的庫。 支持deskband是其廣告功能之一。 使用試用版來修補它,看看你是否可以把它帶到一個好的結局。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM