首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为文件夹向Windows资源管理器添加上下文菜单项

如何为文件夹向Windows资源管理器添加上下文菜单项
EN

Stack Overflow用户
提问于 2013-12-08 02:52:14
回答 5查看 126.4K关注 0票数 140

通过向注册表添加键,我了解了如何将右键单击上下文菜单项添加到中的文件中。也就是说,我可以右键单击资源管理器中的文件,并针对该文件运行自定义应用程序。

我想对一个文件夹做同样的事情,但我还没有找到一种方法。我看到了关于创建/编写自定义上下文菜单处理程序的文章,但我不想去那里。

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

我希望能够将我的自定义应用程序添加到上下文菜单中,并让它同时工作在文件和文件夹上。有没有一种不需要编写上下文菜单处理程序就可以做到这一点的方法?

我在下面的文章中找到了解决方案,它描述了如何通过文件注册表和文件夹来实现这一点:

以下两篇文章提供了更多的信息和选择:

EN

回答 5

Stack Overflow用户

发布于 2015-04-21 10:13:24

在注册编辑器(regedit.exe)中找到:

  • 的上下文菜单:右键单击Windows左侧面板中的文件夹或右侧面板中某个目录的背景:
  1. HKEY_CLASSES_ROOT\Directory\Background\shell (如果您是管理员)
  2. 如果您是普通用户,则为HKEY_CURRENT_USER\Software\Classes\directory\Background\shell
  • 的上下文菜单:右键单击Windows右侧面板中的文件夹:
  1. HKEY_CLASSES_ROOT\Directory\shell (如果您是管理员)
  2. 如果您是普通用户,则为HKEY_CURRENT_USER\Software\Classes\directory\shell
  • 任何文件的上下文菜单:
  1. HKEY_CLASSES_ROOT\*\shell (如果您是管理员)
  2. 如果您是普通用户,则为HKEY_CURRENT_USER\Software\Classes\*\shell

在所有情况下:

  1. shell下添加一个新键,将其命名为要命名上下文菜单项
  2. 在该密钥中添加一个新密钥,名为command (强制名称)
  3. 编辑command中的myprogrampath\path\path\executable.exe "%1"属性,将所选文件的文件路径和名称传递给您的自定义程序(对于.../Directory/Background.../directory/Background情况,使用%V而不是%1)

更多定制:

  • 添加图标:添加一个名为icon的字符串值,用于在步骤1中创建的键,其值与图标资源路径匹配。您还可以提供一个整数参数来指定使用哪个图标。示例:%SystemRoot%\System32\shell32.dll,3
  • 仅在shift上显示-单击:为步骤1中创建的键添加一个名为Extended的空字符串值
  • 自定义菜单项标签:更改在步骤1中创建的键的默认值
  • 更改菜单条目位置:添加一个名为Position的字符串值,其中之一为:TopBottom
票数 279
EN

Stack Overflow用户

发布于 2019-05-17 12:15:08

找到一个更干净、更容易、更快捷的解决方案:创建一个文本文件,用这些内容填充它,根据您的需要更新它,用.reg后缀保存并启动它(它不需要管理员私密性,因为它访问用户-注册表的一部分):

代码语言:javascript
运行
复制
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文件保存在安全的位置即可。如果您在启动文件后手动编辑注册表,右键单击并选择“导出”。

小心路径中的双后置空间:\

票数 13
EN

Stack Overflow用户

发布于 2016-07-06 15:41:33

我还在另一个主题中回答了这个问题,因为在这个问题上似乎没有太多的内容。

我发现最简单的方法是向名为"AppliesTo“的键中添加字符串值,并将其值设置为”下面:{path}“。

在我的示例中,我希望它只查看T驱动器,所以我的字符串值是“AppliesTo”:“下面:t:”。

在C#中,这很容易通过以下方法实现:

代码语言:javascript
运行
复制
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();
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20449316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档