【问题标题】:Input serial number when running silent installation with Inno Setup?使用 Inno Setup 运行静默安装时输入序列号?
【发布时间】:2014-04-05 19:51:51
【问题描述】:

在运行带有标志/SP- /SILENT /SUPPRESSMSGBOXES 的(Innosetup)产品安装程序时,有什么方法可以让用户输入产品的序列号?

【问题讨论】:

    标签: windows inno-setup


    【解决方案1】:

    您可以创建新的命令行参数并在其中传递序列号。

    /SERIAL=12345679

    如果缺少此参数,则不允许继续(显示错误/正确用法或直接终止安装)。

    【讨论】:

    • 如果有人已经编译了使用UserInfoSerial的安装程序怎么办?
    • 我认为可以先检查注册表并使用注册表值而不是 /SERIAL。
    【解决方案2】:

    扩展@Slappy's answer

    您可以使用/SERIAL= 命令行参数,但InnoSetup 不支持将其作为standard command line parameters 之一,因此您必须编写一些Pascal 脚本。像下面这样的东西应该可以工作。

    procedure CheckForCommandLineSerial();
    var
      i: Integer;
    begin
      for i := 1 to ParamCount do
      begin
        if (Pos('/serial=', Lowercase(ParamStr(i))) = 1) and (Length(ParamStr(i)) > 8) then
        begin
          WizardForm.UserInfoSerialEdit.Text := Copy(ParamStr(i), 9, Length(ParamStr(i)) - 8);
          exit;
        end
      end;
    end;
    

    您可以通过InitializeWizard event function 拨打此电话。

    【讨论】:

    • @Tlama - 谢谢;我没有意识到该功能可用。就我而言,Pascal 脚本有几个优点: (1) 我已经在使用 Pascal 脚本来设置默认序列号,因此可以集成。 (2) DefaultUserInfoSerial={param} 表示如果UsePreviousUserInfo 已启用并存在,则命令行将被忽略,这可能是不可取的。
    猜你喜欢
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    相关资源
    最近更新 更多