在我的应用程序中,我试图通过使用以下代码添加注册表项来将我的应用程序设置为启动:
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/