如何獲取64位系統中的HKLM \ SOFTWARE中的子項列表?使用64位系統上的註冊表。 framework 2.0
P.S.如果我使用 Registry.LocalMachine.OpenSubKey("SOFTWARE\\", false)
後來我在HKLM \ SOFTWARE \得到Wow6432Node
我可以使用.NET Framework不大於2.0
如何獲取64位系統中的HKLM \ SOFTWARE中的子項列表?使用64位系統上的註冊表。 framework 2.0
P.S.如果我使用 Registry.LocalMachine.OpenSubKey("SOFTWARE\\", false)
後來我在HKLM \ SOFTWARE \得到Wow6432Node
我可以使用.NET Framework不大於2.0
答案似乎更高相當複雜,而且很可能太多的代碼放在這裏堆棧溢出。
總之,您需要P/Invoke來訪問RegOpenKeyEx的本機Windows API調用,並確保傳入標誌KEY_WOW64_64KEY以始終訪問64位註冊表。 (KEY_WOW64_32KEY是始終訪問32位的標誌)
部分解決方案已發佈在this blog entry上。對於任何可以運行.NET 4.0的人,那麼你可以使用新的支持:RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,RegistryView.Registry64);
您將獲得註冊表,以查看您的應用在其上運行或編譯的任何結構。 如果你的目標是x86,那麼你將永遠在64位機器上獲得32位註冊表(「Wow6432Node」)。 如果您的目標是AnyCPU,那麼您將獲得機器架構的真正軟件節點。