のコマンドを実行するためにアンインストールする必要があります。の後に、インストールしたファイルが削除されます。 [UninstallRun]は、ファイルが削除される前に実行されることを理解しているので、無駄です。 私は「postuninstall」フラグが必要です。アンインストール後にコマンドを実行する
私は上記をどのように達成することができますか?
のコマンドを実行するためにアンインストールする必要があります。の後に、インストールしたファイルが削除されます。 [UninstallRun]は、ファイルが削除される前に実行されることを理解しているので、無駄です。 私は「postuninstall」フラグが必要です。アンインストール後にコマンドを実行する
私は上記をどのように達成することができますか?
ドキュメントの「Uninstall Event Functions」を参照してください。 'CurUninstallStep'が 'usPostUninstall'の場合、例えばCurUninstallStepChanged
を使用できます。
Innoでは[実行]セクションと同じ方法で、[UninstallRun]セクションを定義して、インストーラーパッケージのどのファイルをunistallで実行するかを指定することができます。例えば
:
[UninstallRun]
Filename: {app}\Scripts\DeleteWindowsService.bat; Flags: runhidden;
あるいは、イベント関数の使用が細くもう少しunistallingアクションのために使用することができるなり@Sertac Akyuz、によって提案された解決策。 CurUninstallStepChanged関数の使用例を次に示します。
https://github.com/HeliumProject/InnoSetup/blob/master/Examples/UninstallCodeExample1.iss
; -- UninstallCodeExample1.iss --
;
; This script shows various things you can achieve using a [Code] section for Uninstall
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
OutputDir=userdocs:Inno Setup Examples Output
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
[Code]
function InitializeUninstall(): Boolean;
begin
Result := MsgBox('InitializeUninstall:' #13#13 'Uninstall is initializing. Do you really want to start Uninstall?', mbConfirmation, MB_YESNO) = idYes;
if Result = False then
MsgBox('InitializeUninstall:' #13#13 'Ok, bye bye.', mbInformation, MB_OK);
end;
procedure DeinitializeUninstall();
begin
MsgBox('DeinitializeUninstall:' #13#13 'Bye bye!', mbInformation, MB_OK);
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
case CurUninstallStep of
usUninstall:
begin
MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall is about to start.', mbInformation, MB_OK)
// ...insert code to perform pre-uninstall tasks here...
end;
usPostUninstall:
begin
MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall just finished.', mbInformation, MB_OK);
// ...insert code to perform post-uninstall tasks here...
end;
end;
end;
OPは、[[UninstallRun] 'がインストール順序のために適切でないことを明示していました。 – Deanna
ガッチャ - 多くの感謝! – eyoopmeduck
@eyoopmeduck - それがあなたの問題を解決したら、答えを受け入れるべきです - 答えの横にある大目盛り/チェックマークを使います。 – Vicky
申し訳ありません - これは私の最初の質問です。マークに感謝します。 – eyoopmeduck