2014-09-22 3 views
2

Я использую InstallShield installscript проект.Как установить значение реестра, когда кнопка отмены нажата в проекте installscript?

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

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

RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);

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

Пожалуйста, дайте мне знать, что я делаю неправильно ???

+0

его не рекомендуется изменить систему с помощью немедленных пользовательских действий. почему ты хочешь сделать это? (может быть, мы можем предложить лучший метод) –

ответ

2

После многого поиска я узнал, что ключевое слово «прервать» в событии 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); 

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