我想在下面的注册表路径中为“ NoModify”设置一个值。
“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ XXXX”

我正在使用以下代码,它仅适用于X86机器。您能看到任何不适用于x64计算机的原因吗?

// This value is correct
RegistryView registryView = releaseFlags.Contains("PLATFORM_X86") ? RegistryView.Registry64 : RegistryView.Registry32;

    using (RegistryKey hkeyLocalMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, registryView))
    {
        RegistryKey noModifyKey = hkeyLocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{xxxx}", true); //SL: Key Name

        if (noModifyKey != null)
        {
            noModifyKey.SetValue("NoModify", 0);
            noModifyKey.Flush();
        }
    }

最佳答案

如果您使用的是64位计算机,而您的应用程序是32位,则应将这些设置存储在HKLM \ Software \ WOW6432Node而不是HKLM \ Software \节点中。

07-28 01:38