2016-08-19 4 views
-1

Я использую экспресс-версию installshield 2010 для создания файла настроек приложения win32.Реестр в приложении win32 на машине x64

У меня возникли проблемы с регистрацией некоторых разделов реестра.

Я сконфигурировал проект installshield (.ise) для регистрации двух записей реестра, как показано ниже.

  1. [HKCU \ Software \ ProgName \ SomeKeys]
  2. [HKLM \ Software \ ProgName \ SomeKeys]

Когда я устанавливаю Thie установки на x64 машине, ключ HK записывает в Wow6432Node [HKLM \ Software \ Wow6432Node \ ProgName \ SomeKeys]. Это то, что я хочу.

BUT HKCU ничего не пишет для Wow6432Node. Он пишет [HKCU \ Software \ ProgName \ SomeKeys] не [HKCU \ Software \ Wow6432Node \ ProgName \ SomeKeys].

Почему возникла проблема.

Принесите мне любые советы. Спасибо

ответ

3

Это работает правильно, по дизайну со стороны Microsoft. Пожалуйста, прочитайте документацию 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

Обратите внимание, что на некоторых компьютерах * do * есть ключ 'HKCU \ Software \ Wow6432Node', но только из-за ошибки. Это не «настоящий» 32-разрядный узел, а обычный обычный ключ реестра, написанный программным обеспечением с жестко закодированным путем. –

+1

Согласовано. Некоторым людям по-прежнему трудно понять, что они должны * НИКОГДА не получать напрямую ключи Wow6432Node', они должны позволить редиректору реестра обрабатывать это от их имени, указав соответствующие флаги 32-битного/64-битного представления при открытии/создании ключей. –

+0

Каждый компьютер, который у меня есть, содержит этот ключ 'HKEY_CURRENT_USER \ SOFTWARE \ Wow6432Node \ Microsoft \ Active Setup', который заставляет меня усмехаться. Даже MS не может понять это правильно! –

 Смежные вопросы

  • Нет связанных вопросов^_^