如何将上下文菜单项添加到Windows资源pipe理器文件夹

我已经find了如何通过向registry添加registry项来将右键单击上下文菜单项添加到Windows资源pipe理器上的文件。 即我可以右键单击资源pipe理器中的文件,并针对该文件运行自定义应用程序。

我想为文件夹做同样的事情,还没有find一种方法来做到这一点(还)。 我看到有关创build/编写自定义上下文菜单处理程序的文章,但我宁愿不去那里。

我在这里find了一篇关于如何将级联上下文菜单项添加到桌面和浏览器中的“计算机”的文章,但是这对任何文件夹都不起作用。

我希望能够将我的自定义应用程序添加到上下文菜单,并使其在文件和文件夹上工作。 有没有办法做到这一点,而不写一个上下文菜单处理程序?

上下文菜单用于右键单击 Windows资源pipe理器左侧面板中文件夹或右侧面板中目录的背景上:

  1. 如果你是pipe理员, HKEY_CLASSES_ROOT \ Directory \ Background \ shell
  2. HKEY_CURRENT_USER \ Software \ Classes \ directory \ Background \ shell如果您是普通用户

上下文菜单右键单击 Windows资源pipe理器右侧面板中文件夹

  1. 如果您是pipe理员,则HKEY_CLASSES_ROOT \ Directory \ shell
  2. HKEY_CURRENT_USER \ Software \ Classes \ directory \ shell(如果您是普通用户)

任何文件的上下文菜单:

  1. 如果你是pipe理员, HKEY_CLASSES_ROOT \ * \ shell
  2. HKEY_CURRENT_USER \ Software \ Classes \ * \ shell如果您是普通用户

在所有情况下:

  1. 在“shell”下添加一个新的密钥,并将其命名为您想命名的上下文菜单项
  2. 在这个键里添加一个新的键,名为command (强制名)
  3. 编辑“命令”中的“默认”属性到myprogrampath \ path \ path \ executable.exe%1 ,将选定文件的文件path和名称传递给您的自定义程序

更多定制:

  • 添加图标 :为步骤1中创build的密钥添加名为icon的string值,其值与图标资源path匹配。 您也可以提供一个整数参数来指定使用哪个图标。 例如: %SystemRoot%\System32\shell32.dll,3
  • 仅在class次点击时显示 :为步骤1中创build的键添加名为Extended的空string值
  • 自定义菜单条目标签 :更改在步骤1中创build的键的默认值的值
  • 更改菜单条目位置 :添加一个名为Position的string值: TopBottom

我在下面的文章中find了解决scheme,该文章介绍了如何通过registry执行文件以及文件夹操作:

  • 如何添加任何应用程序快捷方式到Windows资源pipe理器的上下文菜单

以下两篇文章提供了其他信息和选项:

  • 终极教程自定义桌面上下文菜单在Windows Vista中,7和8
  • 在Windows 7桌面和我的电脑上下文菜单中为您喜欢的程序添加级联菜单

我回头也回答了另一个话题,因为在这个问题上似乎没有太多具体的东西。

我发现最简单的方法是向名为“AppliesTo”的键添加string值,并将其值设置为“under:{path}”

在我的例子中,我希望它只能看在T驱动器,所以我的string值是“适用于”:“下:T:”。

在C#中,这可以通过以下方式轻松完成:

 RegistryKey _key = Registry.ClassesRoot.OpenSubKey("Folder\\Shell", true); RegistryKey newkey = _key.CreateSubKey("My Menu Item"); newkey.SetValue("AppliesTo", "under:T:"); RegistryKey subNewkey = newkey.CreateSubKey("Command"); subNewkey.SetValue("", "C:\\yourApplication.exe"); subNewkey.Close(); newkey.Close(); _key.Close();