[转]C# 注册自己的右键菜单 (文件夹/文件)

一个小小的例子, 演示了如何通过操作注册表, 添加自己的文件或文件夹右键菜单.

 
  
// 添加到注册表
private void btnRegister_Click( object sender, EventArgs e)
{
if ( this .tbMenuTitle.Text.Length == 0 ) return ;

// 注册到文件
if ( this .ckRegToFile.Checked)
{
RegistryKey shell
= Registry.ClassesRoot.OpenSubKey( " * " , true ).OpenSubKey( " shell " , true );
if (shell == null ) shell = Registry.ClassesRoot.OpenSubKey( " * " , true ).CreateSubKey( " shell " );
RegistryKey custome
= shell.CreateSubKey( this .tbMenuTitle.Text);
RegistryKey cmd
= custome.CreateSubKey( " command " );
cmd.SetValue(
"" , Application.ExecutablePath + " %1 " );
cmd.Close();
custome.Close();
shell.Close();
}

// 注册到文件夹
if ( this .ckRegToDir.Checked)
{
RegistryKey shell
= Registry.ClassesRoot.OpenSubKey( " directory " , true ).OpenSubKey( " shell " , true );
if (shell == null ) shell = Registry.ClassesRoot.OpenSubKey( " directory " , true ).CreateSubKey( " shell " );
RegistryKey custome
= shell.CreateSubKey( this .tbMenuTitle.Text);
RegistryKey cmd
= custome.CreateSubKey( " command " );
cmd.SetValue(
"" , Application.ExecutablePath + " %1 " );
cmd.Close();
custome.Close();
shell.Close();
}
MessageBox.Show(
" 注册成功! " , " 提示 " );
}

// 反注册
private void btnUnRegister_Click( object sender, EventArgs e)
{
RegistryKey shell
= Registry.ClassesRoot.OpenSubKey( " * " , true ).OpenSubKey( " shell " , true );
if (shell != null ) shell.DeleteSubKeyTree( this .tbMenuTitle.Text);

shell
= Registry.ClassesRoot.OpenSubKey( " directory " , true ).OpenSubKey( " shell " , true );
if (shell != null ) shell.DeleteSubKeyTree( this .tbMenuTitle.Text);

shell.Close();

MessageBox.Show(
" 反注册成功! " , " 提示 " );
}



另外一个例子codeproject上的:

 http://www.codeproject.com/KB/cs/appendmenu.aspx?msg=3335190#xx3335190xx

转载于:https://www.cnblogs.com/jjj250/archive/2011/05/26/2059046.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值