c# vs登錄檔可以看到有項,但是隻能獲取其中一個,另外一個獲取不到

兮去發表於2024-03-19

自己的程式寫入到登錄檔後,獲取不到值,重啟後也不行,但是獲取同目錄下360Safe項就可以獲取到。

寫登錄檔的程式的目標平臺(x86/x64的那個)和當前這個獲取登錄檔資訊的程式目標平臺不一致導致。改用RegistryKey.OpenBaseKey方法獲取LocalMachine。如下:

RegistryKey advanced = null;
RegistryKey LM32 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
advanced = LM32.OpenSubKey(_advancedPath);
RegistryKey LM64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
advanced = LM64.OpenSubKey(_advancedPath);

感謝這個大佬的回答C#利用Registry和RegistryKey獲取不到自己設定登錄檔Local_Machine裡的值_博問_部落格園 (cnblogs.com)  

但是還是不明白在哪裡去看我寫的註冊項是屬於32位還是64位

相關文章