InstallShield中文函数解释2_第1页
InstallShield中文函数解释2_第2页
InstallShield中文函数解释2_第3页
InstallShield中文函数解释2_第4页
InstallShield中文函数解释2_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、InstallShield 中文函数解释 2InstallShield中文函数解释(2)2010-12-20 11:16InstallShield中文函数解释外壳函数19.1.6 BatchGet语法:BatchGet(sv);说明:BatchGet函数检索缺省批处理文件(由InstallShield初始设置为系统启动时使用的自举Autoexe.bat文件)的全限定名。为指定一个不同的批处理文件为安装脚本中使用的缺省批处理文件,调用BatchSet。参数:sv在sz返回缺省批处理文件的全限定名。返回值:0:BatchGet成功检索缺省批处理文件的全限定名。0:BatchGet未能检索缺省批处理

2、文件的全限定名。19.1.7 BatchMoveEx语法:BatchMoveEx(szMove,szRefKey,nOptions,nMoveOption);说明:BatchMoveEx函数将一个批处理文件中由szMove指定的行从一个位置移动至另一个位置。参数nOptions指定是把该行放置在批处理文件的开始或结尾,还是在szRefKey指定的行的前面或后面。调用BatchMoveEx前,你必须调用Batch来把要修改的文件装入内存。在你修改该文件后,调用Batch来把它保存到磁盘。参数:szMove指定标识要被移动行的参考关键字。szRefKey指定关键字,它标识用来定位移动行的参考行。如

3、果szRefKey是一个空字符串,由szMove指定的行移动到文件的开始或结尾,根据nOptions的值而定。nOptions指定将行移动到何处;给该参数传递下列预定义常量之一:BEFORE:由szMove指定的行被移动到包含szRefKey参考关键字的行的前面。如果szRefKey是一个空字符串,则由szMove指定的行被移动到文件的开始。AFTER:由szMove指定的行被移动到包含szRefKey参考关键字的行的后面。如果szRefKey是一个空字符串,则由szMove指定的行被移动到文件的结尾。当你查找的参考关键字是一个DOS命令或程序名(而不是一个环境变量)时,将常量COMMAND和

4、BEFORE或AFTER用或操作符(|)连接,如下所示:BatchMoveEx(PATH,SCAN.EXE,BEFORE|COMMAND,0);nMoveOption指定szMove是一个命令还是一个环境变量。给该参数传递下列预定义常量之一:0:指定szMove是一个环境变量。COMMAND:指定szMove是一个命令。返回值:0:BatchMoveEx成功移动批处理文件中的指定行。0:BatchMoveEx未能移动批处理文件中的指定行。19.1.8 BatchSet语法:BatchSet(szBatchFile);说明:BatchSet函数指定由Ez批处理文件函数及以一个空字符串为其参数调用

5、Batch时所使用的批处理文件名。在安装脚本中,该文件被作为缺省批处理文件。安装初始化过程中,缺省批处理文件被设置为系统使用的Autoexec.bat文件。应重视下列有关BatchSet的事实:它不确认指定文件的存在性。它不把文件装入内存。参数:szBatchFile指定在安装脚本中作为缺省批处理文件使用的文件的全限定名。返回值:0:BatchSet成功设置指定文件为缺省批处理文件。0:BatchSet未能设置指定文件为缺省批处理文件。注解:BatchSet只简单地指定缺省批处理文件的名称。即使文件名是无效的或指定文件不存在时该函数也会成功。一个无效的文件名将导致随后的Ez批处理文件和高级批处

6、理文件函数失败。19.2 Ez批处理文件函数Ez批处理文件函数修改缺省批处理文件。除非通过调用BatchSet来修改,缺省批处理文件是Autoexec.bat。应注意的是每个Ez批处理文件函数打开缺省批处理文件然后在作修改后自动保存它。你使用Ez批处理文件函数时你不用调用函数来打开和保存。不要把Ez批处理文件函数和高级批处理文件函数混合起来。调用Batch之后,直到你调用了Batch保存文件后,你才能使用Ez批处理文件函数。EzBatchAddPath修改缺省批处理文件,通过添加一个路径名到一个PATH命令的查找路径或到一个赋给环境变量的值。EzBatchAddString添加一行文本到缺省批

