自己的程式寫入到登錄檔後,獲取不到值,重啟後也不行,但是獲取同目錄下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位