2014-09-22 76 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

它不是建議使用即時自定義操作修改系統。你爲什麼想這樣做? (也許我們可以建議一個更好的方法) – 2014-09-23 04:40:25

回答

2

在搜索了很多後,我才知道OnCanceling()事件中的「中止」關鍵字調用靜默卸載。以便它刪除我的註冊表項。

爲了防止註冊表的刪除卸載從我使用禁用(日誌)......

應該只是我們不想卸載過程中刪除註冊表之前使用。 之後,我們必須使用啓用(日誌)......

最後,使用這兩個聲明我的代碼看起來像這樣...

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

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

Enable(Logging); 

感謝.....

相關問題