64bit系統下操作登錄檔的注意事項

2021-05-22 11:08:42 字數 2228 閱讀 2874

1、登錄檔位置

64bit

系統(windows server 2008 r2

只有64bit

系統)的登錄檔分

32 位登錄檔項和

64位登錄檔項兩部分。 在

64bit

系統下,通過

regedit

中檢視到指定路徑下的登錄檔項均為

64位登錄檔項,而

32位登錄檔項被重定位到:

hkey_local_machine/software/wow6432node。

應用程式操作登錄檔的時候也分

32bit

方式和64bit

方式。執行於

64bit

系統下的

32bit

應用程式預設操作

32位登錄檔項(即被重定向到

wow6432node

下的子項);而

64bit

應用程式才是操作的直觀子項。

比如,同在

64bit

系統下,使用如下**訪問登錄檔:

::regopenkeyex(hkey_local_machine, _t("software//sobey//mpc "), 0, key_all_access, &hkey)

如果應用程式為

32bit

子系統,那麼實際訪問的登錄檔位置為:

hkey_local_machine/software/wow6432node/sobey/mpc

(使用regedit

工具軟體對應的位置);

而如果應用程式為

64bit

子系統,那麼實際訪問的登錄檔位置將會是:

hkey_local_machine/software/sobey/mpc

(使用regedit

工具軟體對應的位置)。 2

、程式編寫

程式設計過程中,可以使用

key_wow64_64key

和key_wow64_32key

明確的指定操作

64位登錄檔項或者

32位登錄檔項。

例如,

在32bit

子系統應用程式中,可以用如下方式明確指定訪問

64bit

登錄檔項,程式**:

::regopenkeyex(hkey_local_machine, _t("software//sobey//mpc "), 0, key_all_access | key_wow64_64key, &hkey)

注意關鍵字

key_wow64_64key;

這種方式寫入的登錄檔項將會確切的位於位置:

hkey_local_machine/software/sobey/mpc

(使用regedit

工具軟體對應的位置)。 在

64bit

子系統應用程式中,可以用如下方式明確指定訪問

32bit

登錄檔項,程式**:

::regopenkeyex(hkey_local_machine, _t("software//sobey//mpc//test"), 0, key_all_access | key_wow64_32key, &hkey)

注意關鍵字

key_wow64_32key

這種方式寫入的登錄檔項將會確切的位於位置:

hkey_local_machine/software/wow6432node/sobey/mpc

(使用regedit

工具軟體對應的位置)。 3

、特別提醒

上述說明只針對

hkey_local_machine

主鍵而言,

hkey_current_user

主鍵下沒有類似情況;當訪問

hkey_current_user

主鍵時,明確指定

key_wow64_64key

和key_wow64_32key

標誌也沒有意義。

總之,盡可能使用

hkey_current_user

主鍵來儲存使用者配置吧。 4

、參考文件

如何通過使用 64 位版本 windows 檢視系統登錄檔

accessing an alternate registry view

registry redirector in x64 / ia64

64bit系統下操作登錄檔的注意事項

1 登錄檔位置 64bit 系統 windows server 2008 r2 只有64bit 系統 的登錄檔分 32位登錄檔項和 64位登錄檔項兩部分。在64bit系統下,通過regedit中檢視到指定路徑下的登錄檔項均為64位登錄檔項,而32位登錄檔項被重定位到 hkey local machi...

64bit作業系統的重定向

64位作業系統下拷貝檔案重定向問題 問題 installshield2009安裝包在win 7 x64安裝,需要把檔案複製到windows system32 下面 可是系統會自動複製到windows syswow64下面,查一下來是檔案自動轉向 原因 64位作業系統有自動重定向功能,即使寫死了拷貝到...

delphi下操控登錄檔的語句

delphi下操控登錄檔的語句 32位delphi程式中可利用tregistry物件來訪問登錄檔檔案中的資訊。一 建立和釋放tregistry物件 1.建立tregistry物件。為了操作登錄檔,要建立乙個tregistry物件 aregistry tregistry.create 2.釋放treg...