C# 如何在 Windows 文件系统中添加自定义右键菜单
2013-11-16 09:51
1131 查看
Healthy (2011) http://blog.sina.com.cn/s/blog_752ca76a0100y5yv.html (Available at 2013/11/16)
意图:在 Windows 文件系统中添加自定义的右键菜单项。
方法:通过改写注册表实现
一、给所有类型的文件添加自定义的右键菜单
HKEY_CLASSES_ROOT\*\shell
HKEY_CLASSES_ROOT\*\shell\自定义的菜单名
HKEY_CLASSES_ROOT\*\shell\自定义的菜单名\command
值名称:(默认) 类型:REG_SZ 数据:关联程序的完全限定名称
二、给所有文件夹添加自定义的右键菜单
HKEY_CLASSES_ROOT\Directory\shell
HKEY_CLASSES_ROOT\Directory\shell\自定义的菜单名
HKEY_CLASSES_ROOT\Directory\shell\自定义的菜单名\command
值名称:(默认) 类型:REG_SZ 数据:关联程序的完全限定名称
实现:C# WinForm
using Microsoft.Win32;
private void AddFileContextMenuItem(string itemName, string associatedProgramFullPath)
{
//创建项:shell
RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"*\shell",true);
if (shellKey == null)
{
shellKey = Registry.ClassesRoot.CreateSubKey(@"*\shell");
}
//创建项:右键显示的菜单名称
RegistryKey rightCommondKey = shellKey.CreateSubKey(itemName);
RegistryKey associatedProgramKey= rightCommondKey.CreateSubKey("command");
//创建默认值:关联的程序
associatedProgramKey.SetValue(string.Empty, associatedProgramFullPath);
//刷新到磁盘并释放资源
associatedProgramKey.Close();
rightCommondKey.Close();
shellKey.Close();
}
private void AddDirectoryContextMenuItem(string itemName, string associatedProgramFullPath)
{
//创建项:shell
RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"directory\shell", true);
if (shellKey == null)
{
shellKey = Registry.ClassesRoot.CreateSubKey(@"*\shell");
}
//创建项:右键显示的菜单名称
RegistryKey rightCommondKey = shellKey.CreateSubKey(itemName);
RegistryKey associatedProgramKey = rightCommondKey.CreateSubKey("command");
//创建默认值:关联的程序
associatedProgramKey.SetValue("", associatedProgramFullPath);
//刷新到磁盘并释放资源
associatedProgramKey.Close();
rightCommondKey.Close();
shellKey.Close();
}
Reference: http://msdn.microsoft.com/en-us/library/cc144148(VS.85).aspx
【正文结束】
意图:在 Windows 文件系统中添加自定义的右键菜单项。
方法:通过改写注册表实现
一、给所有类型的文件添加自定义的右键菜单
HKEY_CLASSES_ROOT\*\shell
HKEY_CLASSES_ROOT\*\shell\自定义的菜单名
HKEY_CLASSES_ROOT\*\shell\自定义的菜单名\command
值名称:(默认) 类型:REG_SZ 数据:关联程序的完全限定名称
二、给所有文件夹添加自定义的右键菜单
HKEY_CLASSES_ROOT\Directory\shell
HKEY_CLASSES_ROOT\Directory\shell\自定义的菜单名
HKEY_CLASSES_ROOT\Directory\shell\自定义的菜单名\command
值名称:(默认) 类型:REG_SZ 数据:关联程序的完全限定名称
实现:C# WinForm
using Microsoft.Win32;
private void AddFileContextMenuItem(string itemName, string associatedProgramFullPath)
{
//创建项:shell
RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"*\shell",true);
if (shellKey == null)
{
shellKey = Registry.ClassesRoot.CreateSubKey(@"*\shell");
}
//创建项:右键显示的菜单名称
RegistryKey rightCommondKey = shellKey.CreateSubKey(itemName);
RegistryKey associatedProgramKey= rightCommondKey.CreateSubKey("command");
//创建默认值:关联的程序
associatedProgramKey.SetValue(string.Empty, associatedProgramFullPath);
//刷新到磁盘并释放资源
associatedProgramKey.Close();
rightCommondKey.Close();
shellKey.Close();
}
private void AddDirectoryContextMenuItem(string itemName, string associatedProgramFullPath)
{
//创建项:shell
RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"directory\shell", true);
if (shellKey == null)
{
shellKey = Registry.ClassesRoot.CreateSubKey(@"*\shell");
}
//创建项:右键显示的菜单名称
RegistryKey rightCommondKey = shellKey.CreateSubKey(itemName);
RegistryKey associatedProgramKey = rightCommondKey.CreateSubKey("command");
//创建默认值:关联的程序
associatedProgramKey.SetValue("", associatedProgramFullPath);
//刷新到磁盘并释放资源
associatedProgramKey.Close();
rightCommondKey.Close();
shellKey.Close();
}
Reference: http://msdn.microsoft.com/en-us/library/cc144148(VS.85).aspx
【正文结束】
相关文章推荐
- 【操作系统-Windows】在文件右键菜单 发送 中添加自定义的目标文件夹
- C#+MFC添加修改windows窗口系统菜单(自定义系统菜单)
- 如何在Windows 7 64位系统下 添加UltraEdit到鼠标右键菜单( win7 64位 Ultraedit32 )
- 如何在Windows右键新建菜单中添加自定义项
- C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开删除文件
- Sublime Text2篇之如何在window中的右键菜单中添加用st2打开方式以及将st2添加至系统的环境变量
- Win7如何自定义鼠标右键菜单 添加新建EXCEL文档
- 如何在注册表禁用或打开windows系统右键菜单
- 给win8、win10系统添加自定义右键菜单项目
- 如何用程序实现增加二级windows文件右键菜单
- Win7如何自定义鼠标右键菜单 添加新建文本文档
- 如何将word等office文件添加到右键的新建菜单
- 如何自定义创建windows的右键弹出菜单(C++)
- Win7如何自定义鼠标右键菜单 添加新建WORD文档
- (C#)Windows Shell 外壳编程系列 - ContextMenu 注册文件右键菜单
- C#.NET常见问题(FAQ)-如何给Listbox添加右键菜单
- Win7如何自定义鼠标右键菜单 添加在此处打开CMD窗口
- Win7如何自定义鼠标右键菜单 添加新建WORD文档
- 如何添加程序到windows的鼠标右键菜单,
- Win10系统如何在右键菜单添加"管理员取得所有权