inno-setup - 如何跳过所有向导页面,直接进入安装过程?

标签 inno-setup

目前,我在安装程序中使用了 3 个向导页面(准备安装、安装和完成页面)。

我想让这个过程尽可能简单,所以我想把它减少到只有 2 页(安装和完成页面)。

有没有办法在安装程序启动时跳过所有向导页面并直接进入安装过程?

最佳答案

正确的方法是通过以下指令禁用所有页面:

DisableWelcomePage=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes

但是,即使您这样做,准备好的页面仍会显示。我试图找到一种如何正确跳过此页面并直接进入安装步骤但没有成功的方法。我还没有检查里面发生了什么,但到目前为止,我找到了一种解决方法,将点击通知消息发布到触发点击事件并移动到安装过程的下一个按钮:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DisableWelcomePage=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes

[Code]
const
  BN_CLICKED = 0;
  WM_COMMAND = $0111;
  CN_BASE = $BC00;
  CN_COMMAND = CN_BASE + WM_COMMAND;

procedure CurPageChanged(CurPageID: Integer);
var
  Param: Longint;
begin
  { if we are on the ready page, then... }
  if CurPageID = wpReady then
  begin
    { the result of this is 0, just to be precise... }
    Param := 0 or BN_CLICKED shl 16;
    { post the click notification message to the next button }
    PostMessage(WizardForm.NextButton.Handle, CN_COMMAND, Param, 0);
  end;
end;

这会起作用,但我仍然希望有一种更简洁的方法来跳过所有页面并直接进入安装过程。

关于inno-setup - 如何跳过所有向导页面,直接进入安装过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22183811/

相关文章:

command-line - Inno Setup是否可以接受自定义命令行参数

inno-setup - Inno Setup - 许可证页面之前的 InfoBeforeFile 页面

ado - 如何记录 ADO 连接的执行语句

path - 如何在 Inno Setup 中获取安装程序路径?

inno-setup - Inno Setup,WizardImageFile 即使是 100% DPI 也被拉伸(stretch)

inno-setup - Inno Setup - 如何本地化组件和类型名称?

inno-setup - 在 Inno Setup 中为不同版本的 Windows 创建图标并运行不同的程序

installation - 如何在 Inno Setup 中安装后强制重新启动

xml - 如何在 Inno Setup 中读取 XML 的标签属性

callback - 如何在不阻塞 Inno Setup UI 的情况下执行 7zip?