註冊表在64位操做系統下

使用RegOpenKeyEx打開HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run  成功,RegQueryValueEx 失敗。

又隨便換了幾個位置的鍵讀取,一樣的代碼有的成功,有的失敗。逐一確認不知權限的問題。

網上找了半天,原來是64位系統的註冊表結構和32位略有不一樣。

好比:

32位  HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\

64位 HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\

路徑被映射到wow6432node下,若是恰巧32位同路徑下值相同,就能夠順利取到值。

打開註冊表編輯器互相比較一下,就很容易明白了。


64位讀取32位註冊表路徑要在RegOpenKeyEx時加上KEY_WOW64_64KEY參數。

RegOpenKeyEx(HKEY_LOCAL_MACHINE,

"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",

0,

KEY_QUERY_VALUE|KEY_WOW64_64KEY,

&hkey)node


原文連接:https://blog.csdn.net/vawter_gu/article/details/50471139編輯器

相關文章
相關標籤/搜索