• InstallShield自定义安装界面


    版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。

    前言:

    对于一些InstallShield用户或企业,对于安装包界面除了采用默认的安装对话框外,有时可能会需要利用安装界面这个平台进行产品或企业形象宣传,自定义安装对话框。下面将就此需求展示如何在InstallScript,Basic MSI或InstallScript MSI工程中如何自定义安装过程中的对话框。

    安装对话框类型

    安装程序的安装界面分外部对话框和内部对话框两类。外部对话框是指安装前和安装结束部分,典型的就是欢迎和结束对话框;在欢迎和结束对话框之间的其他对话框称之为内部对话框。

    外部对话框示例(如下图):

    clip_image002

    内部对话框示例(如下图)

    clip_image002[4]

    下面将具体的工程类型介绍如何自定义对话框。


    InstallScript工程类型

    内部对话框:

    在InstallScript工程中,可以通过函数DialogSetInfo指定内部对话框中显示的资源文件(只支持bmp格式),具体操作如下:

    首先需要将bmp格式(尺寸大小为499*58像素点)文件添加到Support Files/Language Independent目录下。如下图

    1

    之后在事件响应函数OnBegin中添加如下代码:

    DialogSetInfo(DLG_INFO_ALTIMAGE, SUPPORTDIR ^ "Bear_Banner.bmp", TRUE);

    重新编译释放之后,内部对话框中将显示我们自定义的资源,如下图:

    clip_image002[11]

    外部对话框:

    前边在事件响应函数OnBegin中调用函数DialogSetInfo的图片资源,嵌入显示到外部对话框中,效果如下图:

    clip_image002[13]

    如果不需要这张插入的图片,可以直接在Dialog视图中,将相应对话框中名为ControlId_1200的控件直接删除就可以。

    在InstallScript工程中,每个外部对话框中都有一个名为ControlId_551的位图控件,其属性File Name指向一位图文件(默认大小为220*370像素):

    <ISProductFolder>\Script\Dialogs\BitmapId_103.bmp

    可以直接在每个外部对话框中重新指定自定义的位图文件。

    之后重新编译,效果如下图:

    clip_image004

    涉及修改的外部对话框包括Welcome,SdWelcome,SdFinish,SdFinishReboot,SdFinishUpdate(Ex),SdFinishUpdateReboot,以及SdPatchWelcome,当然上述对话框可以根据需要有选择的进行修改。

    这样,我们就完成了InstallScript工程的自定义对话框资源的修改。

    虽然我们完成了内部和外部对话框的自定义,但细心的用户会发现,在安装初始化时,依然显示的InstallShield的资源文件,这是因为这部分内容是在脚本代码运行之前显示的,所以用户无法修改。不过,我们可以在Release视图中,将属性Small Initialization Dialog的值设为Yes,现在在安装初始化时将显示小的对话框,不会加载显示标准的位图,修改方式见下图:

    clip_image002[15]


    Basic MSI工程类型:

    内部对话框:

    在Basic MSI工程内部对话框中,有一个称作“Banner”的位图控件,该控件的File Name属性指向一个位图文件(499*58的JPEG,扩展名为ibd)。默认指向:

    <ISProductFolder>\Redist\Language Independent\OS Independent\IsDialogBanner.ibd

    可以在Dialog视图中,对每个内部对话框进行修改,包括AdminChangeFolder,AdminNetworkLocation,CustomerInformation,CustomSetup,CustomSetupTips,DatabaseFolder,DestinationFolder,DiskSpaceRequirements,FilesInUse,InstallChangeFolder,LicenseAgreement,MaintenanceType,MsiRMFilesInUse,OutOfSpace,ReadyToInstall,ReadyToRemove,SetupInterrupted,SetupProgress,SetupType。

    修改效果如下:

    clip_image008

    外部对话框:

    在Basic MSI工程外部对话框中,有一个称作“Image”的位图控件,该控件的File Name属性指向一个位图文件(499*312的JPEG,扩展名为ibd)。默认指向:

    <ISProductFolder>\Redist\Language Independent\OS Independent\ IsDialogBitmap.ibd

    可以在Dialog视图中,对每个外部对话框进行修改,包括AdminWelcome, InstallWelcome, MaintenanceWelcome,PatchWelcome, SetupCompleteError,SetupCompleteSuccess,SetupInitialization,SetupInterrupted,SetupResume,SplashBitmap。

    修改后效果如下图:

    clip_image010

    对于安装包初始化界面中出现的问题,处理方式与InstallScript工程方式相同,选择Small Initialization Dialog。

    注意:对于Basic MSI工程,还有一个更方便的方式自定义界面,这就是Project Assistant,在Project Assistant的Installation Interview界面的左上角(谢谢Fanjing的校正),有一个Use custom images on dialogs。通过它可以直接设置自定义的界面。


    InstallScript MSI

    工程类型:

    InstallScript MSI工程类型是间于InstallScript和Basic MSI直接的一种工程类型,其对话框部分处理方式与InstallScript相同,所以我们可以参考InstallScript工程进行设置。

    外部对话框效果如下:

    clip_image012

    内部对话框效果如下:

    clip_image014

    对于安装包初始化界面中出现的问题,处理方式前两种工程类型相同,选择Small Initialization Dialog。

  • 相关阅读:
    【Azure 应用服务】Azure Function在执行Function的时候,如果失败了,是否可以重试呢?
    【Azure Developer】使用 Azure Python 查看 Azure 所有的 Alert rule
    【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令ConnectMgGraph Environment China xxxxxxxxx 遇见登录错误
    【Azure Fabric Service】怎样关闭 Azure Service Fabric?
    【Azure 事件中心】关闭或开启Azure Event Hub SDK中的日志输出
    【Azure 应用服务】App Service运行时突然中断:There is not enough space on the disk : 'D:localTempASPNETCORE...
    【Azure 应用服务】App Service for Linux环境中,如何解决字体文件缺失的情况
    【Azure Developer】使用 CURL 获取 Key Vault 中 Secrets 中的值
    用SQL命令查看Mysql数据库大小 统计数据库空间占用
    各类手册Manual在线地址分享(AutoHotKey、Bash、lftp、sphinx、PHP、MySQL、Python、Perl、Vim等等...)
  • 原文地址:https://www.cnblogs.com/wanbinghong/p/1766664.html
Copyright © 2020-2023  润新知