注冊表在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)


原文鏈接:https://blog.csdn.net/vawter_gu/article/details/50471139


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM