2016-08-19 105 views
-1

我使用installshield 2010 express版本來製作win32應用程序的安裝文件。在x64機器上的win32應用程序的註冊表

我有一些問題需要註冊一些註冊表項。

我配置了installshield項目(.ise)來註冊兩個註冊表項如下。

  1. [HKCU \ SOFTWARE \ PROGNAME \ SomeKeys]
  2. [HKLM \ SOFTWARE \ PROGNAME \ SomeKeys]

當我在x64機器上安裝thie設置,香港關鍵寫入Wow6432Node [HKLM \ SOFTWARE \ Wow6432Node \ PROGNAME \ SomeKeys。這正是我想要的。

但是HKCU不會寫任何東西給Wow6432Node。 它寫在[HKCU \ Software \ ProgName \ SomeKeys]不是[HKCU \ Software \ Wow6432Node \ ProgName \ SomeKeys]。

爲什麼會出現問題。

請給我任何建議。謝謝

回答

3

這是工作正常,微軟的設計部分。請參閱MSDN文檔:

Registry Redirector

重定向鍵Wow6432Node下映射到物理位置。

Registry Keys Affected by WOW64

在WOW64,某些註冊表項重定向。當32位或64位應用程序針對重定向的鍵進行註冊表調用時,註冊表重定向程序會攔截該調用並將其映射到鍵的相應物理註冊表位置。有關更多信息,請參閱Registry Redirector

其他註冊表項是由32位和64位應用程序在64位Windows上共享共享。對共享密鑰的32位註冊表調用不會重定向。而是將密鑰的一個物理副本映射到註冊表的每個邏輯視圖中。下方HKCU\Software

用戶定義的子項是共享,所以沒有Wow6432Node子項他們。

HKLM\Software下面的用戶定義密鑰是重定向,所以他們有一個Wow6432Node子密鑰。

+2

請注意,有些電腦*有* HKCU \ Software \ Wow6432Node'鍵,但只是因爲一個錯誤。它不是一個「真正的」32位節點,只是一個由硬編碼路徑的軟件編寫的普通註冊表鍵。 –

+1

同意。有些人仍然很難理解他們應該直接訪問'Wow6432Node'鍵,他們應該讓Registry Redirector代表他們處理它,通過在打開/創建鍵時指定適當的32位/ 64位視圖標誌。 –

+0

我每臺計算機都包含這個鍵HKEY_CURRENT_USER \ SOFTWARE \ Wow6432Node \ Microsoft \ Active Setup',這讓我笑了起來。即使MS不能得到這個權利! –

相關問題