7、处理文件。EzBatchReplace置换缺省批处理文件中的一个语句。19.2.1 EzBatchAddPath语法:EzBatchAddPath(szKey,szPath,szRefDir,nPosition);说明:EzBatchAddPath函数修改缺省批处理文件,通过添加一个路径名到一个PATH命令的查找路径或到一个赋给环境变量的值。除非通过调用BatchSet来修改,缺省批处理文件是Autoexec.bat。调用BatchGet来确定缺省批处理文件的全限定名。为改变EzBatchAddPath使用的批处理文件的文件名,调用BatchSet。该函数不支持长文件名。在把它传递到调用EzB

8、atchAddPath之前调用LongPathToShortPath来转换长路径到它等价短路径。参数:szKey指定要修改的环境变量名。如,为修改PATH语句,在这儿指定path。如果指定的环境变量没有在缺省批处理文件中找到,则为环境变量创建一个完整SET语句并插入到文件中。szPath指定添加到环境变量当前值的路径名。在查找路径中插入一个分界分号来把它和其它路径名分隔开。szRefDir指定与你添加的szPath新路径名相关的参考关键字(一个路径名)。如果这是一个空字符串,该路径名添加到查找路径的开始或结尾,根据nPosition的值而定。如果由szRegKey指定的路径名没有在查找路径中找

9、到,szKey的值被添加到结尾。nPosition指定在查找路径的何处添加新路径名,具体包括以下选项:BEFORE:新路径名被插入到szRefDir指定的路径名的前面。如果szRefDir包含一个空字符串,该路径名被添加到查找路径的前面。AFTER:新路径名被插入到szRefKey指定的路径名之后。如果szRefDir包含一个空字符串,该路径名被添加到查找路径的结尾。返回值:0:EzBatchAddPath成功添加路径名到批处理文件。0:EzBatchAddPath未能添加路径名到批处理文件。注解:缺省批处理文件是隐藏或只读时EzBatchAddPath可能失败。EzBatchAddPath对

10、它修改的文件不做拷贝备分。19.2.2 EzBatchAddString语法:EzBatchAddString(szLine,szRefKey,nOptions);说明:EzBatchAddString函数添加一文本行到缺省批处理文件;除非通过调用BatchSet来修改,缺省批处理文件是Autoexec.bat。为确定缺省批处理文件的全限定名,调用BatchGet。为修改由EzBatchAddPath使用的批处理文件的名称,调用BatchSet。参数:szLine指定添加到文件中的文本行。除非你在nOptions指定NOSET,该函数假定szLine是一个环境变量;在szLine被写入到缺省批

11、处理文件中前文本SET被插入到字符串的前面。批处理文件完全不支持长路径名。如果你使用该函数来添加包含长路径名的一行,则必需先调用LongPathToShortPath把长路径名转换成它等价的短路径,然后再能把它插入到要添加至批处理文件的字符串中。szRefKey指定和你想要在缺省批处理文件中添加的szLine相关的参考关键字。EzBatchAddString在缺省批处理文件中查找参考关键字和在该行前面或后面放置szLine的内容,根据nOptions的值。nOptions指定使用的选项;在该参数位置传递下列预定义常量之一:BEFORE:SzLine被添加到包含szRefKey的行之前。如果sz

12、RefKey是一个空字符串,szLine被添加到文件的第一行。AFTER:SzLine被添加到包含szRefKey的行之后。如果szRefKey是一个空字符串,szLine被添加到文件的最后一行。REPLACE:SzLine置换文件中的一现存行。如果有多行有相同关键字存在,EzBatchAddString仅置换包含该关键字的最后一行。NOSET:指定文本SET不被插入到szLine中的字符串的前面。该常量可以和BEFORE、AFTER、和REPLACE用或操作符(|)组合。当你查找的参考关键字是一个DOS命令或程序名(而不是一个环境变量)时,将常量COMMAND和其它选项常量用或组合,如下所示

13、:EzBatchAddString(szLine,szRefKey,AFTER|COMMAND);返回值:0:EzBatchAddString成功添加文本字符串到一个指定批处理文件。0:EzBatchAddString未能添加文本字符串。注解:EzBatchAddString在参数szRefKey中查找合适的参考关键字。如,一个环境变量的关键字是该环境变量本身的名称。如果缺省批处理文件是隐藏或只读时,EzBatchAddString可能失败。EzBatchAddString对它修改的文件不做拷贝备分。19.2.3 EzBatchReplace语法:EzBatchReplace(szNewStr

14、ing);说明:EzBatchReplace函数置换缺省批处理文件中的一个现存行;除非通过调用BatchSet来修改,缺省批处理文件是Autoexec.bat。为确定缺省批处理文件的全限定名,调用BatchGet。为修改由EzBatchAddPath使用的批处理文件的名称,调用BatchSet。参数:szNewString指定置换文件中一现存行的新字符串。批处理文件完全不支持长路径名。如果你使用该函数来添加包含长路径名的一行,则必需先调用LongPathToShortPath把长路径名转换成它等价的短路径,然后再能把它插入到要添加至批处理文件的字符串中。返回值:0:EzBatchReplace

