Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Здравствуйте, всех с Новым Годом! Здоровья, счастья и удачи.
__________________________

Столкнулся со следующей проблемой.
Делаю для себя набор программ - мелкие утилиты, ридеры, и прочее - в общем целая куча полезного разнообразия (чтобы при переустановке системы не тратить часы на поиск, установку и настройку). Часть программ 32-битные, другие 64/32-битные поэтому инсталлятор у меня работает в 32-битном режиме (как в Инно по умолчанию).

Проблема собственно заключается в том, что при установке на Windows 64 Inno setup отправляет записи в реестре в подпапку Wow6432Node и в связи с этим 64-битные программы работают некорректно.

Вот на примере программы Unlocker:
Строка реестра, отвечающая за язык программы (в моем случае русский):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker]
"Language"="1049"
(вот такая причуда разработчиков, что файл конфигурации языка считывается из информации для удаления) но речь в общем то не об этом.

В Инно я пишу такую строку:
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker; ValueType: string; ValueName: Language; ValueData: 1049; Flags: uninsdeletevalue uninsdeletekey

На выходе (в смысле в реестре ОС после инсталляции) имею:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Unlocker]
"Language"="1049"

В итоге Unlocker на английском языке (64-битный Unlocker)

Можно ли как нибудь заставить Inno не добавлять Wow6432Node в эту запись в реестре?

Отправлено: 15:03, 06-01-2015 | #2255