没有合适的资源?快使用搜索试试~ 我知道了~
InstallShield内部库函数
需积分: 0 9 下载量 6 浏览量
2008-06-13
12:20:03
上传
评论
收藏 967KB DOC 举报
温馨提示
试读
64页
InstallShield内部库函数
资源推荐
资源详情
资源评论
InstallShield 内部库函数
1 库函数综述
InstallShield 包含 300 多个内部库函数,用户可在安装脚本中调用它们来创建程序组,操作文件夹,
处理目录,监督安装状态,创建对话框,操作文件及其它更多工作。因为 InstallShield 脚本编译器已经识
别这些库函数名,所以用户在使用它们之前无须说明。
为了成功调用一个内部库函数,用户必须知道库函数名称及使用格式。InstallShield 库函数参阅附录
D 库函数索引。在接下去的几节中我们将对其中主要的一些库函数作详细介绍。在这里先简单向用户描述
一下库函数的构成。
如:AskYesNo 是一个库函数,它在对话框中显示一个询问,然后等待最终用户通过点击按扭来响应,
Yes 或 No。AskYesNo 格式如下: AskYesNo(szQuestion,nDefault)。这个格式显示了正确的函数名,括号中
显示了函数的参数列表。在函数的详细说明帮助中,每个参数用匈牙利标记法表示,指出每个参数位置上
可被接受的数值类型。AskYesNo 要求两个参数:第一个是字符类型,第二个是数值型。
与 C 语言一样,InstallShield 区分大小写,因此用户要严格注意库函数名称中大写字母。
在用户的脚本中使用任何库函数,传递的参数数目一定要正确,并且要确保传递的每个参数值符合
该位置规定的类型。如果用户传递了错误的参数数目或者在任何一个或几个参数位置传递了不相符的数值
类型,脚本都不能被编译。
注意:
.作为参数传递的字符串必须包括在单引号或者双引号内。
如:“Please wait while files are transferred”,或‘This is a string’或“c:\Myfolder\myfile.txt”
.InstallShield 不允许将一个赋值语句作为参数传递。另外,用户在一个函数变量中不能使用 &&或||运算
符。
.由一个调用传递给一个函数的可变长字符串变量在被调用函数中不能自变长。如果函数试图赋一个值,
该值的长度超过参数的现有长度,则会发生 401 运行错误。为避免这个错误,在调用将字符串传递给一个
函数时就要为字符串指定一个特定长度。
2 用户界面函数
用户界面函数允许用户自定义特定的错误信息及错误框标题。然而,一些在安装开发中遇到的内部
错误信息是不能由用户界面函数来修改的。这部分主要对用户界面函数的语法、描述、参数等作详细说明。
2.1 Disable 函数
语法:Disable(nConstant)
说明:Disable 函数使由参数 nConstant 指定的用户界面对象或安装特性无效。
参数:
nConstant
指定用户界面对象或可操作特性使其无效,在这个参数位置传递下列预定义常量之一:
BACKBUTTON:使在一些内部对话框中显示的 Back 按钮无效(即使其变灰显示),Back 按钮缺省
置为有效。
BACKGROUND:使安装主背景窗口无效且隐藏。注意:当安装处于全屏幕方式时该参数不起作用。
BILLBOARD:在安装过程中取消布告板的显示。
DIALOGCACHE:使对话缓冲机制无效。有关对话缓冲的详细说明,请参阅 Enable。
HOURGLASS:使光标由一个“忙”光标(缺省为沙漏光标)改变为标准光标(缺省为一个指针)。
INDVFILESTATUS:使路径及文件名在文件传输时不显示在进度指示器(状态条)中。
LOGGING : 不 记 录 卸 载 信 息 , 使 信 息 不 记 录 在 卸 载 日 志 文 件 中 。 注 意 : 记 录 功 能 由 函 数
DeinstallStart 自动置为有效。在调用 DeinstallStart 之前置记录卸载信息无效将不起任何作用,因为当
DeinstallStart 被调用时,记录功能将被自动激活,用户必须就在不应被记录的卸载操作执行之前手控禁止
记录。
NEXTBUTTON:使一些内部对话框的 Next 按钮无效(使其变灰显示)。Next 按钮缺省置为有效。
SELFREGISTERBATCH:使注册自注册文件的批处理方法无效。详细说明请参阅 Enable。
SATAUS:使标准进展指示器(状态条)无效且隐藏。
STATUSDLG:使对话框形式的进展指示器(状态条)无效且隐藏。
STATUSEX:禁止以显示安装状态对话框来取代进度指示器(状态条)。
STATUSOLD:使原风格的进度指示器(状态条)无效且隐藏。
返回值:
0:说明函数成功禁止了由参数 nConstant 指定的用户界面对象或安装特性。
<0:说明函数未能禁止由参数 nConstant 指定的用户界面对象或安装特性。
注解:
·如果用户的脚本中调用 Disable 函数来禁用 Next 或 Back 按钮,那么在函数被调用后的所有对话框中该按
钮均被禁用,为激活 Next 或 Back 按钮,用户需带相应的常量来调用 Enable。
·DIALOGCACHE 在没有 Next 或 Back 按钮的对话框中不起作用。
2.2 Enable 函数
语法:Enable (nConstant);
说明:Enable 函数激活由参数 nConstant 指定的用户界面对象或安装特性。
参数:
nConstant
指定你要激活的用户界面对象或操作特性。在该参数位置传递下列预定义常量之一:
BACKBUTTON:激活显示在一些内部对话框中的 Back 按扭。缺省时 Back 按扭是被激活的,但可以
通过调用 Disable 函数来禁用它。
BACKGROUND:当安装是在窗口方式时,显示安装主背景窗口。当安装是缺省的全屏幕方式时,
该常量没有作用。为激活窗口方式,你必须以常量 DEFWINDOWMODE 或 FULLWINDOWMODE 来调用
Enable。
DEFWINDOWMODE:配置主背景窗口为一个有标题栏的标准窗口。如果背景窗口被激活,它的外
观将会立即改变。如果背景窗口被禁用,屏幕不会被修改直到带常量 BACKGROUND 调用 Enable 时。
DIALOGCACHE:激活对话框缓冲机制,它可以消除在显示对话框之间出现的屏幕闪烁。这种屏幕
闪烁在运行于窗口方式的安装的标题栏中特别明显。注意对话框缓冲机制仅工作于有 BACK 和 NEXT 按
扭的对话框。缺省时对话框缓冲被禁用。
FULLWINDOWMODE:设置主背景窗口为一个有标题栏的最大化窗口。如果背景窗口被激活,它的
外观将会立即改变。如果背景窗口被禁用,屏幕不会被修改直到带常量 BACKGROUND 来调用 Enable 时。
HOURGLASS:使光标改变为“忙”光标,缺省为一个沙漏光标。
INDVFILESTATUS:当调用 ComponentTransferData、 CopyFile、 或 XcopyFile 并且进度指示器被激
活时,激活显示每个文件的全限定名(在进度指示器的第二行中显示)。注意,在一个运行基于事件的脚
本的安装程序中,ComponentTransferData 被自动调用。
LOGGING:激活存入卸载记录功能。当存入功能被激活时,InstallShield 存入的卸载记录的操作结
果将被记录在卸载日志文件中,并将在卸载过程中被反向。自动调用 DeinstallStart 激活存入功能;因此,
你不需要手动激活存入功能除非你先前用 Disable 函数禁用了它。
NEXTBUTTON:激活显示在一些内部对话框中的 Next 按扭。Next 按扭缺省为激活。
SELFREGISTERBATCH:激活注册自注册文件的批处理方法。该方法使用来避免和自注册文件相关
联的依赖性问题。缺省为标准(非批处理)自注册。
有关批处理方法的更多信息如下:
·在文件组窗格中,高亮显示你的自注册文件的文件组文件夹。它的属性表在打开在右边。
·双击 Self-Registered 域,则自注册页打开。
·选择"Yes, all the files in this file group are self-registering"单选钮。
·打开你的安装脚本(在 Scripts 窗格中找到 Setup.rul)。
` 在你传输文件前,以 SELFREGISTERBATCH 选项调用 Enable 函数。所有自注册文件放在一个内部
队列中,也就是,当它们被安装时它们会被立即注册。(在一个使用基于事件脚本的安装程序中 ,
OnBegin 处理程序被调用前,Enable(SELFREGISTERBATCH)会被自动调用。)
传 输 文 件 后 , 以 SELFREGISTRATIONPROCESS 选 项 调 用 Do 函 数 。 当 你 调 用
Do(SELFREGISTRATIONPROCESS)时,InstallShield 注册所有自注册文件。如果当 Do 被调用时,系统变
量 BATCH_INSTALL 等于 TRUE(表明需要一个重启来完成该安装),则注册自注册文件被延迟到重启后。
在你调用 Do(SELFREGISTRATIONPROCESS)后,你可以检查自注册是否成功。如果因任何原因 Do
失败了,它会返回-1。那些自注册失败的文件的名称被保存在系统变量 ERRORFILENAME 中,由一个分
号分隔。
例如,下列代码将所有自注册文件注册在文件媒体库中。
// Enable batch method to queue self-registering files.
Enable ( SELFREGISTERBATCH );
// Install files.
nResult = ComponentTransferData( MEDIA );
// Register the files, check for errors.
if Do ( SELFREGISTRATIONPROCESS ) < 0 then
szMsg = "File(s) failed to self-register: \n" + ERRORFILENAME;
MessageBox (szMsg, WARNING);
endif;
STATUS:激活显示标准进度指示器(状态栏)。
STATUSDLG:激活显示对话框风格的进度指示器(状态栏)。
STATUSEX:激活显示安装状态对话框来取代进度指示器(状态栏)。
STATUSOLD:激活显示旧风格进度指示器(状态栏),它没有一个 Cancel 按扭。
返回值:
0:表明函数成功激活由参数 nConstant 指定的用户界面对象或安装特性。
< 0:表明函数未能激活由参数 nConstant 指定的用户界面对象或安装特性。
注解:
·缺省时,安装运行在全屏方式;主背景窗口显示为一个没有标题栏的全屏窗口。这种方式中,主安装窗
口不能被调整大小并且没有一个可见的标题栏。为激活窗口方式,你必须以常量 DEFWINDOWMODE 或
FULLWINDOWMODE 来调用 Enable。
·如果你的脚本中调用 Disable 函数来禁用 Next 或 Back 按钮,那么在函数被调用后的所有对话框中该按钮
均被禁用,为激活 Next 或 Back 按钮,你需带相应的常量来调用 Enable。
·DIALOGCACHE 在没有 Next 或 Back 按钮的对话框中不起作用。
2.3 FindWindow
语法:FindWindow (szClassName, szWinName);
说明:FindWindow 函数通过指定一个窗口的窗口类和窗口名为高级开发人员提供一个得到窗口句柄的方
法。如果你知道了一个应用程序的窗口类和窗口名,就可得到它的句柄。然后你可以通过这个句柄直接发
送信息给该窗口。
参数:
szClassName
指定窗口所属类的名字。若指定为“任意类”,则在该参数处传递一个空字符串。
szWinName
指定窗口标题。为返回指定类中最顶层窗口的句柄,在该参数处传递一个空字符串(“”)。
返回值:
XXXX:窗口的句柄。
NULL (0):FindWindow 根据指定的窗口名和类名不能找到该窗口。
注解:
·要找到一个窗口的类和名字,可运行 Microsoft Spy.exe 程序。
2.4 PlaceBitmap
语法:PlaceBitmap (szName, nID_BITMAP, nDx, nDy, nDrawOp);
说明:PlaceBitmap 函数在安装窗口中插入一个图象。图象来源由 szName 指定,它可以是一个位图文件(
bmp),图元文件 (.wmf),或者是动态链接库(.dll)。 InstallShield 支持 2 色、16 色、256 色和真彩色位
图(bitmap)。 2 色、16 色、256 色位图可有透明部分。
透明位图在显示可与背景窗口组合显示的图象时有用。在位图中与指定的透明色匹配的像素不会被显示 ;
在该位置的背景像素保持可见。在安装中,一个有技巧的设计常常用包含有公司名称和徽标的透明位图来
作为安装窗口的标题。
为指定一个透明位图,你必须给参数 nDrawOp 位置传递一个常量 BITMAPICON。你也必须考虑在一个
位图中什么颜色被置为透明。缺省的透明色是 purple(RGB(255,0,255))。要指定一个不同的透明色,可用下
面描述的参数 szName 来指定。
因为图元文件(metafile)是绘制的,而不是放置的,它们固有为透明。如果 BITMAPICON 被指定
为一个图元文件,则该参数被忽略。
通过使用 SetDisplayEffect 函数可以显示非透明位图的许多特殊显示效果。该函数也为图元文件提供了
有限的显示效果。
窗口中位图的位置可以用两种方法中的一种来指定:
·通过参数 nDrawOp 来传递位置常数。
·通过参数 nDx 与 nDy 来传递距安装窗口边缘的垂直和水平位移。
通常可通过调用 PlaceBitmap(将参数 nDrawOp 设置为 REMOVE)来删除任何不再需要的位图文件和图元
文件。建议删除不需要的位图,即使该位图可以被其他位图完全覆盖,因为第一个位图的调色板入口只有
在位图被删除后才会被释放。
一个真彩色位图显示在一个运行于 16 色或 256 色模式的系统上时,只用那些在调色板中有效的颜色;
不会给位图分配附加的颜色,即使附加调色板入口是有效的。若你希望含有 24 位位图的安装可在 16 色或
256 色的系统中运行,需要包含该位图的 16 色或 256 色的版本。然后在选择要显示的位图前带参数
COLORS 调用 GetSystemInfo 来确定当前颜色模式。
参数:
szName
指定要被显示图象的位图文件、图元文件的全限定名或动态链接。InstallShield 通过扩展名来识别位图文
件和图元文件。位图文件必须有扩展名.bmp,图元文件必须有扩展名.wmf.动态链接必须有扩展名.dll。如果
一个文件名指定为没有扩展名,InstallShield 将假定其扩展名为.dll。
为指定一个候选透明色,在文件名后放置一个分号(;),后随一组 RGB 颜色值(RGB 颜色由三个
数值指定,由逗号分隔)。该颜色被用作由 szName 指定的位图的透明色。注意它对于已经被显示的位图
不起作用,也不会成为随后调用 PlaceBitmap 而显示的位图的缺省透明色。
下面的参数指定白色为透明色:
SUPPORTDIR ^ "Bitmap.bmp;255,255,255"
当 nDrawOptions 设置为 REMOVE 时,该参数被忽略。
nID_BITMAP
指定驻留在一个.dll 中的位图的资源 ID。如果位图的源点是图元文件或位图文件,指定一个在当前显示的
图 象 中 没 有 使 用 的 数 值 ; 所 有 同 时 显 示 的 图 象 必 须 有 其 唯 一 的 ID 号 。 当 nDrawOptions 设 置 为
REMOVE,该参数必须包含显示的图象的 ID。
nDx
当 nDrawOp 设置为 LOWER_LEFT, LOWER_RIGHT, UPPER_LEFT, 或 UPPER_RIGHT 时以像素点指定安
装窗口边缘和图象边缘之间的水平距离;否则该参数被忽略。
nDy
当 nDrawOp 设置为 LOWER_LEFT, LOWER_RIGHT, UPPER_LEFT, 或 UPPER_RIGHT 时以像素点指定安
装窗口边缘和图象边缘之间的垂直距离;否则该参数被忽略。
nDrawOp
指定位图放置的位置,设置放置选项,或者删除先前放置的位图。给该参数传递下列预定义好的常数:
BITMAPICON:指出位图有透明部分。用户可以用按位或运算符(|)来将该常量和其他常量(除
TILED、FULLSCREEN 或 FULLSCREENSIZE 外)组合。当 BITMAPICON 和那些常量之一组合时,按位
或运算被忽略,而只使用 BITMAPICON。
TILED:位图在主安装窗口平铺。该常量通常被用来创建一个安装背景。当该常量被指定时,即使
位置选项被忽略,特殊效果已被 SetDisplaytEffect 激活,位图仍正常显示。
FULLSCREEN:拖拉图象使其填充整个安装窗口。拖拉时图象不会被调整大小。如果一个位图图象
比 InstallShield 主窗口小,它在窗口中被置中,背景由当前背景色填充。缺省值为深青色(teal);可以通
过使用 SetColor 函数来 改变。当这个常量被指 定时,位置选项被忽略,即使一个特 殊效果已 经被
SetDisplayEffect 激活,位图仍正常显示。
FULLSCREENSIZE:拖拉和伸展图象使其填充满整个安装窗口。当这个常量被指定时,位置选项被
忽略,即使一个特殊效果已经被 SetDisplayEffect 激活,位图仍正常显示。
CENTERED:将位图置于 InstallShield 安装窗口的中央。
LOWER_LEFT:将位图置于 InstallShield 安装窗口的左下角。
LOWER_RIGHT:将位图置于 InstallShield 安装窗口的右下角。
UPPER_LEFT:将位图置于 InstallShield 安装窗口的左上角。
UPPER_RIGHT:将位图置于 InstallShield 安装窗口的右上角。
REMOVE:删除一个先前放置的位图或图元。任何由 SetDisplayEffect 激活的特殊效果被忽略。
返回值:
0:表明函数成功找到和放置图象。
< 0:表明函数未能找到或放置图象。
注解:
·调用 SetDisplayEffect 来为非平铺、全屏幕、透明位图设置特殊效果;用户也可以用它为图元设置有限的
特殊效果。
·InstallShield 不支持 24 位透明位图。如果用户在一个 24 位位图中包含了透明色而且指定了 BITMAPICON
常量,该颜色将被正常显示。
·当你在运行 256 色模式的系统中放置一个 256 色的位图时,InstallShield 将试图分配位图的调色板到系统
调色板。如果多个 256 色位图被放置,InstallShield 将试图将所有可视位图的调色板合并到系统调色板,
优先为最近放置的位图。这种行为可能导致在其他位图被显示时先前放置的位图改变颜色。
剩余63页未读,继续阅读
资源评论
Cupor
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功