15、成功置换文本行。0:EzBatchReplace未能置换文本行。注解:EzBatchReplace分析szNewString并确定该字符串的关键字。然后它在缺省批处理文件中查找包含相同关键字的一行。该函数置换找到的有相同关键字的最后一行。一个批处理文件中的一些常用关键字是PATH、COMSPEC、TEMP、Smartdrv.exe、W、和Share.exe。如果缺省批处理文件是隐藏或只读时,EzBatchReplace函数可能失败。EzBatchReplace对它修改的文件不做拷贝备分。20卸载函数下列函数执行卸载安装和/或维护安装一个已安装应用程序的所需服务。ComponentG

16、etTotalCost请参阅7.9。ComponentTransferData请参阅7.23。DeinstallSetReference请参阅15.3。DeinstallStart请参阅15.4。InstallationInfo请参阅15.5。MaintenanceStart请参阅15.6。RegDBGetItem请参阅15.13。RegDBSetItem请参阅15.19。21版本检测函数下列函数允许你访问存在于Windows 95及更高版本的文件中的版本信息。为使用这些函数,你需要知道有关版本资源的背景信息。查阅Microsoft Windows Programmers Reference,

17、Volume 4:资源手册来更好得了解版本资源。函数说明假定你完全熟悉版本资源的概念。下列函数获得一个具体文件的版本,找到一个文件并得到它的版本,或查找一个存在的文件和试图安装该文件的一个更新的版本。函数可工作于压缩文件或未压缩文件。VerCompare比较包含版本信息的两个字符串。VerFind查找指定文件并检索它的版本和位置。VerGet检索一指定文件的版本。VerSearchAndUpdateFile用一个更新的版本置换一个存在的文件。如果指定的文件不存在,则安装更新的版本。VerUpdateFile用一个更新的版本置换一个存在的文件。如果指定的文件不存在,则不安装更新版本。21.1 V

18、erCompare语法:VerCompare(szVersionInfo1,szVersionInfo2,nCompareFlag);说明:VerCompare函数比较两个包含版本信息的字符串。参数:szVersionInfo1以下列格式指定第一个版本字符串:主版本号.次版本号如果szVersionInfo1是,主版本号是2.1,次版本号是2.0。szVersionInfo2以相同格式指定第二个版本字符串。nCompareFlag传递预定义常量VERSION来指定进行版本号的比较。该参数不允许其它值。返回值:EQUALS(2):表明两个字符串有相等值。GREATER_THAN(0

19、):表明第一个字符串包含的值大于第二个。LESS_THAN(1):表明第一个字符串包含的值小于第二个。21.2 VerFind语法:VerFind(sz);说明:VerFind函数查找一个指定的文件并检索文件版本和位置。VerFind使用下列查找算法来找到文件:1.首先,它查找Windows文件夹。2.接着,Windows系统文件夹。3.接着,由系统变量TARGETDIR指定的文件夹。4.接着,由环境变量PATH指定的文件夹。5.最后,Setup.exe运行所在的文件夹。有关Windows系统文件夹的信息,请查看InstallShield系统变量WINSYSDIR的文档。参数:sz指定要获得其

20、版本的文件的非限定名。不要在该参数位置指定一个驱动器指示符或路径。svPath返回文件所在的文件夹的完整路径(包含驱动器指示符)。svVersionNumber返回下列格式的文件版本号:主版本号.次版本号如果szVersionNumber返回,则主版本号是2.1,次版本号是2.0。返回值:0:表明函数成功返回版本信息。(-8):表明文件被找到但不包含版本信息。(-2):表明文件未能找到。注解:当使用VerFind时,你可能需要为TARGETDIR设置一个值,而不是让InstallShield自动设置它。因为函数在TARGETDIR文件夹中寻找文件,你可能需要临时设置系统变量来确保

