![](/img/trans.png)
[英]How to create custom registry key 'Programmable' targeted on 64bit OS with VS2010 registry editor
[英]Registry API 32 vs 64bit, and VS2010 setup
我們有一個使用幾個注冊表項的.net 4.0應用程序,以及一個在安裝程序中創建這些項的vs2010安裝和部署項目
問題-(默認)RegEdit顯示鍵存在,但.net代碼在OpenSubKey上使用正確的路徑(包括\\)返回null
事實證明,這是由於每個KB305097的 32和64位注冊表
並且需要諸如
RegistryKey someFunc()
{
var r64o32 = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine,
Environment.Is64BitOperatingSystem ? RegistryView.Registry64 :
RegistryView.Registry32);
return r64o32.OpenSubKey(regKey);
}
但是我無法測試上面的代碼,因為我沒有可用的32位計算機,但是該應用程序也需要在32位計算機上可用
所以尋求幫助-
使用OpenBaseKey
,不需要在RegistryView
上做特殊的大小寫,這是在詢問注冊表的特定視圖,而不管您如何編譯應用程序
RegistryKey r = Microsoft.Win32.RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
RegistryView.Registry64);
還請記住,如果您使用的是32位計算機,則OpenBaseKey將僅回退到Registry32
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.