Pri*_*iyu 7 inno-setup pascalscript
我希望我的安装应该是静默的,用户无需单击任何“下一步”或“安装”按钮。我仍然尝试禁用所有页面,但我收到了“准备安装”页面。我想避免这个安装页面。
要运行 Inno Setup 中内置的安装程序而不与用户进行任何交互,甚至没有任何窗口,请使用/SILENT或/VERYSILENT命令行参数:
指示安装程序保持安静或非常安静。当安装程序处于静默状态时,不会显示向导和背景窗口,但会显示安装进度窗口。当安装非常安静时,不会显示此安装进度窗口。其他一切都正常,例如安装过程中会显示错误消息,启动提示也会显示(如果您没有使用上面解释的 DisableStartupPrompt 或“/SP-”命令行选项禁用它)。
您也可以考虑使用该/SUPPRESSMSGBOXES参数。
如果您想让安装程序“静默”运行而无需任何额外的命令行开关(在我看来这是非常错误的方法),您可以:
ShouldSkipPage事件功能可以跳过大多数页面。ShouldSkipPage)。您可以使用如何在一段时间后关闭已完成的 Inno Setup 安装程序?中所示的技术。[Code]
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := True;
end;
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord;
external 'SetTimer@User32.dll stdcall';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord;
external 'KillTimer@User32.dll stdcall';
var
SubmitPageTimer: LongWord;
procedure KillSubmitPageTimer;
begin
KillTimer(0, SubmitPageTimer);
SubmitPageTimer := 0;
end;
procedure SubmitPageProc(
H: LongWord; Msg: LongWord; IdEvent: LongWord; Time: LongWord);
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
KillSubmitPageTimer;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpReady then
begin
SubmitPageTimer := SetTimer(0, 0, 100, CreateCallback(@SubmitPageProc));
end
else
begin
if SubmitPageTimer <> 0 then
begin
KillSubmitPageTimer;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
对于CreateCallback函数,您需要 Inno Setup 6。如果您无法使用 Inno Setup 5,您可以使用InnoTools InnoCallbackWrapCallback库中的函数。
另一种方法是发送CN_COMMAND到“下一步”按钮,如下所示:如何跳过所有向导页面并直接进入安装过程?
另一种选择(有其自身的注意事项)是使用开关重新生成安装程序/[VERY]SILENT。您可以使用此处描述的技术:
Inno Setup 在安装程序中指定日志名称
对于具有不同答案的类似问题,请参阅如何使用 Inno Setup 进行静默安装?
| 归档时间: |
|
| 查看次数: |
7910 次 |
| 最近记录: |