2013-06-27 146 views
2

我在Windows x64的註冊表中遇到問題。我需要通過file.reg增加值:在32位和64位Windows上的註冊表

REGEDIT4 

[HKEY_LOCAL_MACHINE\SOFTWARE\My Soft] 
"Str1" = "Assa" 
"Str2" = "142Z5214GGAAVGA" 

在代碼中,我做的:

RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\My Soft", 0,NULL,0, KEY_READ | KEY_WOW64_64KEY,NULL,&hKey,&dwDis)) 
/* 
Get the value by RegQueryValueEx... 
*/ 

在32位Windows是好的。在一個64位的值是空的。

PS: 由谷歌對不起,我的英語翻譯^ _^

+0

你說你需要獲得一個值,但是你要調用'RegCreateKeyEx'。你真的需要去創造​​它嗎?如果是這樣,它可能是在HKLM/Software/Wow6432Node中創建的。 –

+1

您是否嘗試刪除KEY_WOW64_64KEY標誌?這將重定向到64位平臺上的其他註冊表位置。 [Here](http://msdn.microsoft.com/en-us/library/windows/desktop/aa384232(v = vs.85).aspx),你可以找到更多信息。 – StatusReport

+0

Project + Properties,Build選項卡,取消選中VS2012上的「首選32位」複選框,將平臺目標更改爲AnyCPU。 –

回答

0

你說你需要得到一個值,但你打電話RegCreateKeyEx。你究竟需要創建嗎?如果是這樣,它可能是在HKLM/Software/Wow6432Node中創建的。

+0

謝謝!使用'RegOpenKeyEx'它工作! – scroollocker

0

你試過HKEY_LOCAL_MACHINE\Software\WOW6432Node

64位版本的Windows中包含的默認64位版本的註冊表編輯器(Regedit.exe)顯示64位密鑰和32位密鑰。 WOW64註冊表重定向程序爲32位程序註冊表項提供具有不同鍵的32位程序。在64位版本的註冊表編輯器中,32位密鑰顯示在以下注冊表項下。

Source