Q: 如何替换setup.exe的图标?

A: 这不是一个推荐的操作,因为可能会引起不可预见的错误,而且IS没有开放这个接口。如果你坚持要这么做,可以使用第三方软件比如ExeScope来进行图标替换。

Q: 如何去掉安装界面左上方的Installshield Wizard字样?

A: Installation Designer -> Installation Information -> General Information -> String Tables ->你使用的语言,右键-> Export String Tables导出为文本文件,然后把里面相应的“Installshield Wizard”字段替换成空白字符串即可。建议做好备份后再修改。

Q: 如何自定义每个安装界面的标题或者说明文字?

A: Installation Designer -> Behavior and Logic -> InstallScript ->Setup.rul,没有这个文件的话在file底下new一个,默认就是这个名字的,我是在Installscript msi类型下测试的,其他的可能略有不同。

在Setup.rul打开OnFirstUIBefore函数,这个函数里面显示出安装过程中的所有界面,在需要修改的界面中把标题或者说明性文字赋值为自己想要的值即可。

举例:

Dlg_SdWelcome:

szTitle = "";

szMsg = "";

nResult = SdWelcome(szTitle, szMsg);

if (nResult = BACK) goto Dlg_SdWelcome;

szTitle = "";

svName = "";

svCompany = "";

szTitle就是安装时候欢迎界面所显示的标题,比如我改成szTitle=”欢迎使用XX软件”这样的形式即可。

Q: 如何在卸载时不要弹出”Modify, Repair, Remove”界面,而是点击卸载后直接卸载掉?

A: 在Installation Designer->Behavior and Logic->InstallScrip中Setup.rul里打开OnMaintUIBefore这个函数,找到Dlg_Start:,把这个框体包含的代码全部注释掉,也就是从Dlg_Start:到Dlg_SdFeatureTree:上面一行的内容全部去掉,并且添加一句nType = REMOVEALL;在Dlg_SdFeatureTree:前面,这样就可以实现不出现那个“modify,repair, remove"的界面,而是直接进行删除动作了。

Q: 我怎样在目标机上安装.NET,如果目标机上没有安装的话?

A: 在Release Wizard的倒数第三步将”Include or setup .NET framework”的选项勾上。

Q: 我如何调用第三方软件?

A: 在Installation Designer -> Behavior and Logic -> InstallScript ->Setup.rul里使用LaunchAppAndWait或者LaunchApp函数,至于写在哪儿要看具体应用,比如可以写在OnBegin, OnFirstUIBefore之类的函数体里。例子请参阅我的另外一个文档《一个完整的Installshield安装程序—艾泽拉斯之海洋女神出品》,csdn有下载。或者你也可以加入installshield中文论坛官方QQ群来获取这份放在群共享里的文件。

在笔者写这篇文档的时候,有网友告诉我Installshield2009已经无需如此繁琐地写脚本了,而是有界面允许用户自己指定一个注册表键值,并指定需要安装的软件所在的路径,当键值不存在的时候IS自动调用指定的软件了,有兴趣的朋友可以去研究下。

Q: 我如何调用bat文件?

A: 在Installation Designer -> Behavior and Logic -> InstallScript ->Setup.rul里使用LaunchAppAndWait或者LaunchApp函数。

Q: 我如何为自己的程序创建一个在开始菜单里的卸载快捷方式?

A: 某些工程类型比如Installscript MSI自带有这个选项,但是在08版本前都不推荐使用,因为容易导致系统崩溃;写脚本是一个不错的解决方法。代码如下,但是具体的详细解释请参考我的另外一个文档《一个完整的Installshield安装程序—艾泽拉斯之海洋女神出品》,csdn有下载。或者你也可以加入installshield中文论坛官方QQ群来获取这份放在群共享里的文件。

szfilename = UNINSTALL_STRING +" /UNINSTALL";

nresult = StrFind(szfilename,".exe");

if nresult >=0 then

StrSub(szmsg1,szfilename,0,nresult + 4);

StrSub(szmsg2,szfilename,nresult + 4,200);

LongPathToQuote(szmsg1, FALSE );

LongPathToQuote(szmsg2, FALSE );

szfilename = "/"" + szmsg1 + "/"" +szmsg2;

endif;

AddFolderIcon(FOLDER_PROGRAMS^"TEST","Uninstall",szfilename,WINDIR,"",0,"",REPLACE);

Q: 我如何修改“添加或删除程序”里我的软件的卸载图标?

A: Project Assisant -> Application Information,Select the icon to display your application in Add or Remove Program这项,点击Browse选择你想要的图标即可。

Q:如何关闭管理员权限提示,即安装包不需要管理员权限?
A:更改两个属性:property Manager:AllUSERS=2, MSIINSTALLPERUSER=1
Q:判断BasicMsi获取当前是否静默安装?
A:MsiGetProperty("UILevel") != 2则为静默安装

