Как установить значение реестра при нажатии кнопки отмены в проекте installscript?

Я использую проект InstallShield installscript.

Моя проблема в том, что я хочу установить раздел реестра при нажатии кнопки отмены в диалоговом окне «Подготовка к установке».

Я поместил приведенный ниже код в событие OnCanceling(). но он удаляет раздел реестра.

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

szKey = "Software\\Test\\Uniinst";
szName = "Cancel" ;
szValue = "1";
RegDBSetKeyValueEx ( szKey, szName, REGDB_NUMBER , szValue, -1 );

Подскажите пожалуйста что я делаю не так???


person user3152982    schedule 22.09.2014    source источник
comment
не рекомендуется модифицировать систему с немедленными пользовательскими действиями. почему ты хочешь сделать это? (может быть, мы можем предложить лучший метод)   -  person Bogdan Mitrache    schedule 23.09.2014


Ответы (1)


После долгих поисков я узнал, что ключевое слово «abort» в событии OnCanceling() вызывает тихую деинсталляцию. чтобы он удалил мою запись в реестре.

Чтобы предотвратить удаление реестра при удалении, я использовал Disable (Logging)...

его следует использовать непосредственно перед реестром, который мы не хотим удалять во время удаления. после этого мы должны использовать Enable(Logging)...

Наконец, используя эти два утверждения, мой код выглядит так...

Disable(Logging); //prevent registry deletion during Uninstallation

szKey = "Software\\Test\\Uniinst";
szName = "Cancel" ;
szValue = "1";
RegDBSetKeyValueEx ( szKey, szName, REGDB_NUMBER , szValue, -1 );

Enable(Logging);

Спасибо.....

person user3152982    schedule 23.09.2014