我想閱讀注冊表項\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName。
當我在注冊表編輯器中檢查密鑰時,我得到的值是“Window 10 Pro”。但是,當我在我的 c# 應用程式中讀取相同的鍵時,結果是“Window 10 Enterprise”任何想法可能是這種奇怪行為的原因嗎?
作業系統是Windows 10 64位版本,應用程式針對.NET Framework 4.6.1,在Visual Studio中構建的平臺是'Any CPU'。
我的應用程式中的代碼片段:
registryKey = Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows NT\CurrentVersion", false);
if (registryKey != null)
{
nameString = registryKey.GetValue("ProductName", "-Unknown-").ToString();
uj5u.com熱心網友回復:
我首先檢查以確保這兩件事實際上在同一臺計算機上運行。
否則,有一件事可以做到這一點。HKLM\Software 有一個名為WOW6432Node. 這里的“WOW”是指“Windows on Windows”。當舊的 32 位行程訪問注冊表以將查詢重定向到該部分時使用它,類似于Program FilesvsProgram Files (x86)檔案夾。所以一個 32 位行程訪問這里:
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
而是從這里讀取:
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\ProductName
但同樣:對于這個特定的鍵,這兩個專案具有不同的值確實很奇怪。
uj5u.com熱心網友回復:
一些附加資訊:這個問題和答案解釋了如何強制應用程式從 \HKEY_LOCAL_MACHINE\SOFTWARE\Key 而不是從 \HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Key 讀取:如何避免 wow6432node-redirection
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/415670.html
標籤:
