2013-11-04 39 views
5

誰能告訴我爲什麼我無法訪問註冊表項"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData"訪問HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Installer UserData

如果我查詢GetSubKeysNames"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer"它只返回一個值是"Secure" ---->所有其他子項在哪裏?

謝謝。

+1

請張貼幾行代碼。你如何構建你的RegistryKey實例? – helb

+1

真正的問題是「你爲什麼要訪問註冊表項HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData'?」該信息是內部OS數據。 –

回答

12

在64位版本的Windows上運行程序的可能性很高,並且它被迫在32位模式下運行。註冊表重定向程序將使您實際讀取HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node中的鍵。是的,那個也有Microsoft \ Windows \ CurrentVersion \ Installer鍵,但它非常空。使用Regedit.exe進行比較。

最簡單的解決方法是刪除強制。 Project + Properties,Build選項卡,將目標平臺設置設置爲AnyCPU。如果您有VS2012及以上版本,請取消選擇「首選32位」選項。重複發佈配置。如果您的必須以32位模式運行,那麼您可以使用.NET 4+ RegistryKey.OpenBaseKey()方法傳遞RegistryView.Registry64。

相關問題