21、VerFind会找到该文件。如果你要这么做,在将TARGETDIR的值临时设置为另一个文件夹前使用VarSave来保存该值。21.3 VerGet语法:VerGet(sz);说明:VerGet函数检索指定文件的数值型版本信息。参数:sz指定其数值型版本信息要被检索的文件的全限定名。svVersionNumber以下列格式的字符串返回文件数值型版本号信息:主版本号.次版本号如果szVersionNumber返回,则主版本号是2.1,次版本号是2.0。返回值:0:表明函数成功返回版本信息。(-2):表明指定文件未能找到。(-8):表明文件被找到但不包含版本信息。注解:值得注意的是,虽

22、然InstallShield文件版本信息以字符串格式出现,它们所指示的一个文件的版本信息是数值型版本信息。一个文件的字符串版本信息是不能由InstallShield函数检查到和返回的。而且,你必须注意当Windows资源管理器显示一个文件的属性时,它显示字符串版本信息,可能与文件数值型版本信息不等。因为这个原因,由VerGet在参数svVersionNumber返回的值可能与Windows资源管理器显示的版本信息不匹配。有关文件版本信息的更多情况,可查询Windows SDK或Win32 SDK。21.4 VerSearchAndUpdateFile语法:VerSearchAndUpdate)

23、;说明:VerSearchAndUpdateFile函数查找指定的文件并在必要时安装该文件的一个更新版本。如果该函数找到该文件,它比较现存文件的版本号和新文件的版本号。如果现存文件是旧的,它被新文件替换。新文件必须在由系统变量SRCDIR指定的目录中。如果函数未找到一个现存文件,它就拷贝新文件到目标系统。Microsoft Windows根据文件类型决定文件安装在哪里。例如,.dlls和系统驱动器被安装在Windows系统文件夹中。有关Windows系统文件夹的信息,请查阅InstallShiled系统变量WINSYSDIR的文档。VerSearchAndUpdateFile使用下列查找算法来

24、找到现存文件:请参阅VerFind中的查找算法。参数:sz指定要安装的文件的未限定名。不要在该参数位置指定一个驱动器指示符或路径。nUpdateFlag指示是否该文件要被无条件更新或仅当在目标系统上找到的文件版本比你现有的文件版本旧时才更新。在该参数位置传递下列预定义常量之一:VER_UPDATE_COND:仅当现存文件是一个旧版本时才更新它。VER_UPDATE_ALWAYS:即使现存文件是一个更新的版本也要更新它。svInstalledFile返回由该函数安装的文件的全限定名。如果你要置换的文件正在使用,则文件以一个轻微差异的名称被安装到相同目录。文件以其扩展名的第一个字符为字符来更名。例

25、如,如果你安装文件Shell.dll并且文件是锁定的,则该文件被拷贝为Shell.ll。文件名从该变量返回。返回值:(0):函数成功安装文件。(-4):表明文件正在被Windows使用并且不能被置换。新文件以一个新名字被拷贝到相同目录。(-8):表明文件被找到,但它不包含版本信息。文件更新没有执行。(-5):表明现存文件是写保护的。脚本必须在进行安装之前重新设置目标文件的只读标志,然后再尝试安装文件。(-7):表明要安装的文件有相同的日期或比先前存在的文件更早。OUT_OF_DISK_SPACE(-6):表明函数因为目标驱动器上磁盘空间不足,未能创建文件。文件更新没有执行。VER_DLL_NO

26、T_FOUND(-3):表明没有找到Ver.dll。文件更新没有执行。OTHER_FAILURE(-1):表明发生一个不确定错误。文件更新没有执行。注解:使用VerSearchAndUpdateFile时,你可能需要给SRCDIR和/或TARGETDIR设置值,而不是让InstallShield自动设置它们。因为函数在SRCDIR和TARGETDIR文件夹中查找文件,你可能需要临时重新设置这些系统变量的值来确保VerSearchAndUpdateFile会找到文件。如果你需要这么做,则在将SRCDIR和TARGETDIR临时设置为其它值之前使用VarSave来保存它们的值。调用VerSearc

27、hAndUpdateFile函数后,使用VarRestore来重新设置SRCDIR和TARGETDIR。对于文件传输,VerSearchAndUpdateFile的可能的替换函数是XCopyFile,,它可以做版本检测,标记锁定的.dll和.exe文件待系统重启后更新,并且递增共享的.dll和.exe文件的注册表访问计数器。21.5 VerUpdateFile语法:VerUpdate);说明:VerUpdateFile函数使用一个指定文件的版本信息来确定是否要在目标系统上安装该文件。VerUpdateFile在参数sz位置得到文件名。如果在sz没有指定一个全限定名,VerUpdateFile使

