当前位置: 首页 > 知识库问答 >
问题:

Inno安装程序使用Pascal脚本自定义FinishedLabel

支华池
2023-03-14

我使用Inno Setup 6. x的目标是在代码中自定义FinishedLabel文本,即Pascal Script。我使用Pascal Script的原因是我只想在IsAdmin模式()为真时自定义/更改标签。我该怎么做?

以下两种方法不起作用:

>

  • 使用脚本常量:

    [Messages]
    FinishedLabel={code:GetFinishedLabel}
    
    [Code]
    function GetFinishedLabel(Param: String): String;
    begin
      Result := 'BLA';
    end;
    

    这显示的是“{code:GetFinishedLabel}”,而不是“BLA”。

    在< code>InitializeWizard中自定义向导。

    完整(失败)示例:

    [Code]
    procedure InitializeWizard();
    begin
      WizardForm.FinishedLabel.Caption := 'BLA';
    end;
    

    FinishLabel仍然显示Default.isl中的原始文本

    有什么想法吗?

  • 共有1个答案

    尹臻
    2023-03-14

    < code>FinishedLabel会在安装结束时根据各种因素进行更新。因此您在< code>InitializeWizard中设置的值将被覆盖。您必须稍后设置您的自定义消息,例如在< code > CurPageChanged(WP finished)中:

    procedure CurPageChanged(CurPageID: Integer);
    begin
      if CurPageID = wpFinished then
      begin
        WizardForm.FinishedLabel.Caption := 'BLA';
      end;
    end;
    

    您可以考虑改进代码来做Inno Setup会做的事情,比如:

    • 考虑到,如果需要重新启动(完成重启标签);
    • 考虑到是否创建了图标(DoneLabel vs. DoneLabelNoIcons);
    • 调整标签高度以适合消息;
    • 根据消息高度移动运行列表位置。
     类似资料:
    • 引用 Setup.nsi 的内容: !addPluginDir ".\" !include "MUI2.nsh" !include "WinVer.nsh" !include "TextFunc.nsh" Name "测试程序" Caption "$(^NameDA) 1.0" OutFile Setup.exe ;SetFont "Tahoma" 8 InstallDir $TEMP Re

    • 我正在尝试为我正在使用Inno Setup Compiler 5.5.1制作的安装程序编写一些Pascal脚本。我目前正在尝试添加一个执行命令的自定义向导页面,从文本字段(TEdit 组件)中获取用户输入。我定义了 NextButtonClick 函数,它检查页面 ID 是否是我定义的自定义页面,并尝试从字段中检索用户输入。当我从页面的 Surface 属性的组件中获取它时,它会作为 TCompo

    • 现在如果我用这个命令 它将创建一个具有最新版本(如5.2)的laravel项目,但是如果我想安装一个特定的版本(如5.1版),该怎么办? 更新::我正在寻找laravel安装程序命令,是否有任何选项/参数用于特定版本的安装?

    • 我正在尝试使用Inno setup pascal脚本函数RegQueryStringValue从Windows注册表中读取机器GUID。我要找的注册表项是HKEY _ LOCAL _ MACHINE \ SOFTWARE \ Microsoft \ Cryptography \ MACHINE guid 这将无法在HwId变量中设置值。 我错过了什么?

    • 我在Inno Setup Script中从DLL文件调用一个函数,它的返回类型是。为了获取整个字符串,我需要取消引用指针,但标准的Pascal语法在这里不起作用。有可能做到这一点吗? 我只有DLL文件。原始语言是德尔福。 我更新到最新版本的Inno Setup 6.0.3,并在我家用Windows 10 Pro机器上测试了以下代码: 我不明白为什么它必须查看我的“临时”目录?我还听说这个问题可能与