gpt4 book ai didi

inno-setup - 如何在没有提示的情况下正确关闭 Inno Setup 向导?

转载 作者:行者123 更新时间:2023-12-04 02:08:28 31 4
gpt4 key购买 nike

我的安装程序的一部分会检查我们服务器上的最新版本,并在必要时自动下载,就在欢迎页面之后。实际的检查和下载在函数 CheckForNewInstaller 中进行,如果新安装程序已下载并执行,则返回 True,如果需要继续,则返回 False .如果下载了新的安装程序(True),则需要关闭向导。

使用以下代码,我使用 WizardForm.Close 完成了此操作。但是,如果用户确定要取消,它仍会提示用户。在正常情况下,我仍然希望用户在尝试关闭安装程序时收到此提示。但是,当我需要强行关闭向导时,我需要禁止显示此对话框。我也不能终止该过程,因为清理过程不会正常进行。

function NextButtonClick(CurPageID: Integer): Boolean;
var
ResultCode: Integer;
X: Integer;
begin
Log('NextButtonClick(' + IntToStr(CurPageID) + ') called');
Result := True;
case CurPageID of
wpWelcome: begin
if CheckForNewInstaller then begin
//Need to close this installer as new one is starting
WizardForm.Close;
end;
end;
....
end;
end;

如何在没有任何进一步的用户交互的情况下完全关闭此安装程序?

最佳答案

这可以通过处理 CancelButtonClick 事件并设置 Confirm 参数来完成...

var
ForceClose: Boolean;

procedure Exterminate;
begin
ForceClose:= True;
WizardForm.Close;
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:= not ForceClose;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
ResultCode: Integer;
X: Integer;
begin
Log('NextButtonClick(' + IntToStr(CurPageID) + ') called');
Result := True;
case CurPageID of
wpWelcome: begin
if CheckForNewInstaller then begin
Exterminate;
end;
end;
....
end;
end;

关于inno-setup - 如何在没有提示的情况下正确关闭 Inno Setup 向导?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21737462/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com