28、用下列查找算法来找到该文件(目标文件):请参阅VerFind的查找算法。VerUpdateFile然后将SRCDIR中相同名称的文件的版本和目标文件(如果存在)的版本进行比较。如果源文件的版本号比目标文件的版本号更新,则目标文件被置换为该源文件。如果目标文件不存在,InstallShield拷贝源文件到目标文件。当在参数nUpdateFlag位置是SHARED选项,并且要被更新的.dll或.exe文件正在被系统使用时,源文件的更名拷贝传输到目标系统并且系统变量BATCH_INSTALL设置为TRUE。然后,当在安装结尾调用RebootDialog或SdFinishReboot并且系统重启时,锁

29、定文件被更新。有关更新锁定文件的更多信息请查阅RebootDialog和SdFinishReboot。系统变量BATCH_INSTALL可以被测试来确定是否遇到锁定的.dll或.exe文件。你不能同时使用SHARED选项,你必须使用一个或另一个。参数:sz指定要被更新的文件的全限定名或非限定名。如果该名是非限定的(也就是,如果它不包括一个驱动器指示符或路径),InstallShield查找Windows或Win95目录,系统目录,由环境变量PATH指定的目录,然后是InstallShield可执行文件的目录来找匹配文件。VerUpdate的文件名部分,并用它来标识SRCDIR中作为源文件的文件

30、。nUpdateFlag指示是否该文件要被无条件更新或仅当在目标系统上找到的文件版本比你的源文件版本早时才更新。在该参数位置传递下列预定义常量之一。你可以用按位或操作符(|)将常量SHAREDFILE和其它常量之一组合。你不可将SHARED组合。LOCKEDFILE:使VerUpdateFile标志Windows或系统重启时要被更新的.dll和.exe文件。一个锁定文件是一个当InstallShield试图要访问或更新时而正在被一个应用程序或系统使用的文件。LOCKEDFILE选项和SHAREDFILE一样工作,除了LOCKEDFILE不创建注册表表目或修改注册表访问计数器。你使用SHARED

31、FILE选项时不能使用LOCKEDFILE选项。有一些非共享文件,对它们脚本作者不要注册表表目和访问计数器。这些文件除非由应用程序本身,否则永不被安装。LOCKEDFILE允许VerUpdateFile处理非共享的锁定文件。SHAREDFILE:可以通过用VerUpdateFile将所有文件处理为共享,并标志Windows或系统重启时要被更新的锁定的.dll和.exe文件,来组合共享和锁定文件的处理。当文件存在于目标目录并且它有一个大于0的访问计数器时,SHAREDFILE选项使VerUpdateFile处理所有文件为共享文件并将注册表访问计数器加一。如果共享文件不存在于目标目录并且它没有访问

32、计数器时,InstallShield创建该计数器并把它设置为1。如果共享文件已经存在于目标目录但没有访问计数器时,InstallShield创建该计数器并把它初始化为2,作为一个防止安装过程中意外删除的预防措施。SELFREGISTER当使用非批处理方法安装自注册文件时,立即进行自注册处理。当你已经调用Enable(SELFREGISTERBATCH),自注册文件排队等待注册。当使用批处理方法安装自注册文件时,一旦调用Do(SELFREGISTRATIONPROCESS),这些文件被注册。总是将SELFREGISTER和常量SHAREDFILE用按位或操作符组合一起使用。VER_UPDATE_

33、ALWAYS:更新文件时不考虑版本号。VER_UPDATE_COND:仅当被替换的文件是旧版本时才更新它。svInstalled返回安装的文件的全限定名。如果你想要置换的文件正在被使用,文件以一个更改名安装到相同目录。InstallShield使用一个字符来置换文件扩展名的第一个字符。例如,如果你在更新文件Shell.dll并且目标文件是锁定的,则源文件以Shell.ll被拷贝到目标目录。文件名从参数svInstalled返回。如果SHAREDFILE选项使用到参数nUpdateFlag并且锁定文件当Windows或系统重启时被正确递交来更新,则发生更新时文件的更名版本被删除。返回值:(0):

34、表明函数成功安装文件。该常量等于0。所有其它返回值小于0。(-4):表明现存的文件正被Windows使用,不能被置换。新文件以一个新名被拷贝到相同目录,如前面所述。(-8):表明文件被找到,但它不包含版本信息。不执行文件更新。(-5):表明现存文件是写保护的。你必须在进行安装之前重新设置目标文件的只读位,然后再尝试安装文件。(-9):表明你要安装的文件和现存文件有相同版本。如果VER_UPDATE_COND标志被设置,则不执行文件更新。(-7):表明你要安装的文件比现存文件要早。如果VER_UPDATE_COND标志被设置,则不执行文件更新。OUT_OF_DISK_SPACE(-6):表明函数

