我希望我的安装应该是静默的,而不需要用户点击任何 Next 或 Install 按钮。我试图禁用所有页面,我正在获取“准备安装”页面。我想避免这个安装页面。
答案 0 :(得分:2)
要运行Inno Setup内置的安装程序而不与用户进行任何交互,甚至没有任何窗口,请使用/SILENT
or /VERYSILENT
command-line parameters:
指示安装程序保持沉默或非常安静。安装程序静默时,不显示向导和后台窗口,但安装进度窗口为。当设置非常安静时,不会显示此安装进度窗口。其他一切都是正常的,例如显示安装过程中的错误消息并启动提示符(如果您没有使用DisableStartupPrompt或上面解释的'/ SP-'命令行选项禁用它)。
您也可以考虑使用/SUPPRESSMSGBOXES
参数。
如果您想使用任何其他命令行开关“静默”运行安装程序,您可以:
ShouldSkipPage
event function跳过大多数页面。ShouldSkipPage
无法跳过)。您可以使用Inno Setup - How to close finished installer after a certain time? [Files]
Source: "InnoCallback.dll"; Flags: dontcopy
[Code]
type
TTimerProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord;
external 'SetTimer@User32.dll stdcall';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord;
external 'KillTimer@User32.dll stdcall';
function WrapTimerProc(Callback: TTimerProc; ParamCount: Integer): LongWord;
external 'wrapcallback@files:InnoCallback.dll stdcall delayload';
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, WrapTimerProc(@SubmitPageProc, 4));
end
else
begin
if SubmitPageTimer <> 0 then
begin
KillSubmitPageTimer;
end;
end;
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := True;
end;
代码使用InnoTools InnoCallback库来实现计时器。
另一种方法是将CN_COMMAND
发送到下一步按钮,如下所示:How to skip all the wizard pages and go directly to the installation process?