如何自定义Inno Setup全屏背景左上角文本标签(无需修改AppName)
问题回顾
默认情况下,启用WindowVisible参数时,Inno Setup 会将AppName参数的内容作为全屏背景左上角文本标签的显示来源,使用者希望在该标签中同时展示Publisher(发布者)与Version(版本)信息。
目前查阅的教程大多围绕自定义背景图片配置展开,没有找到修改该位置文本的方法,需要找到无需修改[Setup]段原有AppName参数值就能实现需求的方案。
原有配置脚本
#define MyAppName "MyAppName" #define MyAppVer "4.1" [Setup] AppName={#MyAppName} AppVersion={#MyAppVer} AppVerName={#MyAppName} {#MyAppVer} WindowVisible=True
界面参考
启用WindowVisible参数时的安装界面效果:
实现方案
该需求不需要修改原有AppName参数值,直接通过代码修改UI控件的显示文本即可实现:
- 开启
WindowVisible模式后,左上角的全屏文本标签对应向导主面板的WizardForm.MainPanel.StationName控件,默认加载AppName参数值作为显示内容。完全可以在安装向导初始化时,直接重写这个控件的Caption,拼接需要展示的发布者、版本信息,不会改动其他流程对AppName参数的调用。 - 配置步骤:
- 原有
[Setup]段的参数保持不变,新增AppPublisher参数存储发布者信息即可:[Setup] ; 原有参数完全保留,不做任何修改 AppName={#MyAppName} AppVersion={#MyAppVer} AppVerName={#MyAppName} {#MyAppVer} WindowVisible=True ; 新增发布者参数,仅用于UI文本拼接 AppPublisher="XXX软件工作室" - 新增
[Code]段,在InitializeWizard事件中修改标签的显示内容:procedure InitializeWizard(); begin ; 在原有AppName显示内容基础上,拼接发布者和版本信息 WizardForm.MainPanel.StationName.Caption := WizardForm.MainPanel.StationName.Caption + ' | 发布者:' + ExpandConstant('{#SetupSetting("AppPublisher")}') + ' | 版本:' + ExpandConstant('{#MyAppVer}'); end;
- 原有
注意:上述修改仅作用于UI显示层,不会影响安装流程中其他位置对
AppName的调用(比如默认安装路径、注册表写入项、卸载程序标识等),完全符合不改动原有AppName参数的要求。
内容的提问来源于stack exchange,提问作者Maël Le Monnier
相关产品推荐
相关产品推荐

