杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2035|回复: 0

Setup Factory 7.0使用总结六:安装过程中安装系统组件

[复制链接]
发表于 2016-8-28 19:32:19 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在总结五中对注册表的操作,其实是为了总结六中的安装系统组件作准备。因为首先要知道系统有没有安装该软件环境,然后才能进行选择性的安装。
同样,这一步应该设计在首页之后用户信息之前,防止给用户以安装过程分离缺少整体性的感觉,也要明确是前期必备软件环境安装。因此可以在总结五中创建的checkbox窗体中的On Next中添加相应的安装代码。
需要注意的是:Setup Factory 7.0中的文件分为存档、外部,存档的文件是要安装在目标程序目录上的,外部的打包进安装程序可以释放到指定目录。此外,还有一个不太显眼的“资源”文件,只有“资源”中的初始文件是临时释放到TempFolder进行运行然后自清除的,我们需要使用的也是这个存贮方式。可以点击菜单栏中的“资源”>“初始文件”,打开对应的对话框。
201105181118095360.png
然后,我们在这个checkbox屏幕中添加相应代码,没有安装而被用户选中的将进行自安装。
其中Shell.Execute()是执行指定程序的函数,临时目录的变量为%TempLaunchFolder%,假设该程序文件名为“dotnetfx.exe”,那么可以写成“_TempLaunchFolder..\dotnetfx.exe”。
在安装过程中需要判断这个程序是否执行完毕,才能继续下一步。这样就得用到循环语句,通过添加代码中的“repeat …until not循环”来进行条件循环,再在循环内加入操作File.IsInUse来读取程序运行状态。
这里安装MCR 7.8和.NetFramework 2.0的代码如下:
  1. -- 这些操作在点击“下一步”按钮时执行。
  2. -- 提示:你可以在这里添加验证用户输入信息的操作
  3. tProperties1 = DlgCheckBox.GetProperties(CTRL_CHECK_BOX_01);
  4. tProperties2 = DlgCheckBox.GetProperties(CTRL_CHECK_BOX_02);

  5. -- 运行临时文件夹中的MCRInstaller.exe文件
  6. if(tProperties1.Checked and tProperties1.Enabled) then
  7. Shell.Execute(_TempLaunchFolder.."\MCRInstaller.exe", "open", "", "", SW_SHOWNORMAL);
  8. end
  9. repeat
  10. -- 直至MCRInstaller.exe运行结束才进行下一步
  11. SetupEnd1 = File.IsInUse(_TempLaunchFolder.."\MCRInstaller.exe");
  12. until not SetupEnd1

  13. -- 运行临时文件夹中的dotnetfx.exe文件
  14. if(tProperties2.Checked and tProperties2.Enabled) then
  15. Shell.Execute(_TempLaunchFolder.."\dotnetfx.exe", "open", "", "", SW_SHOWNORMAL);
  16. end
  17. repeat
  18. SetupEnd2 = File.IsInUse(_TempLaunchFolder.."\dotnetfx.exe");
  19. until not SetupEnd2

  20. -- 进入下一个屏幕
  21. Screen.Next();
复制代码
添加好代码后的窗体如图:
这样在这个checkbox窗体检查完系统环境之后,点击“Next”按钮就会执行相应的组件安装操作。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-16 03:21 , Processed in 0.122619 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表