我已经了解了如何通过向注册表添加密钥,在Windows资源管理器上向文件添加右键单击上下文菜单项。即我可以在资源管理器中右键单击一个文件,然后针对该文件运行自定义应用程序。
我想对一个文件夹做同样的事情,但还没有找到办法(尚未)。我看到有关创建/编写自定义上下文菜单处理程序的文章,但我宁愿不去那里。
我找到了一篇关于如何将级联上下文菜单项添加到桌面和资源管理器中的“计算机”的文章here,但这不适用于任何文件夹。
我希望能够将自定义应用程序添加到上下文菜单中,并使其适用于文件和文件夹。有没有办法在不编写上下文菜单处理程序的情况下执行此操作?
答案 0 :(得分:163)
在所有情况下:
icon
的字符串值,其值与图标资源路径匹配。您还可以提供整数参数以指定要使用的图标。示例:%SystemRoot%\System32\shell32.dll,3
Extended
的空字符串值Position
的字符串值,其中包含以下内容之一:Top
,Bottom
答案 1 :(得分:18)
我在下面的文章中找到了解决方案,该文章介绍了如何通过文件注册表以及文件夹来执行此操作:
以下两篇文章提供了其他信息和选项:
答案 2 :(得分:7)
我回去了,并在另一个topic中回答了这个问题,因为这个问题似乎没有特别多。
我发现最简单的方法是将一个字符串值添加到名为“AppliesTo”的键中,并将其值设置为“under:{path}”
在我的示例中,我希望它只查看T驱动器,因此我的String值为“AppliesTo”:“under: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();
答案 3 :(得分:0)
我发现一个真正有效的唯一好的解决方案是:https://superuser.com/questions/1097054/shell-context-menu-registry-extension-doesnt-work-when-default-program-is-other
在HKEY_CLASSES_ROOT \ SystemFileAssociations \ 您的扩展名 \ shell \ command中添加键 使用您想执行的命令修改最后一个键。
出于我的目的,它是:
"C:\Program Files (x86)\GPSBabel\gpsbabel.exe" -r -i gpx -f "%1" -x simplify,count=1000 -o gpx -F "%1.gpx"
如果我将其导出,则会得到一个.reg:
[HKEY_CLASSES_ROOT\SystemFileAssociations\.gpx\shell\Simplify gpx\command]
@="\"C:\\Program Files (x86)\\GPSBabel\\gpsbabel.exe\" -r -i gpx -f \"%1\" -x simplify,count=1000 -o gpx -F \"%1.gpx\""
答案 4 :(得分:0)
找到了一个更清洁,更轻松,更快速的解决方案:创建一个文本文件,将其填充这些内容,根据需要进行更新,使用.reg后缀保存并启动它(它不需要管理员特权,因为它可以访问用户部分注册表中的内容):
Windows Registry Editor Version 5.00
; Setup context menu item for click on right panel:
[HKEY_CURRENT_USER\Software\Classes\directory\Background\shell\MenuItemNameBackground\command]
@="C:\\yourpath\\executable.exe \"%1\""
; Optional: specify an icon for the item:
; HKEY_CURRENT_USER\Software\Classes\directory\Background\shell\MenuItemNameBackground]
;"icon"="C:\\yourpath\\appicon.ico"
; Optional: specify a position in the menu
; HKEY_CURRENT_USER\Software\Classes\directory\Background\shell\MenuItemNameBackground]
;"position"="Bottom"
; -------------------------------------------------------------------------------------
; Setup context menu item for click on folders tree item:
[HKEY_CURRENT_USER\Software\Classes\directory\shell\MenuItemNamePanel\command]
@="C:\\yourpath\\executable.exe \"%1\""
; Optional: specify an icon for the item:
; [HKEY_CURRENT_USER\Software\Classes\directory\shell\MenuItemNamePanel]
;"icon"="C:\\yourpath\\appicon.ico"
; Optional: specify a position in the menu
; [HKEY_CURRENT_USER\Software\Classes\directory\shell\MenuItemNamePanel]
;"position"="Top"
这样,您还可以备份配置:只需将.reg文件保存在安全的地方。如果您在启动文件后手动编辑注册表,请右键单击并选择“导出”。
当心路径中的双退格键:\\
答案 5 :(得分:0)
打开命令提示符[以管理员身份运行]并执行此命令
reg add "HKEY_CLASSES_ROOT\Directory\shell\Refi2\command" /d "powershell.exe -noexit -command Set-Location -literalPath '%V'"
有关更多功能的更多详细信息,请运行:-
reg add /?