35、未能创建文件,因为目标驱动器上磁盘空间不足。不执行文件更新。-51:一个自注册文件未能成功注册。OTHER_FAILURE(-1):表明发生不确定错误。不执行文件更新。注解:在调用任何使用SHAREDFILE选项的函数前,必须使用InstallationInfo来设置应用程序信息,并且必须使用DeinstallStart函数设置卸载信息。当使用VerUpdateFile时,你可能需要为SRCDIR设置一个值,而不是让InstallShield自动设置它。因为函数在SRCDIR文件夹中寻找文件,你可能需要临时设置系统变量来确保VerUpdateFile会找到该文件。如果你要这么做,在将SRCDI

36、R的值临时设置为另一个文件夹前使用VarSave来保存该值。调用VerUpdateFile函数后,使用VarRestore来重新设置SRCDIR。对于文件传输,VerSearchAndUpdateFile的可能的替换函数是XCopyFile,,它可以做版本检测,标记锁定的.dll和.exe文件待系统重启后更新,并且递增共享的.dll和.exe文件的注册表访问计数器。22杂项函数下列函数提供不同的功能,如低层硬件接口,组件创建和操作和用户输出。Do执行当前定义的EXIT和HELP处理程序。DoInstall运行另一个InstallShield安装程序。Handler指定一个对退出和帮助事件响应时

37、转移到的标号。ISCompareServicePack比较安装在目标OS上的服务程序包数和指定的服务程序包数。MessageBeep产生一个标准警告蜂鸣。SendMessage发送一个消息到另一个窗口或应用程序。Sprintf返回一个格式化的包含一个或多个字符,数字或字符串值的字符串。System退出到DOS,重启Windows或重启计算机。VarRestore恢复上一次调用VarSave时保存的系统变量SRCDIR和TARGETDIR的值。VarSave保存系统变量SRCDIR和TARGETDIR的当前值。22.1 Do语法:Do(nOperation);说明:退出和帮助处理程序只支持向后兼

38、容。在一个基于事件的脚本中,你必须使用OnCanceling和OnHelp事件处理程序来代替。Do函数执行当前定义的EXIT和HELP处理程序,给你对这些处理程序更大的控制,它们通常仅当用户按下F1键(HELP),F3键(EXIT),或Cancel button(EXIT)时执行。使用Do函数,你可以执行EXIT或HELP来响应自定义对话框事件或从内部对话框来的任何用户输入。你也可以在脚本开发多成中使用Do函数来测试你的EXIT和HELP处理程序。使用Do函数来注册排队的自注册文件。文件使用针对安装自注册文件的批处理方法来排队等候注册。当你调用Do(SELFREGISTRATIONPROCES

39、S)时,InstallShield进行所有排队文件的自注册,即使它们中一个失败。如果Do因任何原因失败,它会返回-1。自注册失败的文件的名称保存InstallShield系统变量ERROR中,用分号分隔。参数:nOperation指定要执行的操作类型。在该参数位置传递下列预定义常量之一:EXIT:启动Exit操作。如果没有定义EXIT处理程序,则显示缺省的Exit对话框。HELP:启动Help操作。如果没有定义HELP处理程序,函数没有任何动作。SELFREGISTRATIONPROCESS:注册所有已经排队等候注册的自注册文件。返回值:0:Do函数成功启动指定操作。0:Do函数未能启动指定操

40、作。注解:Do函数允许在用户没有按下F1或F3键时当前定义的HELP和EXIT处理程序执行。Do函数也比goto语句(它可以被使用来调用HELP和EXIT处理程序标号)提供更大的通用性。Goto语句不能使用在所有的环境中,但Do函数任何时间都可以被虚拟调用。有关缺省和自定义HELP和EXIT处理程序的更多信息,参阅Handle函数。22.2 DoInstall语法:DoInstall(szIns);说明:DoInstall函数运行另一个InstallShield安装程序。这个函数被调用时,第二个安装程序立即被执行。参数lWait指定调用脚本在继续执行之前是否要等待运行的安装程序完成。由DoIn

