• Kevin专栏自定义安装对话框的界面


    编者按:其实这篇文章叫做如何修饰对话框界面或者叫做如何自定义界面元素更加确切一些,因为这并不是一篇关于如何创建自定义界面的文章,而是告诉你如何将自己的LOGO或者图片加入到已有的对话框界面上

    前言:

    出处:http://www.cnblogs.com/installshield/archive/2010/06/28/1766664.html

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

    安装对话框类型

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

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

    clip_image002

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

    clip_image004

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

    InstallScript工程类型

    内部对话框:

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

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

    clip_image006

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

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

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

    clip_image008

    外部对话框:

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

    clip_image010

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

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

    <ISProductFolder>\Script\Dialogs\BitmapId_103.bmp

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

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

    clip_image012

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

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

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

    clip_image014

    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_image016

    外部对话框:

    在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_image018

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

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

    InstallScript MSI工程类型:

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

    外部对话框效果如下:

    clip_image020

    内部对话框效果如下:

    clip_image022

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

    作者简介:

    万炳宏(Kevin Wan)

    InstallShield专业技术支持与咨询师,从2003年开始使用InstallShield,有上百个项目安装打包经验,经常撰写一些InstallShield使用操作的技术文档,长期关注软件打包行业发展,对于其他软件打包工具,如InstallAnywhere,Advanced Installer,Wise,Wix,Inno Setup和NSIS等也非常熟悉,同时也在关注软件分发部署以及应用程序虚拟化打包等新的技术与应用。

    邮箱: kevin.wan@msn.com

    技术专栏: http://www.cnblogs.com/installshield

  • 相关阅读:
    (8)闭包函数(函数的传参方式)
    (7)名称空间和作用域
    (6)函数嵌套
    (5)函数对象
    (4)进阶函数(作用域、闭包、生成器、迭代器)
    (3)什么是函数(函数的定义、形参、实参、默认形参、可变长函数args kwargs,私有地址)
    (1)三元运算、字符编码
    (2)字符编码关系和转换(bytes类型)
    java技术学习网址收藏
    springmvc工作原理和环境搭建
  • 原文地址:https://www.cnblogs.com/Cindy_weiwei/p/1740930.html
Copyright © 2020-2023  润新知