我正在研究如何在我的应用程序中添加 Windows 上下文菜单中的快捷方式。我偶然发现了这篇文章并尝试了它。这是它用于在注册表中创建密钥的代码。
private void btnAddMenu_Click(object sender, System.EventArgs e)
{
RegistryKey regmenu = null;
RegistryKey regcmd = null;
try
{
regmenu = Registry.ClassesRoot.CreateSubKey(MenuName);
if(regmenu != null)
regmenu.SetValue("",this.txtName.Text);
regcmd = Registry.ClassesRoot.CreateSubKey(Command);
if(regcmd != null)
regcmd.SetValue("",this.txtPath.Text);
}
catch(Exception ex)
{
MessageBox.Show(this,ex.ToString());
}
finally
{
if(regmenu != null)
regmenu.Close();
if(regcmd != null)
regcmd.Close();
}
}
问题是如果我通过我的管理员帐户运行它,它工作正常。但是,当我通过没有管理员权限的其他帐户执行此操作时,它会引发此异常。
system.unauthorizedaccessexception access to the registry key is denied
现在,如果我要在自己的一个应用程序中使用此代码在上下文菜单中创建快捷方式,我不能确定每个用户都会以管理员身份运行它,对吧?
在创建注册表项时,C# 中是否有任何方法可以提升用户权限?
如果您知道将项目添加到 Windows 上下文菜单的任何其他方式,我也会对它们感兴趣。
谢谢你。