c# - 防止注册表项代码需要管理员权限

标签 c# wpf registry

在我的应用程序中,我试图通过使用以下代码添加注册表项来将我的应用程序设置为启动:

RegistryKey startupapp = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
startupapp.SetValue("App", "\"" + Assembly.GetExecutingAssembly().Location + "\"" +" -start");

但问题是只有当我以管理员身份运行我的应用程序时才会添加注册表。有什么办法可以避免这个问题,以便我的应用程序可以添加/删除启动应用程序的注册表项?

最佳答案

那是因为 HKLM 需要管理员权限才能写入。 HKCU 没有要求。

RegistryKey startupapp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

startupapp.SetValue("App", "\"" + Assembly.GetExecutingAssembly().Location + "\"" +" -start");

关于c# - 防止注册表项代码需要管理员权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9936698/

相关文章:

c# - 是否可以将异步方法声明为返回 void 以使 CS4014 警告静音?

c# - 我如何检测用户何时单击我的 slider 而不是统一滑动?

c# - 多设备架构

wpf - 在更新绑定(bind)源期间卡住 WPF 应用程序

c# - 如何以wpf形式捕捉窗口关闭按钮(窗口右上角的红色X按钮)事件?

c# - 如何根据 WPF/XAML 中的 ComboBox 值更改字体大小

c++ - 试图通过搜索注册表找到excel的路径

c# - 使用来自另一个 MEF 程序集的类而不引用它

docker - 如何登录jfrog容器注册中心?

docker - 启动dockerregistry后无法访问 `http://172.17.0.2:5000`