正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在总结五中对注册表的操作,其实是为了总结六中的安装系统组件作准备。因为首先要知道系统有没有安装该软件环境,然后才能进行选择性的安装。 同样,这一步应该设计在首页之后用户信息之前,防止给用户以安装过程分离缺少整体性的感觉,也要明确是前期必备软件环境安装。因此可以在总结五中创建的checkbox窗体中的On Next中添加相应的安装代码。 需要注意的是:Setup Factory 7.0中的文件分为存档、外部,存档的文件是要安装在目标程序目录上的,外部的打包进安装程序可以释放到指定目录。此外,还有一个不太显眼的“资源”文件,只有“资源”中的初始文件是临时释放到TempFolder进行运行然后自清除的,我们需要使用的也是这个存贮方式。可以点击菜单栏中的“资源”>“初始文件”,打开对应的对话框。
然后,我们在这个checkbox屏幕中添加相应代码,没有安装而被用户选中的将进行自安装。 其中Shell.Execute()是执行指定程序的函数,临时目录的变量为%TempLaunchFolder%,假设该程序文件名为“dotnetfx.exe”,那么可以写成“_TempLaunchFolder..\dotnetfx.exe”。 在安装过程中需要判断这个程序是否执行完毕,才能继续下一步。这样就得用到循环语句,通过添加代码中的“repeat …until not循环”来进行条件循环,再在循环内加入操作File.IsInUse来读取程序运行状态。 这里安装MCR 7.8和.NetFramework 2.0的代码如下: - -- 这些操作在点击“下一步”按钮时执行。
- -- 提示:你可以在这里添加验证用户输入信息的操作
- tProperties1 = DlgCheckBox.GetProperties(CTRL_CHECK_BOX_01);
- tProperties2 = DlgCheckBox.GetProperties(CTRL_CHECK_BOX_02);
-
- -- 运行临时文件夹中的MCRInstaller.exe文件
- if(tProperties1.Checked and tProperties1.Enabled) then
- Shell.Execute(_TempLaunchFolder.."\MCRInstaller.exe", "open", "", "", SW_SHOWNORMAL);
- end
- repeat
- -- 直至MCRInstaller.exe运行结束才进行下一步
- SetupEnd1 = File.IsInUse(_TempLaunchFolder.."\MCRInstaller.exe");
- until not SetupEnd1
-
- -- 运行临时文件夹中的dotnetfx.exe文件
- if(tProperties2.Checked and tProperties2.Enabled) then
- Shell.Execute(_TempLaunchFolder.."\dotnetfx.exe", "open", "", "", SW_SHOWNORMAL);
- end
- repeat
- SetupEnd2 = File.IsInUse(_TempLaunchFolder.."\dotnetfx.exe");
- until not SetupEnd2
-
- -- 进入下一个屏幕
- Screen.Next();
复制代码添加好代码后的窗体如图: 这样在这个checkbox窗体检查完系统环境之后,点击“Next”按钮就会执行相应的组件安装操作。
|