首頁 >後端開發 >C++ >32 位元應用程式如何存取 64 位元註冊表項?

32 位元應用程式如何存取 64 位元註冊表項?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-04 13:28:39403瀏覽

How Can a 32-bit Application Access 64-bit Registry Keys?

從32 位元應用程式存取64 位元登錄項目

在64 位元作業系統上執行時,OpenSubKey() 可能會失敗傳回對regedit.exe 中可見的登錄項目的參考。出現這種差異的原因是 32 位元應用程式預設檢查 HKLMSoftwareWow6432Node 分支而不是所需分支。

要存取64 位元版本的註冊表,請明確指定RegistryView 參數:

using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
using (var key = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"))
{
   // The key now points to the 64-bit subkey branch
}

此技術確保OpenSubKey() 函數以適當的註冊表分支為目標,提供對子項的存取

對於4.0 之前的.NET 版本,可能需要利用P/Invoke 才能與32位元應用程式中的 64 位元密鑰進行互動。有關此方法的詳細指南可在以下位置找到:http://www.rhyous.com/2011/01/24/how-read-the-64-bit-registry-from-a-32-bit-application-或 -反之亦然/

以上是32 位元應用程式如何存取 64 位元註冊表項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn