21 InstallShield内部库函数全集二十一-版本检测函数(中文版)
- 格式:doc
- 大小:51.00 KB
- 文档页数:6
1、installshield中如何在添加/删除程序中自定义图标?A.先做好图标,放到某目录下,一般放在打包的resource下或其中的子目录下,然后在Description\general Information\add/remove programs,右边有个display icon,指向那个图标文件就是了,就这么简单B.找到注册表中它的guid项的注册项, 添加displayicon就可以指定控制面板里的图标是什么样的, displayicon 这个你参考一哈其它软件的注册表项InstallShield内部库函数1 库函数综述InstallShield包含300多个内部库函数,用户可在安装脚本中调用它们来创建程序组,操作文件夹,处理目录,监督安装状态,创建对话框,操作文件及其它更多工作。
因为InstallShield脚本编译器已经识别这些库函数名,所以用户在使用它们之前无须说明。
为了成功调用一个内部库函数,用户必须知道库函数名称及使用格式。
InstallShield 库函数参阅附录D库函数索引。
在接下去的几节中我们将对其中主要的一些库函数作详细介绍。
在这里先简单向用户描述一下库函数的构成。
如:AskYesNo是一个库函数,它在对话框中显示一个询问,然后等待最终用户通过点击按扭来响应,Yes或No。
AskYesNo格式如下:AskYesNo(szQuestion,nDefault)。
这个格式显示了正确的函数名,括号中显示了函数的参数列表。
在函数的详细说明帮助中,每个参数用匈牙利标记法表示,指出每个参数位置上可被接受的数值类型。
AskYesNo要求两个参数:第一个是字符类型,第二个是数值型。
与C语言一样,InstallShield区分大小写,因此用户要严格注意库函数名称中大写字母。
在用户的脚本中使用任何库函数,传递的参数数目一定要正确,并且要确保传递的每个参数值符合该位置规定的类型。
如果用户传递了错误的参数数目或者在任何一个或几个参数位置传递了不相符的数值类型,脚本都不能被编译。
Installshield入门指南(完整版)1 说明(适用范围)阅读对象:IS的初用者;本指南的校对、补充、修改者。
适用版本:IS10~IS11,如果您使用的不是这个版本段的版本,那么还是不要再往下看了。
目的:帮助初用者建立一个简单的安装包,能在建立这个安装包的过程中了解IS的基本情况。
强调:本指南不会对IS中的每一个菜单进行介绍,只对用到的做一个初步讲解2 IS介绍2.1IS介绍这个东东据说是现在使用最广泛的安装包制作工具。
它是从共享软件出身,一直发展到一个商业软件。
现在又被收购了。
我是从6.22版本开始接触它的。
从6.0到9.0版本,它的每一个版本大概都分为三个系列,就如同操作系统WINDOWS XP一样,每一个版本都分为Professional,Express,Developer。
简单的可以这样解释(详细区别大家可以到网上搜,应该很多):Express功能最少,使用也最简单,据说是限制使用脚本功能等。
适合制作常规的安装包,本人没有使用过。
Professional开放的功能较多,包括脚本功能。
但还是有一些限制,我了解的就是无法编辑界面(罕见使用),缺少一些外部库等等。
Developer不用说是最全的了。
适合于能折腾的人。
从10版本开始,IS最大的变化就是界面变了。
变的花哨了许多,功能更多了。
让我人最感兴趣的就是增加了对SQL的支持,最终加入了对XML的支持。
而且,从10开始,名字也有些改变:Premier Edition对应原来的Developer,其他的还是和原来一样。
以下的介绍全部是针对Installshield Premier Edition11的,请大家务必注意。
2.2IS各工程介绍IS将安装工程根据工程的特点分了几大类:InstallScript ;Windows Installer;Universal installer。
其中,Universal这个比较好理解,大概就是用来做跨平台的安装程序。
InstallShield-文件配置函数(中文版)InstallShield内部库函数全集八-文件配置函数(中文版)8 文件配置函数8.1 高级配置文件函数高级配置文件函数比Ez配置文件函数提供给高级开发人员更大的灵活性和对系统配置的更多控制。
为使用这些高级函数访问和编辑一个系统配置文件,可通过调用ConfigFileLoad开始。
大多数其它函数只有在系统配置文件已经由ConfigFileLoad打开后才能被调用。
当你结束编辑系统配置文件时,调用ConfigFileSave来保存你的修改。
注意函数ConfigGetFileName 和ConfigSetFileName既可以和高级配置文件函数也可以和Ez配置文件函数一起使用。
不要把Ez配置文件函数和高级配置文件函数混合起来。
调用ConfigFileLoad之后,直到你调用了ConfigFileSave保存你的修改后,你才能使用Ez配置文件函数。
ConfigAdd添加一个语句到一个已经被装入内存的系统配置文件。
ConfigDelete从一个系统配置文件中删除一项。
ConfigFileLoad把一个系统配置文件装入内存来编辑。
ConfigFileSave保存一个已经由ConfigFileLoad装入内存的系统配置文件。
ConfigFind在一个系统配置文件中查找一个项目。
ConfigGetFileName检索缺省系统配置文件的全限定名。
ConfigGetInt从一个系统配置文件中检索一个值。
ConfigMove在一个系统配置文件中移动一项。
ConfigSetFileName指定一个系统配置文件的全限定名。
ConfigSetInt在系统配置文件中设置一个值。
相关函数:SdShowFileMods创建一个对话框,显示建议的文件修改和提供如何进行的选项。
8.1.1 ConfigAdd语法:ConfigAdd (szKey, szValue, szRefKey, nOptions);说明:ConfigAdd函数添加一个语句到一个已经被ConfigFileLoad装入内存的系统配置文件中。
目录1 脚本精灵控制条 (7)1.1 改变控制条状态 (7)1.1.1 展开态 (7)1.1.2 缩放态 (8)1.1.3 吸附态 (8)1.2 脚本管理 (9)1.2.1 二进制脚本 (11)1.2.1 明文脚本 (12)1.2.3 导入脚本 (13)1.2.4 退出脚本管理面板 (14)1.3 播放脚本 (14)1.3.1 开始播放 (14)1.3.2 播放一次 (14)1.3.3 循环播放 (15)1.3.4 停止播放 (15)1.4 录制脚本 (15)1.4.1 开始录制 (15)1.4.2 停止录制 (16)1.4.3 保存脚本 (16)1.5 取素材 (16)1.5.1 全屏截图 (16)2 脚本精灵开发工具 (19)2.1 基本介绍 (19)2.1.1 开发工具介绍 (19)2.1.2 各组成部分介绍 (19)2.1.3 二进制脚本结构 (19)2.1.4 明文格式脚本 (20)2.2 工程管理 (20)2.2.2 删除工程 (21)2.2.3 脚本编辑 (21)2.2.4 图片路径 (21)2.3 远程设备管理 (21)2.3.1 远程导入脚本 (22)2.3.2 远程屏幕 (22)2.3.3 远程截图 (22)2.3.4 远程取色 (23)2.3.5 远程取坐标 (23)2.4 脚本编辑器 (23)2.4.1 关键字高亮 (23)2.4.2 脚本检错 (24)2.4.3 编译脚本 (24)3 脚本语言 (25)4 脚本精灵库函数 (27)4.1 基本函数 (27)4.1.1 触摸点击 (27)4.1.2 触摸按下 (27)4.1.3 触摸弹起 (28)4.1.4 触摸滑动 (29)4.1.5 输入文本 (30)4.1.6 模拟按键 (31)4.1.7 获取颜色 (31)4.1.8 普通寻色 (32)4.1.9 模糊寻色 (33)4.1.10 RGB颜色合成 (34)4.1.11 获取颜色RGB (35)4.1.12 判断颜色 (36)4.1.13 精确寻图 (37)4.1.14 点击图片 (38)4.1.15 范围寻图 (39)4.1.16 模糊寻图 (40)4.1.17 范围模糊寻图 (41)4.1.18 不规则寻图 (43)4.1.19 范围不规则寻图 (44)4.1.24 获取屏幕色位 (49)4.1.25 弹出文本提示 (50)4.1.26 震动 (51)4.1.27 记录日志 (51)4.1.28 记录错误日志 (52)4.1.29 查找某应用是否安装 (53)4.1.30 判断某应用是否正在运行 (54)4.1.31 启动指定应用 (55)4.1.32 结束一个应用 (56)4.1.33 退出当前脚本 (56)4.1.34 获取SD卡路径 (57)4.1.35 截图到文件 (58)4.1.36 拷贝文本到剪切板 (59)4.1.37 暂停指定应用 (60)4.1.38 恢复指定应用的运行 (60)4.2 高级函数 (61)4.2.1 获取设备UDID唯一串 (61)4.2.2 获取网卡MAC (62)4.2.3 获取蓝牙设备MAC (63)4.2.4 获取IMEI (64)4.2.5 获取设备信息串 (65)4.2.9 随机触摸滑动 (70)4.2.10 http访问 (71)4.3 兼容模式相关函数 (71)4.3.1 强制设置兼容模式 (72)4.3.2 判断当前模式 (72)4.3.3 设置自定义截屏 (74)4.3.4 截取屏幕 (74)5 使用技巧 (77)5.1 如何模拟触摸操作 (77)5.2 如何寻图 (77)5.3 如何找色 (78)5.4 如何记录日志 (78)5.5 开发平台如何与手机建立连接 (78)5.6 如何进行远程调试 (78)5.7 如何输入中文文本 (79)5.8 脚本优化原则 (79)5.9 处理意外逻辑 (79)6 附录 (82)6.1 虚拟键对照表 (82)7 UI说明 (84)7.1脚本结构 (84)7.6创建文本编辑框 (87)7.7创建复选框 (88)7.8创建单选框 (88)7.9创建按钮 (89)7.10 UI换行 (90)7.11创建扩展窗口 (90)7.12在扩展窗口中创建控件 (90)7.13动态设置UI文本 (91)7.14动态获取UI文本 (92)7.15动态设置选中 (92)7.16动态获取选择状态 (92)7.17设置是否显示循环播放设置UI (93)8、获取配置项 (94)1 脚本精灵控制条为方便使用,脚本精灵所有的功能都集中在控制条上,控制条可任意拖动,缩小,吸附。
InstallShield内部库函数全集二十一-版本检测函数(中文版)21 版本检测函数下列函数允许你访问存在于Windows 95及更高版本的文件中的版本信息。
为使用这些函数,你需要知道有关版本资源的背景信息。
查阅Microsoft Windows Programmer's Reference, Volume 4:资源手册来更好得了解版本资源。
函数说明假定你完全熟悉版本资源的概念。
下列函数获得一个具体文件的版本,找到一个文件并得到它的版本,或查找一个存在的文件和试图安装该文件的一个更新的版本。
函数可工作于压缩文件或未压缩文件。
VerCompare比较包含版本信息的两个字符串。
VerFindFileVersion查找指定文件并检索它的版本和位置。
VerGetFileVersion检索一指定文件的版本。
VerSearchAndUpdateFile用一个更新的版本置换一个存在的文件。
如果指定的文件不存在,则安装更新的版本。
VerUpdateFile用一个更新的版本置换一个存在的文件。
如果指定的文件不存在,则不安装更新版本。
21.1 VerCompare语法:VerCompare (szVersionInfo1, szVersionInfo2, nCompareFlag);说明:VerCompare函数比较两个包含版本信息的字符串。
参数:szVersionInfo1以下列格式指定第一个版本字符串:主版本号.次版本号如果szVersionInfo1是2.1.2.0,主版本号是2.1,次版本号是2.0。
szVersionInfo2以相同格式指定第二个版本字符串。
nCompareFlag传递预定义常量VERSION来指定进行版本号的比较。
该参数不允许其它值。
返回值:EQUALS (2):表明两个字符串有相等值。
GREATER_THAN (0):表明第一个字符串包含的值大于第二个。
LESS_THAN (1):表明第一个字符串包含的值小于第二个。
InstallShield使用本文使用的InstallShiled的版本是InstallShiled 2008 Premier Edition,只介绍制作Base MSI Preject及InstallScript MSI Preject安装包。
1菜单大多数菜单与其他软件一样,这里只介绍几个有特点的。
1.1Go可以通过此菜单到任意一个设计界面中。
1.2Project1.1.1[Perform Static Scan…]及[Perform Dynamic Scan…]静态及动态搜索应用程序所需要的系统对象及Dll运行库,这两个功能有详细的向导,这里不再做介绍。
1.1.2[Source Control]此功能为源代码管理,必须结合Microsoft的Microsoft Visual SourceSafe。
1.3Tools1.3.1[InstallScript]Standard Dialog Sampler及Skinned Dialog Sampler查看固定的安装步骤界面,以便在脚本中调用。
Cabinet File Viewer查看安装包CAB文件的内容,经测试好像不能查看InstallShield2008制作的CAB的内容。
2安装设计界面这里介绍的是Installation Designer页面的界面(介绍一些重要的属性)。
2.1Installation Information2.1.1General Information¾Project PropertiesSetup Languages:设置安装包的语言种类,一般默认的是简体中文。
¾Add or Remove ProgramsDisplay Icon:在系统中的添加或删除程序的列表中显示的图标;Display Icon Index:图标文件的图标索引;Disable Change Button:隐藏添加或删除程序的列表中的更改按钮;Disable Remove Button:隐藏添加或删除程序的列表中的删除按钮;¾Product PropertiesName:产品名称,显示在整个安装界面的产品名称;INSTALLDIR:安装的默认路径;¾String Tables每种安装语言都有一个节点,安装中使用的字符串。
目录前言 (2)第一章集成开发环境 (3)第二章 INSTALLSHIELD基本操作 (4)2.1.创建工程 (4)2.2.通过 PROJECT ASSISTANT(工程助手)来设计工程。
(8)2.3.安装包发布 (19)第三章 INTALLSHIELD脚本语言 (23)3.1脚本语言介绍 (23)3.2实例一:注册表的处理 (25)3.3实例二:安装前执行,运行其他的软件安装。
(28)第四章其他的安装包制作工具 (30)4.1 INSTALLAWARE (30)4.2 WISE (31)4.3 ADVANCED INSTALLER (33)4.4工具比较 (33)前言InstallShield是基于Windows平台的为软件发行方提供领先的基于windows的安装程序解决方案,能够制作强大可靠的Windows Installer(MSI)、InstallScript以及跨平台的安装程序,是安装工具领域事实上的标准,已经成为安全安装软件的标准解决方案,。
在下面的内容当中,将以10HMITOOL项目实例讲解InstallShield的使用方法,使用的版本为InstallShield2008。
第一章集成开发环境InstallShield除了本身的开发环境外,还为vs2005提供了辅助功能,开发人员可以直接在vs2005环境中创建InstallShield工程,具体操作如下:1.选择开始菜单->所有程序->Macrovision->InstallShield 2008 for Visual Studio 2005图1-1 运行InstallShield 2008 for Visual Studio 2005首次运行会出现如下的向导界面:在这里介绍了所有工程类型,用户可以根据自己的需要选择工程类型。
图1-2 首次进入第二章 InstallShield基本操作2.1.创建工程开始创建工程,打开[File]->New->Project,或Ctrl+Shift+Na. Project type 选择InstallShield 2008 Projectsb. 根据我们项目的需要,Templates 选择InstallScript MSI Projectc. 输入工程名称和本地路径abc图2-1创建工程点击“OK”后,10HMITOOL安装包工程就建立了。
Installshield 12 中文系列教程之 Installscript 项目(一)×××××××××××××××××××××××××××××××××××××××××××××××声明:本文为《打包技术网》原创,转载请保留此声明并注明出处,仅供网友学习使用,勿用于商业用途。
作者:棒槌_007联系方式:QQ113984419MAIL:********************说明:本人E文实在一般,文中有翻译不准确的地方,请各位见谅。
×××××××××××××××××××××××××××××××××××××××××××××××这个部分通过带领你使用InstallShield新建,编译,运行来增强一个使用安装脚本的安装程序。
这个教程划分了一些列的步骤。
在第一步后“第一步:建立,编译,测试项目”其他的步骤能够按照任意的顺序单独的运行,所以你可以集中注意力在这个部分的相关的内容上。
InstallShield内部库函数全集五-Sd对话框函数(中文版)未分类查看279次5 Sd对话框函数InstallShield提供一些Sd对话框函数,用户可自定义和显示。
Sd对话框使用可以创建用户输入的对话框的特殊脚本定义函数来创建。
然后该对话框根据所作选择返回值给脚本。
Sd对话框有一个Cancel按钮,当它被选中时不返回一个CANCEL值。
而是调用缺省的退出处理。
下面是所有有效的Sd对话框函数的列表:DialogSetInfo改变由一些内部对话框函数呈现的对话框的显示元素。
SdAskDestPath呈现一个对话框,允许最终用户指定安装的一个目标位置。
SdAskOptions创建一个对话框,它比标准AskOptions函数更灵活。
SdAskOptionsList呈现一个对话框,允许最终用户选定和撤消选定一个列表中的项目。
SdBitmap在对话框中显示一个位图。
SdComponentDialog显示一个对话框,允许最终用户选择安装的组件和目标文件夹。
SdComponentDialog2显示一个对话框,允许最终用户选择要安装的文件夹、组件和子部件。
SdComponentDialogAdv显示一个对话框,允许最终用户选择安装的组件和目标文件夹。
SdComponentMult显示一个对话框,允许最终用户选择安装的组件和子部件。
有关磁盘空间的附加信息也被提供来确定安装的最佳位置。
SdComponentTree显示一个有树形控制控件的对话框,允许最终用户选择安装的组件和子部件。
有关磁盘空间的附加信息也被提供来确定安装的最佳位置。
SdConfirmNewDir提示用户确认文件夹的选择。
SdConfirmRegistration提示最终用户确认输入到由SdRegisterUser或SdRegisterUserEx呈现对话框中的信息。
SdDisplayTopics显示主题列表。
SdExceptions显示一个对话框,通知最终用户遇到一个共享、锁定(在使用中)或只读文件。
InstallShield内部库函数全集二十一-版本检测函数(中文版)21 版本检测函数下列函数允许你访问存在于Windows 95及更高版本的文件中的版本信息。
为使用这些函数,你需要知道有关版本资源的背景信息。
查阅Microsoft Windows Programmer's Reference, Volume 4:资源手册来更好得了解版本资源。
函数说明假定你完全熟悉版本资源的概念。
下列函数获得一个具体文件的版本,找到一个文件并得到它的版本,或查找一个存在的文件和试图安装该文件的一个更新的版本。
函数可工作于压缩文件或未压缩文件。
VerCompare比较包含版本信息的两个字符串。
VerFindFileVersion查找指定文件并检索它的版本和位置。
VerGetFileVersion检索一指定文件的版本。
VerSearchAndUpdateFile用一个更新的版本置换一个存在的文件。
如果指定的文件不存在,则安装更新的版本。
VerUpdateFile用一个更新的版本置换一个存在的文件。
如果指定的文件不存在,则不安装更新版本。
21.1 VerCompare语法:VerCompare (szVersionInfo1, szVersionInfo2, nCompareFlag);说明:VerCompare函数比较两个包含版本信息的字符串。
参数:szVersionInfo1以下列格式指定第一个版本字符串:主版本号.次版本号如果szVersionInfo1是2.1.2.0,主版本号是2.1,次版本号是2.0。
szVersionInfo2以相同格式指定第二个版本字符串。
nCompareFlag传递预定义常量VERSION来指定进行版本号的比较。
该参数不允许其它值。
返回值:EQUALS (2):表明两个字符串有相等值。
GREATER_THAN (0):表明第一个字符串包含的值大于第二个。
LESS_THAN (1):表明第一个字符串包含的值小于第二个。
21.2 VerFindFileVersion语法:VerFindFileVersion (szFileName, svPath, svVersionNumber);说明:VerFindFileVersion函数查找一个指定的文件并检索文件版本和位置。
VerFindFileVersion 使用下列查找算法来找到文件:1.首先,它查找Windows 文件夹。
2.接着,Windows 系统文件夹。
3.接着,由系统变量TARGETDIR指定的文件夹。
4.接着,由环境变量PATH指定的文件夹。
5.最后,Setup.exe运行所在的文件夹。
有关Windows 系统文件夹的信息,请查看InstallShield系统变量WINSYSDIR的文档。
参数:szFileName指定要获得其版本的文件的非限定名。
不要在该参数位置指定一个驱动器指示符或路径。
svPath返回文件所在的文件夹的完整路径(包含驱动器指示符)。
svVersionNumber返回下列格式的文件版本号:主版本号.次版本号如果szVersionNumber返回2.1.2.0,则主版本号是2.1,次版本号是2.0。
返回值:0:表明函数成功返回版本信息。
FILE_NO_VERSION (-8):表明文件被找到但不包含版本信息。
FILE_NOT_FOUND (-2):表明文件未能找到。
注解:·当使用VerFindFileVersion时,你可能需要为TARGETDIR设置一个值,而不是让InstallShield 自动设置它。
因为函数在TARGETDIR文件夹中寻找文件,你可能需要临时设置系统变量来确保VerFindFileVersion会找到该文件。
如果你要这么做,在将TARGETDIR的值临时设置为另一个文件夹前使用VarSave来保存该值。
21.3 VerGetFileVersion语法:VerGetFileVersion (szFileName, svVersionNumber);说明:VerGetFileVersion函数检索指定文件的数值型版本信息。
参数:szFileName指定其数值型版本信息要被检索的文件的全限定名。
svVersionNumber以下列格式的字符串返回文件数值型版本号信息:主版本号.次版本号如果szVersionNumber返回2.1.2.0,则主版本号是2.1,次版本号是2.0。
返回值:0:表明函数成功返回版本信息。
FILE_NOT_FOUND (-2):表明指定文件未能找到。
FILE_NO_VERSION (-8):表明文件被找到但不包含版本信息。
注解:·值得注意的是,虽然InstallShield 文件版本信息以字符串格式出现,它们所指示的一个文件的版本信息是数值型版本信息。
一个文件的字符串版本信息是不能由InstallShield函数检查到和返回的。
而且,你必须注意当Windows 资源管理器显示一个文件的属性时,它显示字符串版本信息,可能与文件数值型版本信息不等。
因为这个原因,由VerGetFileVersion在参数svVersionNumber返回的值可能与Windows 资源管理器显示的版本信息不匹配。
·有关文件版本信息的更多情况,可查询Windows SDK或Win32 SDK。
21.4 VerSearchAndUpdateFile语法:VerSearchAndUpdateFile (szFileName, nUpdateFlag, svInstalledFile);说明:VerSearchAndUpdateFile函数查找指定的文件并在必要时安装该文件的一个更新版本。
如果该函数找到该文件,它比较现存文件的版本号和新文件的版本号。
如果现存文件是旧的,它被新文件替换。
新文件必须在由系统变量SRCDIR指定的目录中。
如果函数未找到一个现存文件,它就拷贝新文件到目标系统。
Microsoft Windows根据文件类型决定文件安装在哪里。
例如,.dlls和系统驱动器被安装在Windows 系统文件夹中。
有关Windows 系统文件夹的信息,请查阅InstallShiled 系统变量WINSYSDIR的文档。
VerSearchAndUpdateFile使用下列查找算法来找到现存文件:请参阅VerFindFileVersion中的查找算法。
参数:szFileName指定要安装的文件的未限定名。
不要在该参数位置指定一个驱动器指示符或路径。
nUpdateFlag指示是否该文件要被无条件更新或仅当在目标系统上找到的文件版本比你现有的文件版本旧时才更新。
在该参数位置传递下列预定义常量之一:VER_UPDATE_COND:仅当现存文件是一个旧版本时才更新它。
VER_UPDATE_ALWAYS:即使现存文件是一个更新的版本也要更新它。
svInstalledFile返回由该函数安装的文件的全限定名。
如果你要置换的文件正在使用,则文件以一个轻微差异的名称被安装到相同目录。
文件以其扩展名的第一个字符为~字符来更名。
例如,如果你安装文件Shell.dll并且文件是锁定的,则该文件被拷贝为Shell.~ll。
文件名从该变量返回。
返回值:FILE_INSTALLED (0):函数成功安装文件。
FILE_IS_LOCKED (-4):表明文件正在被Windows 使用并且不能被置换。
新文件以一个新名字被拷贝到相同目录。
FILE_NO_VERSION (-8):表明文件被找到,但它不包含版本信息。
文件更新没有执行。
FILE_RD_ONLY (-5):表明现存文件是写保护的。
脚本必须在进行安装之前重新设置目标文件的只读标志,然后再尝试安装文件。
FILE_SRC_OLD (-7):表明要安装的文件有相同的日期或比先前存在的文件更早。
OUT_OF_DISK_SPACE (-6):表明函数因为目标驱动器上磁盘空间不足,未能创建文件。
文件更新没有执行。
VER_DLL_NOT_FOUND (-3):表明没有找到Ver.dll。
文件更新没有执行。
OTHER_FAILURE (-1):表明发生一个不确定错误。
文件更新没有执行。
注解:·使用VerSearchAndUpdateFile时,你可能需要给SRCDIR和/或TARGETDIR设置值,而不是让InstallShield自动设置它们。
因为函数在SRCDIR和TARGETDIR文件夹中查找文件,你可能需要临时重新设置这些系统变量的值来确保VerSearchAndUpdateFile会找到文件。
如果你需要这么做,则在将SRCDIR 和TARGETDIR临时设置为其它值之前使用VarSave来保存它们的值。
调用VerSearchAndUpdateFile函数后,使用VarRestore来重新设置SRCDIR 和TARGETDIR。
·对于文件传输,VerSearchAndUpdateFile的可能的替换函数是XCopyFile,,它可以做版本检测,标记锁定的.dll和.exe文件待系统重启后更新,并且递增共享的.dll和.exe文件的注册表访问计数器。
21.5 VerUpdateFile语法:VerUpdateFile (szFileName, nUpdateFlag, svInstalledFilePath);说明:VerUpdateFile函数使用一个指定文件的版本信息来确定是否要在目标系统上安装该文件。
VerUpdateFile在参数szFileName位置得到文件名。
如果在szFileName没有指定一个全限定名,VerUpdateFile使用下列查找算法来找到该文件(目标文件):请参阅VerFindFileVersion的查找算法。
VerUpdateFile然后将SRCDIR中相同名称的文件的版本和目标文件(如果存在)的版本进行比较。
如果源文件的版本号比目标文件的版本号更新,则目标文件被置换为该源文件。
如果目标文件不存在,InstallShield拷贝源文件到目标文件。
当在参数nUpdateFlag位置是SHAREDFILE 或LOCKEDFILE选项,并且要被更新的.dll 或.exe 文件正在被系统使用时,源文件的更名拷贝传输到目标系统并且系统变量BATCH_INSTALL设置为TRUE。
然后,当在安装结尾调用RebootDialog或SdFinishReboot并且系统重启时,锁定文件被更新。
有关更新锁定文件的更多信息请查阅RebootDialog 和SdFinishReboot。
系统变量BATCH_INSTALL可以被测试来确定是否遇到锁定的.dll或.exe文件。