InstallShield FEQ的更多相关文章

  1. InstallShield 脚本语言学习笔记

    InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加.     一.基本语法规则      ...

  2. installshield使用教程

    从Visual Studio 2012开始,微软就把自家原来的安装与部署工具彻底废掉了,转而让大家去安装使用第三方的打包工具“InstallShield Limited Edition for Vis ...

  3. [No00009D]使用visual studio 2015 update3打包程序安装包的简单方法(不需要InstallShield)

    注意: 该方法只适用于小型软件的打包发布: 该打包向导可以预先检查需要的运行库支持: 由于visual studio自2012后取消掉了自带的打包程序,如果有需要打包安装,需要使用一个叫用Instal ...

  4. C/S打包 客户端/windows程序 InstallShield

    开发完成后,我们可以直接在Debug目录下启动exe,运行程序. 但是,要如何安装,添加到开始菜单.桌面快捷方式.任务栏等.如Office安装效果: 开始菜单: 快捷菜单: 打包步骤: 1.下载Ins ...

  5. InstallShield Limited Edition制作安装文件

    由于InstallShield Limited Edition for Visual Studio的教程.资料太少,所以我今天才决定写这个文章,专门针对C#项目打包,包括打包集成Microsoft . ...

  6. 海洋女神建新installshield交流群了,原来的老群都满了,请加新群哦,记得认真填写验证信息

    群号511751143 海洋女神installshield群

  7. How to:如何让Installshield显示正确的软件所需空间--网友冰块先生贡献

    软件环境: installshield2010  工程类型:installshield project  现象:当转换目录后所需空间显示不正常. 解决办法:在转换目录地方加上一个TARGETDIR重新 ...

  8. 【海洋女神原创】How to: Installshield做安装包时如何添加文件

    我一直以为这不是一个问题,可是没想到在几个群内,对于如何向安装包添加文件不解的大有人在,今日稍暇,整理成篇,以供参考 首先我想再大声地说一遍:不要再跟我说英文看不懂了!!!!你做了程序员这一行,就得逼 ...

  9. InstallShield打包设置相对路径

    InstallShield打包设置相对路径 在使用Installshield 打包安装文件时,添加打包文件时默认使用绝对路径,但是工程文件转移时(复制到其它位置时)编译时就会找不到安装文件,这样很不方 ...

随机推荐

  1. 使用Xcode8的Instruments检测解决iOS内存泄露(leak)

    在苹果没有出ARC(自动内存管理机制)时,我们几乎有一半的开发时间都耗费在这么管理内存上.后来苹果很人性的出了ARC,虽然在很大程度上,帮助我们开发者节省了精力和时间.但是我们在开发过程中,由于种种原 ...

  2. Deme_遥感控制物体移动(涉及遮罩,小摄像机跟随)

    using UnityEngine; using System.Collections; using UnityEngine.EventSystems; public class JoyControl ...

  3. MongoDB与传统数据库的使用区别——批量插入与批量查询

    我在百X知道上回答问题时经常遇到类似与这样的问题:MongoDB有没有像MySQL一样的ODBC驱动?MongoDB能不能像MySQL一样获取字段名称或类型. 我的回答是:不行,因为MongoDB不是 ...

  4. Android Dialog触摸对话框外部让其消失的实现方法

    方法一: @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent ...

  5. SAP-Basic:使用SCC1时提示 TA263“集团被集团副本锁定用于输入”

    错误信息   消息号TA263   解决方法 Step 1.使用SCC4进入"集团管理"界面. Step 2.双击要维护的集团,例如"010",进入详细配置界面 ...

  6. Android(java)学习笔记236:多媒体之加载大图片到内存(Bitmap API)

    1.Bitmap (API使用) android里面的bitmap中,一个像素点需要4个byte去表示,这是因为android表示颜色是" argb ":其中 a 表示是透明度,然 ...

  7. Linux磁盘管理:LVM逻辑卷的拉伸及缩减

    ①查看当前VG的信息,保证VG中有足够的空闲空间 通过 vgdisplay 或者 vgs 命令 [root@rusky ~]# vgs rusky-vg VG #PV #LV #SN Attr VSi ...

  8. 使用python求字符串或文件的MD5

    使用python求字符串或文件的MD5 五月 21st, 2008 #以下可在python3000运行. #字符串md5,用你的字符串代替'字符串'中的内容. import hashlib md5=h ...

  9. maya和Unity中的坐标系旋转

    maya软件是用的右手坐标系,默认旋转顺序是ZYX,即先绕Z轴旋转,再绕Y轴旋转,最后绕X轴旋转. 比如在maya软件中,右侧的旋转顺序是可选的,默认的选择是“XYZ”,其实物体旋转顺序是倒着念,即上 ...

  10. My.Ioc 代码示例——属性和方法注入

    在 My.Ioc 中,我们可以指定让容器在构建好对象实例之后,自动为我们调用对象的公共方法或是为对象的公共属性赋值.在解析对象实例时,容器将根据我们在注册对象时指定的方法调用或属性赋值的先后顺序,调用 ...