Ama*_*nth 2 pascal inno-setup uninstallation
我有 Inno Setup 卸载程序的问题。我有一个 exe 文件,我想执行它以跟踪安装和卸载。exe 非常简单,它会向服务器发送消息。
[Files]
Source: "Tracker\LocalSandboxInstallTracker.exe"; DestDir: "{app}/Tracker";
Source: "Tracker\LocalSandboxInstallTracker.exe.config"; DestDir: "{app}/Tracker";
Source: "Tracker\Tracker.Client.dll"; DestDir: "{app}/Tracker";
[Run]
Filename: "{app}\Tracker\LocalSandboxInstallTracker.exe"; Parameters: " {#MyAppVersion} install"; Flags: runhidden; StatusMsg: "Sending tracking data..."
[Code]
procedure InitializeUninstallProgressForm();
var
ResultCode: Integer;
begin
Exec ('{app}\Tracker\LocalSandboxInstallTracker.exe',' {#MyAppVersion} uninstall','',SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;
Run Code Online (Sandbox Code Playgroud)
安装时的调用效果很好,但卸载时则不行。我在我的 Exec 命令上放置了一个断点,它确实通过了那里,但似乎没有调用 exe。
您必须先扩展{app}常量,然后再将其传递给Exec脚本函数。使用ExpandConstant时,你需要得到常量的值。以这种方式修改您的脚本:
Exec(ExpandConstant('{app}\Tracker\LocalSandboxInstallTracker.exe'),
'{#MyAppVersion} uninstall', '', SW_SHOW,
ewWaitUntilTerminated, ResultCode);
Run Code Online (Sandbox Code Playgroud)
此外,您应该检查函数结果和输出结果代码,以便在Exec函数失败时做出反应。您将获得的错误代码ResultCode可以根据System Error Codes参考进行检查或用于SysErrorMessage(ResultCode)从脚本中获取错误描述。
| 归档时间: |
|
| 查看次数: |
3710 次 |
| 最近记录: |