Как добавить реестр в 64-битную область через функцию Install Script?

Многие разработчики InstallShield сомневаются, как добавить реестр в 64-битную область с помощью функции IstallScript в InstallShield.

Если наш установщик - 32-битный EXE, и если мы устанавливаем этот установщик на 64-битную машину, то все функции RegDB указывают на область реестра Wow6432Node. Но часто нам приходится добавлять реестр в 64-битную область с помощью 32-битного установщика. Итак, как мы можем этого добиться?

Например, Если я выполняю следующий код в InstallScript.

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
RegDBCreateKeyEx("SOFTWARE\\XYZ", "");

Я хочу добавить эту запись в реестр под HKLM\SOFTWARE\XYZ. Но эта запись добавляется под HKLM\SOFTWARE\Wow6432Node\XYZ.

Тогда какое решение добавить этот реестр в 64-битную область?


person Ajit Medhekar    schedule 21.04.2016    source источник


Ответы (1)


Есть два решения для реализации этого сценария.

Первое решение:

Мы можем создать компонент, сделать его 64-битным и добавить запись реестра под ним в InstallShield.

Второе решение:

Если мы хотим добавить реестр, который не зависит от какого-либо компонента, мы можем использовать REGDB_OPTIONS.

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
REGDB_OPTIONS = REGDB_OPTION_WOW64_64KEY;
RegDBCreateKeyEx("SOFTWARE\\XYZ", "");

Это добавит реестр в 64-битную область.

person Ajit Medhekar    schedule 21.04.2016