- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
InstallScript 是专门用来编写 InstallShield 安装程序的脚本语言。由于 InstallScript 和C 语
言极为相似,因而使得 Visual C++用户编写安装脚本程序颇为得心应手。即使对于没有任
何语言基础的用户来说,编写 InstallScript 程序也不会觉得无从下手,因为 InstallScript 程
序结构是非常简单的。并且,
InstallScript 为用户提供了超过250 个的内部函数,从而使得用户不需要太多的代码就能编
写出具有专业水准的安装程序来。
2.1 InstallScript 程序结构
同其他程序设计语言一样,InstallScript 脚本语言也有自己的程序结构。
2.1.1 几个InstallScript 程序
下面先来看看几个比较简单的InstallScript 程序。
[例Ex_Hello] 一个简单的InstallScript 程序,用来弹出问候对话框。
STRING szTitle;
program
szTitle = 问候;
SetDialogTitle (DLG_MSG_INFORMATION, szTitle);
MessageBox(您好!, INFORMATION );
endprogram
程序中,program...endprogram 构成主程序体,每一个 InstallScript 程序中都必须包
含一个且只有一个这样的主程序体。在主程序体外,只能是变量定义、用户函数定义以及预
处理指令等,而程序体内可以包括若干条语句,每一条语句都由分号 ;结束。本例中,
SetDialogTitle 和MessageBox 都是InstallScript 的内部函数,它们分别用来设置对话框的
标题和显示指定的信息文本,INFORMATION 是一个系统预定义的常量,szTitle 变量是在
程序体外定义的字符串变量。
[例Ex_Func] 自已定义一个函数,用来显示消息对话框。
STRING szTitle; // 定义一个字符串变量
prototype MyMessage(STRING, STRING); // 自定义函数的声明
program
szTitle = 问候;
MyMessage(szTitle, 您好!);
endprogram
function MyMessage(szTitle, szMessage) /* MyMessage 函数体 */
begin
SetDialogTitle (DLG_MSG_INFORMATION, szTitle);
MessageBox(szMessage, INFORMATION );
end;
尽管本例的结果和 Ex_Hello 示例相同,但它使用了自定义函数 MyMessage。InstallScript
语言规定,一个自定义函数名必须在 program 关键字前面声明,而函数体代码的实现代码
必须在endprogram 后进行,且每个自定义的函数体都必须以begin 开始end 结束(注意end
后要有分号;) 。程序中的/*...*/之间的内容或//开始一直到行尾的内容是用来注释的,
它的目的只是为了提高程序的可读性,对编译和运行并不起作用。正是因为这一点,注释的
内容可以用汉字来表示,也可以用英文来说明,只要便于理解就行。
[例Ex_Include] 使用包含文件。
#include Sddialog.h;
STRING szTitle, szMsg, svDir;
program
szTitle = SdAskDestPath Example;
svDir = C:\\EXAMPLE\\TARGET;
szMsg = ;
// 获取用户指定的安装路径
if (SdAskDestPath(szTitle, szMsg, svDir, 0) = NEXT) then
TARGETDIR = svDir;
endif;
// 显示用户指定的安装路径
SprintfBox(INFORMATION, SdAskDestPath, Successful.\n\nThe Target +
directory is: + TARGETDIR);
endprogram
#include Sddialog.rul
该程序是使用Sd
文档评论(0)