无法使用.NET C#

时间:2015-10-17 15:34:34

标签: c# .net 64-bit registry

我想写这个注册表

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位。

1 个答案:

答案 0 :(得分:2)

这对我有用,

RegistryKey registryKey64 = RegistryKey
    .OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
    .OpenSubKey("SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", true);

新变量true同时对注册表项进行读写以允许它们。