如何将上下文菜单项添加到Windows资源pipe理器文件夹
我已经find了如何通过向registry添加registry项来将右键单击上下文菜单项添加到Windows资源pipe理器上的文件。 即我可以右键单击资源pipe理器中的文件,并针对该文件运行自定义应用程序。
我想为文件夹做同样的事情,还没有find一种方法来做到这一点(还)。 我看到有关创build/编写自定义上下文菜单处理程序的文章,但我宁愿不去那里。
我在这里find了一篇关于如何将级联上下文菜单项添加到桌面和浏览器中的“计算机”的文章,但是这对任何文件夹都不起作用。
我希望能够将我的自定义应用程序添加到上下文菜单,并使其在文件和文件夹上工作。 有没有办法做到这一点,而不写一个上下文菜单处理程序?
上下文菜单用于右键单击 Windows资源pipe理器左侧面板中的文件夹或右侧面板中目录的背景上:
- 如果你是pipe理员, HKEY_CLASSES_ROOT \ Directory \ Background \ shell
- HKEY_CURRENT_USER \ Software \ Classes \ directory \ Background \ shell如果您是普通用户
上下文菜单右键单击 Windows资源pipe理器右侧面板中的文件夹 :
- 如果您是pipe理员,则HKEY_CLASSES_ROOT \ Directory \ shell
- HKEY_CURRENT_USER \ Software \ Classes \ directory \ shell(如果您是普通用户)
任何文件的上下文菜单:
- 如果你是pipe理员, HKEY_CLASSES_ROOT \ * \ shell
- HKEY_CURRENT_USER \ Software \ Classes \ * \ shell如果您是普通用户
在所有情况下:
- 在“shell”下添加一个新的密钥,并将其命名为您想命名的上下文菜单项
- 在这个键里添加一个新的键,名为command (强制名)
- 编辑“命令”中的“默认”属性到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值:Top
,Bottom
我在下面的文章中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();