我想写这个注册表
SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run
我试过了:
RegistryKey registryKey64 = RegistryKey
.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
.OpenSubKey("SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run");
registryKey64.SetValue("CTIPopupForIPPhone", Application.ExecutablePath);
我得到了这个例外:
未处理的类型' System.UnauthorizedAccessException'发生在mscorlib.dll
其他信息:无法写入注册表项。
虽然我以管理员身份运行Visual Studio。
在开发过程中,我也试过
RegistryKey registryKey = Registry.CurrentUser
.OpenSubKey("SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", true);
但我收到的错误是该条目不存在虽然 ,但我认为这是因为RegistryKey
适用于Windows 32位而不是64位。
答案 0 :(得分:2)
这对我有用,
RegistryKey registryKey64 = RegistryKey
.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
.OpenSubKey("SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", true);
新变量true
同时对注册表项进行读写以允许它们。