簡體   English   中英

Registry.GetValue()在x86配置中返回null,在x64中工作

[英]Registry.GetValue() returns null in x86 configuration, works in x64

using Microsoft.Win32;

...


  string keyname = "HKEY_LOCAL_MACHINE\\Software\\[REST_OF_PATH]
  string value = "ServiceAddress";
  string default = "";
  string stringValue = (string)Registry.GetValue(keyname, value, default);

在我的x64機器上,當我使用x64或AnyCPU進行構建時,這可以正常工作(在我的x64機器上),但是當使用x86配置進行構建時, stringValuenull

當我調用Registry.LocalMachine.OpenSubKey時,我得到類似的結果

是否有可能使它與x86構建一起使用?

32位注冊表存儲在Wow6432Node下。 您可能直接在HKEY_LOCAL_MACHINE下創建了注冊表項,這是注冊表的64位部分。 注冊表重定向器處理由32位應用程序執行的重定向注冊表操作。

如果希望從32位應用程序訪問注冊表的64位部分,則在打開密鑰時,需要將標志KEY_WOW64_64KEY0x0100 )與訪問權限一起傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM