2017-09-28 74 views
1

アンインストール確認のプロンプトでNOをクリックしたときにイベントを処理することはできますか?Inno Setupでのアンインストールが成功した後のコード実行

enter image description here

そしてNOをクリックすると、)(DeinitializeUninstallを実行しませんか?

また、DeinitializeUninstall()関数からNOボタンを操作することはできますか?

は基本的に、私はここDelTreeを避けるために、習慣:

procedure DeinitializeUninstall(); 
begin 
    { if we are running in /SILENT mode, then this is an overinstall - } 
    { don't delete additional folder} 
    if not UninstallSilent() then 
    begin 
    DelTree(ExpandConstant('{#BSPLOC}'),True, True, True); 
    end; 
end; 

答えて

1

私はあなたのロジックが間違っていると信じています。 XY problemのように見えます。

"いいえ"を検出したいとは思いません。私は、アンインストール中またはアンインストール後にコードを実行したいと考えています。

要件に合ったイベント関数を使用してください。機能はCurUninstallStepChangedです。実行するコードが正確に必要なときには、対応する値がCurUninstallStepusUninstallusPostUninstallまたはusDone)であることを確認します。同様の質問について

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); 
begin 
    if CurUninstallStep = usDone then 
    begin 
    { ... } 
    end; 
end; 

、以下を参照してください


のNtb、また、アンインストーラかどうかを検出するために/SILENTスイッチを乱用しているようです自動的に実行されますいくつかのプロセス(アップグレード?)の一部として味方しています。ユーザーがアンインストーラを自動的に実行するとどうなりますか?自動実行を通知するために別のカスタムスイッチを追加する必要があります。しかしそれは別の質問です。

+0

迅速な対応をありがとう! DeinitializeUninstall()を削除し、CurUninstallStepChangedを使用して問題を解決しました。 乾杯! – Sale

+1

私は実際に答えを受け入れる方法を探していましたが、その目的のためにボタンに気付かなかったのです。解明してくれてありがとう! – Sale

関連する問題