InstallShield自定义安装界面
版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。
前言:
对于一些InstallShield用户或企业,对于安装包界面除了采用默认的安装对话框外,有时可能会需要利用安装界面这个平台进行产品或企业形象宣传,自定义安装对话框。下面将就此需求展示如何在InstallScript,Basic MSI或InstallScript MSI工程中如何自定义安装过程中的对话框。
安装对话框类型:
安装程序的安装界面分外部对话框和内部对话框两类。外部对话框是指安装前和安装结束部分,典型的就是欢迎和结束对话框;在欢迎和结束对话框之间的其他对话框称之为内部对话框。
外部对话框示例(如下图):
内部对话框示例(如下图)
下面将具体的工程类型介绍如何自定义对话框。
InstallScript工程类型
内部对话框:
在InstallScript工程中,可以通过函数DialogSetInfo指定内部对话框中显示的资源文件(只支持bmp格式),具体操作如下:
首先需要将bmp格式(尺寸大小为499*58像素点)文件添加到Support Files/Language Independent目录下。如下图
之后在事件响应函数OnBegin中添加如下代码:
DialogSetInfo(DLG_INFO_ALTIMAGE, SUPPORTDIR ^ "Bear_Banner.bmp", TRUE);
重新编译释放之后,内部对话框中将显示我们自定义的资源,如下图:
外部对话框:
前边在事件响应函数OnBegin中调用函数DialogSetInfo的图片资源,嵌入显示到外部对话框中,效果如下图:
如果不需要这张插入的图片,可以直接在Dialog视图中,将相应对话框中名为ControlId_1200的控件直接删除就可以。
在InstallScript工程中,每个外部对话框中都有一个名为ControlId_551的位图控件,其属性File Name指向一位图文件(默认大小为220*370像素):
<ISProductFolder>\Script\Dialogs\BitmapId_103.bmp
可以直接在每个外部对话框中重新指定自定义的位图文件。
之后重新编译,效果如下图:
涉及修改的外部对话框包括Welcome,SdWelcome,SdFinish,SdFinishReboot,SdFinishUpdate(Ex),SdFinishUpdateReboot,以及SdPatchWelcome,当然上述对话框可以根据需要有选择的进行修改。
这样,我们就完成了InstallScript工程的自定义对话框资源的修改。
虽然我们完成了内部和外部对话框的自定义,但细心的用户会发现,在安装初始化时,依然显示的InstallShield的资源文件,这是因为这部分内容是在脚本代码运行之前显示的,所以用户无法修改。不过,我们可以在Release视图中,将属性Small Initialization Dialog的值设为Yes,现在在安装初始化时将显示小的对话框,不会加载显示标准的位图,修改方式见下图:
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。
修改效果如下:
外部对话框:
在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。
修改后效果如下图:
对于安装包初始化界面中出现的问题,处理方式与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工程进行设置。
外部对话框效果如下:
内部对话框效果如下:
对于安装包初始化界面中出现的问题,处理方式前两种工程类型相同,选择Small Initialization Dialog。
InstallShield自定义安装界面的更多相关文章
- 以前编写的inno setup脚本,涵盖了自定义安装界面,调用dll等等应用 (转)
以前编写的inno setup脚本,涵盖了自定义安装界面,调用dll等等应用 (转) ; Script generated by the Inno Setup 脚本向导. ; SEE THE DOCU ...
- Wix 安装部署教程(三)自定义安装界面和行为
接上一篇自定义安装界面,这篇继续探索,首先介绍下,Wix为我们定义了五种风格,每种风格的UI都是有一定顺序的.我们可以改变安装顺序,也可以完全自定义一个Dialog插入其中.比如Wix_Mondo 风 ...
- Inno Setup自定义安装界面脚本
; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "RemoteCard&quo ...
- Wix 安装部署(二)自定义安装界面和行为
上一篇介绍了如何联合MSBuild来自动生成打包文件和对WIX的一些初步认识,http://www.cnblogs.com/stoneniqiu/p/3355086.html . 这篇会在上篇的基础上 ...
- NSIS 自定义安装界面准确获取安装进度完美解决方案
友情提醒:随着7zip版本快速更新,nsis7z插件已经不能全面兼容新版,使用本例子请将7zip版本降至9.2x以下并下载最新版nsis7z.dll! ------------------------ ...
- inno setup脚本,涵盖了自定义安装界面,调用dll等等应用
; Script generated by the Inno Setup 脚本向导. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETU ...
- Inno Setup技巧[界面]自定义安装向导小图片宽度
原文 blog.sina.com.cn/s/blog_5e3cc2f30100cj7e.html 英文版中安装向导右上角小图片的大小为55×55,汉化版中为55×51.如果图片超过规定的宽度将会被压 ...
- Wix 安装部署教程(九) --用WPF做安装界面
经常安装PC端的应用,特别是重装系统之后,大致分为两类.一类像QQ,搜狗输入法这样的.分三步走的:第一个页面可以自定义安装路径和软件许可.第二个页面显示安装进度条,第三个页面推荐其他应用.先不管人家怎 ...
- 在Installshield的安装进度中显示自己设置的信息
原文:在Installshield的安装进度中显示自己设置的信息 以Installscript msi project为例,在installshield所制作的安装包安装过程中显示安装进度的,就在On ...
随机推荐
- Windows7在自由的虚拟机(微软官方虚拟机)
Windows7在自由的虚拟机(微软官方虚拟机) 前言: 不是说windows7自带的虚拟机最好用,但他的正式版.免费.只是希望你能windows7用户.它将能够自由使用: 还是Vmware. 微软为 ...
- javascript和css浏览器兼容性总结
一些浏览器的兼容性做一个总结的问题以下: 为什么会出现这样的现象是?主要表现为Firefox这样的良好支持的浏览器W3C标准,这是现在CSS支持最好的浏览器,和ie它比较早出现,在w3c支持一直没有做 ...
- SQL之性能优化
在实际应用中.数据库中的数据会有非常多.若要从这些数据表中检索数据,就须要对系统进行优化,提高数据库系统的响应速度,以下就是日常一些查询优化的方法. 1.创建索引 索引能够提高数据库查询的速度, ...
- 辛格尔顿和Android
辛格尔顿(Singleton) .singleton.h,定义类的基本成员及接口 #ifndef SINGLETON_H_INCLUDE #define SINGLETON_H_INCLUDE cla ...
- [原创] linux 下上传 datapoint数据到yeelink 【golang版本】
package main /* Create by sndnvaps<sndnvaps@gmail.com> * date : 2015-04-05 * upload datapoint ...
- effective c++ 条款10 handle assignment to self operator =
非强制性,但是个好习惯 当使用连锁赋值时很有用 x=y=z=10; class Window { public: Window& operator=(int size) { ... retur ...
- clientIDMode的应用
以前我们可以通过ClientID在JavaScript脚本中服务器端控件.比如: document.getElementById("<%=控件.ClientID %>" ...
- 为什么MVC不是一种设计模式(转)
MVC(Model-View-Controller)是处理界面应用程序时常用的解决方案,构成了表示层. MVC通过分离模型.视图.控制器在应用程序中的角色,实现界面和业务逻辑的解耦.Model(是OO ...
- 苹果WatchKit轻松入门
背景 前段时间苹果Apple推出 WatchKit,用于开发Apple Watch应用,同时也推出了 Xcode6.2 Beta(非稳定版,好期待稳定版)版本用于开发 Watch App.Apple ...
- HDU更多的学校比赛9场 HDU 4965Fast Matrix Calculation【矩阵运算+数学技巧】
困难,.,真,,,不是太困难 的问题是,有一个矩阵运算优化 您有权发言权N*K矩阵A给K*N矩阵B(1<=N<=1000 && 1=<K<=6).他们拿起了第一 ...