2011-12-29 78 views

回答

1

使用C#編寫的上下文菜單項的Windows資源管理器

不要這樣做。真。雷蒙德陳有一個great writeup爲什麼你不應該。

現在,這篇文章已經很老了。自那時以來,有些事情發生了變化,例如支持SxS的.NET 4.0。以前,將兩個CLR版本加載到相同的進程(如2.0和1.1)將會失敗。您可以將加載到2.0和4.0到相同的過程中,

但還有其他問題。

  1. CLR可能需要很長時間才能加載。用戶不喜歡那樣。
  2. 將整個CLR加載到資源管理器的虛擬內存中以顯示上下文菜單看起來有點多。

相反,我會建議將它寫成舊時尚,非管理方式。

2

如果你正在努力實現簡單的東西,比如增加與啓動一個.net應用程序圖標的項目,你可以試試這個:

看看Windows註冊表。在HKEY_CLASSES_ROOT下,您可以找到所有文件擴展名。如果您選擇其中一個鍵,您將看到擴展名的標準名稱。搜索該名稱HKEY_CLASSES_ROOT下一個節點,你會看到這個鍵結構:

CLSID 
DefaultIcon 
Shell 
    Edit 
    Command 
    Open 
    Command 
ShellEx 

殼牌下的每個節點是指上下文菜單項。 這些節點的默認值(如「編輯」或「打開」)是菜單中顯示的文本。 Command的默認值告訴您要啓動哪個應用程序。示例:notepad.exe %1(其中%1是文件url的佔位符)。 DefaultIcon的默認值是圖標的URL(如果有)。

看一看這篇文章的例子:Add a context menu to the Windows Explorer

相關問題