《用setup factory 7.0制作安装程序(进阶篇)》由会员分享,可在线阅读,更多相关《用setup factory 7.0制作安装程序(进阶篇)(17页珍藏版)》请在金锄头文库上搜索。
1、用用 Setup Factory 7.0 制作安装程序(进阶篇)制作安装程序(进阶篇)作者: Stanley Zhao 来源:留住这时光 时间:2006-04-29 点击:12285用用 Setup Factory 7.0 制作安装程序制作安装程序进阶篇进阶篇作者:Stanley Zhao版权所有,如转载请注明出处在基础篇里面,我们简单地讲了一下安装程序的制作过程,但是如果碰到一个稍微复杂点 的安装程序,比如需要对注册表进行编辑,或是安装过程中需要执行外部文件等,那么又 该如何处理呢?大家不要着急,看完进阶篇后你就知道怎么办了。既然要处理各种复杂的事件,那当然是离不开编程。Setup Fact
2、ory 7.0 也提供了自己的语言 来编写代码,主要是在“屏幕”和“操作”中。我们先来看一下主界面左侧的“操作”,共有 4 项: 启动时、预安装时、进行安装时、关机时。如下图。点击“启动时”,即可编写安装程序启动时需要处理的事件代码。如下图。点击窗口下方的“添加操作”,可以加入 Setup Factory 7.0 所提供的事件代码。如下图。比如想添加一个要求输入密码的对话框,则可选择 Dialog 类别中的 Input 操作,如下图。点击下一步后,在该操作的各项目中输入相应数据,如下图。点击完成后,该操作就以代码的形式出现在窗口中了,如下图。接着可以添加条件语句来判断密码是否有效。点击窗口下方
3、的“添加代码”,并选择“if 语句 (不相等)”。如下图。添加后,在窗口中多了几段代码,如下图。这时,需要按它提供的格式进行修改这些代码。如下图。我们需要在 if 语句内加入密码无效后的操作,即提示密码出错和退出安装程序。点击“添加 操作”后,选择 Dialog 类别中的 Message 操作以及 Application 类别中的 Exit 操作,完成后 代码如下图所示。这样就实现了一个简单的密码登录功能,稍微有些缺陷的是密码输入时是以明文显示。不 过我们这里讲述的是如何通过添加操作和代码来实现相应功能,否则我们完全可以在安装 之前的屏幕中通过添加验证序列号来实现此功能。那么如何实现验证序列号
4、的功能呢?首先我们要生成属于安装程序的序列号。在菜单工程 中点击序列号,出现如下图所示窗口。选中列表 List 1,点击编辑,并选择命令中的生成。如下图。然后输入需要的序列号数量以及格式,如下图。确定后,即可生成所需的序列号,如下图。可将这些序列号全选后导出到一个文本文件中。确定后,再到安装之前的屏幕中添加验证序列号屏幕。如下图。这样,安装过程中验证序 列号的功能就实现了。在菜单的工程中点击到期,并启用相关设置后,安装程序还能具备使用到期功能。如下图。按上图中的设置制作的安装程序,如果执行安装程序的电脑上日期不在此范围之内,那么 就会提示如下画面。不过,到期功能并不太实用,因为只要将电脑上的日
5、期改成安装程序 制作日期就能继续使用了。有时候在安装过程中或安装后需要执行其中一个程序,比如破解程序、汉化程序,或是一 个驱动什么的东东,而这个程序可能不需要安装到电脑中,只需要在安装中被执行一次就 OK 了。那么我们就可以这么做。由于该程序不需要随着其他文件一起安装到电脑中,所以不能通过添加文件来加入到安装 包中,而是点击主界面左侧“资源”中的“原始文件”来添加,如下图。这样在安装程序执行时, 该文件就被解压缩到临时目录下,并在安装程序正常关闭后自动删除。然后,我们就可以在某个屏幕中去添加相应代码。比如需要在安装之后但结束屏幕还未显 示之前执行该程序,那么就可以在该屏幕的“On Preloa
6、d”操作中加入 Shell.Execute。注意临 时目录的变量为%TempLaunchFolder%,假设该程序文件名为“Setup.exe”,那么可以写成 “_TempLaunchFolder.“Setup.exe“”。即某个字符型变量与字符串组合可以用“_变量名. 字符串”的格式来书写。仅仅添加这一条代码还不够,我们还要判断该程序是否执行完毕, 才能继续下一步,比如再执行下一个外部程序什么的。这样就得用到循环语句,通过添加 代码中的“repeat until 循环”来得到一个循环语句,再在循环内加入操作 File.IsInUse,并 将值赋给一个自定义变量,最后修改循环条件。如下图。还有
7、一种情况需要重点讲述一下,就是安装程序不需要手动选择安装目录,而是固定安装 在电脑中的某个目录下,比如插件、汉化、破解等。那么这个目录的取得可能就是要读取 注册表内某个软件的安装路径来重新定义了。下面就讲一下如何制作。首先我们要从注册表内取得安装路径,这个取得过程应该是安装程序启动时就需要执行了。 点击主界面左侧“操作”中的“启动时”,添加操作 Registry.GetValue,并将值赋给一个自定义 变量,Registry.GetValue 的写法中,注意 SubKey 子键名称中子键连接符是“”,如下图。此时,上图中的变量 ProductPath 就得到了一个安装路径,稍做处理后就可以作为
8、本安装程 序的安装路径。但是由于该变量是在代码中定义的,不能用在安装包内文件属性中的“目标” 中。“目标”中的变量必须是会话变量,因此我们可将变量 ProductPath 再赋给某个会话变量。 会话变量可以是 Setup Factory 7.0 自带的,也可以自定义。点击主界面左侧“设置”中的“会 话变量”,再点击窗口下方的“添加”可添加自定义会话变量。如下图。然后再到代码中将刚刚的变量 ProductPath 赋给会话变量,注意必须使用操作 SessionVar.Set 来给会话变量赋值,例如 SessionVar.Set(“%AppFolder%“, ProductPath)。如下 图。如果安装程序需要将安装包内的文件分别安装到不同目录下,那么就必须将这些文件属性 中的“目标”修改成不同的会话变量才可实现。Setup Factory 7.0 的常用功能差不多就这些,主要是看你怎么合理利用它自带的操作,再结 合控制代码,就能编写出功能强大的安装程序了。