41、stall调用的安装必须和运行它的安装有相同的主版本号和次版本号的InstallShield创建。如果试图用DoInstall来运行一个由任何其它InstallShield版本创建的安装程序,则都不可能成功。如果第二个安装程序运行另一个可执行应用程序,第一个安装程序对运行的应用程序不能控制,也没有办法监控运行应用程序的状态。参数:szInsFile指定要运行的已编译脚本文件(.inx)的全限定名(包含一个驱动器指示符和完整路径)。szCmdLine指定一个InstallShield命令行。这儿你可以指定任何有效的启动InstallShield命令行,然而,注意,在这个环境(上下文)中不适当的-

42、f和-l选项,不能被使用。lWait指定调用脚本在继续执行之前是否要等待运行的安装程序完成。在该参数位置传递下列预定义常量之一:NOWAIT:调用安装程序在运行第二个安装程序后立即继续。WAIT:调用安装程序在继续前要等待被运行的安装程序终止。返回值:1:由DoInstall调用(以WAIT为第三个参数)的安装程序成功终止。控制程序继续原安装程序中DoInstall函数下的语句。2:由DoInstall调用(以NOWAIT为第三个参数)的安装程序成功终止。控制程序继续原安装程序中DoInstall函数下的语句。-1:由DoInstall调用的安装程序不能被初始化。该错误的通常原因是丢失一个所需

43、的安装文件,任何运行第二个安装程序时发生的一般错误都会产生该返回值。-2:由DoInstall调用(以WAIT为第三个参数)的安装程序不能找到由szInsFile指定的.inx脚本文件。-3:由DoInstall调用(以WAIT为第三个参数)的安装程序被用户取消。任何其它负值:发生一个未确定错误。注解:第二个安装程序总是运行在由系统变量SELECTED_LANGUAGE当前值指定的语言中。即使第二个安装程序的命令行中使用-l参数,也是如此。注意被运行的安装程序和运行它的安装程序中只有一个共享文件,就是IKernel.ex_。因此,正常运行时,第二个安装程序所需的所有其它安装文件必须和Setup

44、.inx文件位于相同文件夹中。如果不存在这些文件,安装程序不会被正确运行。因此,建议你将由媒体向导创建的所有文件拷贝到你从中运行第二个安装程序的文件夹中。如果你从第一个安装程序的安装支持文件夹(SUPPORTDIR)中运行第二个安装程序,则建议你把这些文件放置在第一个安装程序的安装文件窗格中的适当的语言和操作系统文件夹中,因而安装初始化时,它们会被自动解压缩在第一个安装程序的支持文件夹中。22.3 Handler语法:Handler(nObject,Label);说明:退出和帮助处理程序只支持向后兼容。在一个基于事件的脚本中,你必须使用OnCanceling和OnHelp事件处理程序来代替。H

45、andler函数创建事件的自定义处理程序,如Help的加速键(F1),Cancel的加速键和Exit的加速键(F3)。如果用户按下F1键,则当前定义的HELP处理程序被执行。如果用户按下F3键,则当前定义的EXIT处理程序被执行。如果你没有用Handler函数定义自定义的HELP和EXIT处理程序,则缺省的处理程序将被执行。缺省的EXIT处理程序显示一个Exit对话框。缺省的HELP处理程序不作任何处理。为执行用Handler定义的自定义处理程序,当nObject事件发生时,InstallShield调用参数Label指定的唯一标号。当InstallShield达到处理程序代码中的返回语句(在

46、标号的下一句语句)时,控制程序返回到该语句(如果处理程序标号没有被调用,该语句已经接着执行)。使用Handler,你可以指定EXIT或HELP的自定义处理程序。你可以在Exit处理程序中显示MessageBox,SprintfBox,和AskYesNo对话框;然而,你不能显示Sd对话框。参数:nObject指定转移(陷阱)事件。在该参数位置传递下列预定义常量之一:EXIT:指定当Cancel按钮或F3加速键被按下时的自定义处理程序。如果你不定义一个处理程序,当Cancel按钮或F3加速键被按下时将显示一个缺省Exit对话框。HELP:指定按下F1加速键时的自定义处理程序。如果你不定义一个处理程

47、序,按下F1加速键时不作任何处理。Label指定当按下指定的按钮或加速键时程序必须跳转到的标号名。不要定义该标号为一个数值型值或一个字符串值。为取消一个当前定义的处理程序和重新安装缺省处理程序,给该参数传递-1。该方法在一些脚本中有用,那些脚本中安装的一个自定义处理程序只提供给特定进程,然后就转到缺省处理程序。返回值:0:Handler成功创建处理程序。0:Handler未能创建处理程序。注解:不要定义标号名为一个数值型值或一个字符串值。有效的加速键是F1键(Help)和F3(Exit)(它和脚本对话框中的Cancel按钮的效果一样)。Help(F1)允许你运行Help引擎或提供其它合适的He

