len*_*ant 4 inno-setup pascalscript
我可以找到某个实际的订单,在卸载期间执行哪些事件和部分?例如,是否UninstallDelete会比usPostUninstall卸载步骤更早出现?
Inno Setup在手册中有"安装顺序"一文,但它看起来更像是编译顺序,而不是执行.
卸载顺序与安装顺序相反,正如手册所说(并且它实际上是安装顺序,而不是编译顺序).
这只是因为没有编程的卸载顺序.安装程序将其步骤记录到卸载日志中,卸载程序只是以相反的顺序处理日志,而无需任何更改顺序的选项.
的事件的功能适合在卸载过程如下(仅示出了主要的卸载步骤):
CurUninstallStepChanged(usAppMutexCheck)InitializeUninstallProgressFormCurUninstallStepChanged(usUninstall)[UninstallRun][UninstallDelete]CurUninstallStepChanged(usPostUninstall)CurUninstallStepChanged(usDone)DeinitializeUninstall我在一个简单的安装程序上测试了这个:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
OutputDir=.
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
[UninstallRun]
FileName: "{app}\MyProg.exe"
[UninstallDelete]
Type: files; Name: "{app}\test.dat"
Run Code Online (Sandbox Code Playgroud)
卸载程序日志就像(它没有显示所有步骤):
[Code]
function InitializeUninstall(): Boolean;
begin
Log('InitializeUninstall');
Result := True;
end;
procedure InitializeUninstallProgressForm;
begin
Log('InitializeUninstallProgressForm');
end;
procedure DeinitializeUninstall;
begin
Log('DeinitializeUninstall');
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
Log('CurUninstallStepChanged + ' + IntToStr(Integer(CurUninstallStep)));
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2206 次 |
| 最近记录: |