2011-01-22 90 views
1

我在Framework 3.5 SP1與WPF目前正在寫的應用程序,我需要我的功能擴展到Windows資源管理器右鍵菜單,如Winzip或WinRAR或者任何人怎麼回事,沒有當用戶右擊一個文件或夾。操縱Windows資源管理器右鍵菜單

我做了很多的研究,有的說使用註冊表,這之後我想,是相當不靈活。因爲我需要我的上下文菜單中的子菜單,還有圖標。

另一種方法,我發現,是shell編程,這是更討厭的,但具有比註冊表的方法很多很多更多的潛力。

Shell編程需要COM編程知識,需要時間學習。

對於我發現的關於修改windows explorer上下文菜單的所有文章,他們主要發表於2003年,2005年等,這是5年前,我的意思是說,經過5年的發展,是否有任何新技術可以使這可能在當前.net框架像3.5 SP1或4.0使用C#?

謝謝。

+0

可能這一塊的DUP http://stackoverflow.com/questions/2194572/windows-shell-extension-with- c – 2011-01-22 06:30:08

回答

0

上的每個文件夾

這裏添加到右鍵單擊應用程序是如何添加任何應用程序上下文菜單,當你右鍵點擊任何文件夾。這樣你就不必一直走到開始菜單。當您右鍵單擊任何文件夾時,您可以訪問該應用程序,就像使用「發送至」一樣。

  1. 打開註冊表
  2. 轉到HKEY_CLASSES_ROOT \文件夾\殼
  3. 添加一個新的關鍵的「殼牌」鍵並將其命名爲任何你喜歡的。
  4. 給它當你右擊一個文件夾,將出現一個默認值, 即則newkey(使用「&」沒有 報價,任何性質的正面和 它可以讓你使用鍵盤)

  5. 點擊鑰匙HKEY_CLASSES_ROOT \文件夾\殼\則newkey

  6. 添加新的鍵值名爲命令
  7. 設置要運行
  8. 對於考試申請的(默認)值PLE:C:\ Program Files文件\的Internet Explorer \ IEXPLORE.EXE (包括完整路徑,如果你需要它們的參數 )爲您

編寫代碼....

編輯:

在C#代碼(文件夾)

private void button1_Click(object sender, EventArgs e) 
    {   
     Microsoft.Win32.RegistryKey contextMenuKey = Registry.ClassesRoot.CreateSubKey(@"Folder\shell\MyName\command"); 
     //MyName is name to display 
     contextMenuKey.SetValue(null, @"c:\program files\internet explorer\iexplore.exe"); 
     //null or "" to set value in (Default), full path of your application 
    } 
+0

謝謝。但我想要的是比這更復雜一點。我想在左側包含一個帶有圖標的菜單,並帶有子菜單。 – VHanded 2011-01-23 10:19:17

0

要在Windows資源管理器右鍵菜單的附加條目您將需要在Windows註冊表中添加兩個子鍵HKEY_CLASSES_ROOT \ Folder \ shell

這些關鍵字是:

  1. Folder \ shell \ MyProduct:此鍵的值將顯示爲新窗口資源管理器上下文菜單項中的文本。您還可以通過向鍵1添加一個值並將其命名爲「圖標」,然後將圖標的路徑設置爲值,將圖標添加到上下文菜單項。

  2. Folder \ shell \ MyProduct \ command:設置您要啓動的應用程序的路徑。

這裏是鏈接的詳細信息和示例C#代碼: http://newapputil.blogspot.in/2016/12/adding-new-item-to-context-menu-of.html

相關問題