48、lp。当用户按下F1键,InstalShield调用当前定义的Help处理程序。你可以在Help处理程序中提供任何类型的Help函数功能。如果你想要提供上下文有关Help,你必须跟踪你脚本中的上下文。例如,你可以有一个包含当前上下文字符串的字符串值。然后你可以在Help处理程序的一个switch-case语句中使用该字符串值,根据该上下文字符串的值来指定适当的Help事件。你也可以测试你的Help处理例程中的全局变量nSdDialog。nSdDialog被设置为当前执行的Sd对话框的对话框ID(在InstallShield Include文件夹中的Sdrc.h中描述)。(当没有Sd对话框执行时

49、,nSdDialog不被定义。)因此当一个Sd对话框执行时,你可以让用户访问Sd对话框特定的Help。正如Help处理程序,你也可以定义并执行自定义和Sd对话框特定的EXIT处理程序。在脚本中,EXIT和HELP处理程序标号和它们的相关代码必须放置在结束程序语句之前。22.4 ISCompareServicePack语法:ISCompareServicePack(szServicePack);说明:ISCompareServicePack函数仅和用InstallShield以前的版本创建的脚本兼容。我们建议你通过检测SYSINFO.WINNT.nServicePack的值来确定Windows

50、NT Service Pack数。ISCompareServicePack函数比较安装在Windows NT系统上的服务程序包数和由szServicePack指定的服务程序包数。参数:szServicePack指定要和目标计算机上的服务程序包数比较的服务程序包数。该字符串的格式必须是Service Pack n,n是服务程序包数。比较区分大小写。返回值:LESS_THAN(1):目标系统上没有安装服务程序包或其数目小于参数szServicePack传递的值。EQUALS(2):服务程序包数匹配。GREATER_THAN(0):目标系统上的服务程序包数大于参数szServicePack传递的值。

51、-1:ISCompareServicePack未能比较服务程序包数。注解:该函数仅工作于WinNT4.0。22.4 MessageBeep语法:MessageBeep(nReserved);说明:MessageBeep函数播放缺省的系统声音。参数:nReserved给该参数传递0。不允许其它值。返回值:该函数无返回值。注解:你有可以通过调用PlayMMedia播放一个音频文件来提供音频信号。22.5 SendMessage语法:SendMessage(nHwnd,nMsg,nwParam,nlParam);说明:SendMessage函数发送一个消息到一个或多个窗口。SendMessage直到

52、消息已经被处理才返回到安装脚本的控制程序。SendMessage函数是直接传递Windows API SendMessage。详细信息请咨询Windows编程文档。参数:nHwnd指定标识接收消息的窗口的句柄。nMsg指定发送给窗口的消息。nwParam指定附加消息的信息。nlParam指定附加消息的信息。返回值:InstallShield SendMessage函数返回它以相同名调用Windows API返回的值。返回值依赖于由Windows API SendMessage接受的消息。有关Windows API SendMessage的返回消息的详细信息请咨询Windows编程文档。注解:为

53、用参数nMsg发送一个消息或处理返回值,你必须在脚本中定义和Windows.h中定义的常量等值的常量。你不能在你的脚本中使用#include来包含Windows.h。22.7 Sprintf语法:Sprintf(svResult,szFormat,arg,.);说明:Sprintf函数从可变数据中使用格式说明符和匹配变量来创建一个字符串。Sprintf函数和Microsoft Windows API wsprintf一样工作。参数:svResult从传递到第三个参数和随后参数的变量中创建一个字符串,根据第二个参数szFormat的说明进行格式化并返回该字符串。szFormat指定一个字符串,它可以包含文字文本并且必须包含针对每个嵌入到svResult返回的字符串中的变量的相应的格式说明符。arg你可以指定多达9个可被包含在消息中的变量。消息中的每个格式说明符都必须有相应的变量;每个变量的类型必须和它各自的格式说明符相匹配。Sprintf will generate acompiler error or fail at run time under the following conditions:Sprintf在下列情况下产生一个编译错误或运行时失败:指定了多于9个格式说明符和变量:编译错误。变量的数目和格式说明符的数目不匹配。当一个说明符没有一个相应的变量时,结果字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论