我想在註冊表中爲x64和x86編輯特定值(類型REG_SZ
),但SetValue方法不會更改x86的值。 x64工作正常。這是我的代碼:Registry.SetValue不適用於x86
RegistryKey regKeySpecific = RegistryKey.OpenBaseKey(
RegistryHive.LocalMachine, RegistryView.Registry32);
RegistryKey registryKey = regKeySpecific.OpenSubKey(
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FolderDescriptions\\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\\PropertyBag", true);
registryKey.SetValue("ThisPCPolicy", "Show", RegistryValueKind.String);
registryKey.Close();
我使用的第一行代碼的RegistryView.Registry32
參數改變86註冊表中的值,但是這是行不通的。
該問題已確定,但尚未解決。此代碼總是變化在64位(WOW6432Node)註冊表鍵值:
"SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FolderDescriptions\\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\\PropertyBag"
@HansPassant看看我的代碼。我正在使用RegistryKey.OpenBaseKey或者是否有錯? – Struct
好的,你爲什麼在使用Registry32的時候使用Registry32? Explorer是一個64位程序。最好的方法是讓程序也可以在64位模式下運行。右鍵單擊您的EXE項目>屬性>編譯選項卡>平臺目標= AnyCPU並且選擇32位未選中。 –
沒錯。但我想從資源管理器中刪除ThisPC文件夾。如果您使用Notepad ++等x86應用程序並打開文檔,則文件夾已存在。因此,我必須編輯x64和x86位置的密鑰 – Struct