设置Setup Factory在安装之前或之后执行的操作

设置Setup Factory在安装之前或之后执行的操作

2013年09月26日 09:58:08 阅读数:2762

http://63542424.blog.163.com/blog/static/18883900201191274557280/

2011-10-12 20:44:30|  分类: Setup Factory打|字号 订阅

打包工具--- setup factory 7 使用 
1 不包含源代码的打包过程 
按照新建工程向导 选择了 ”为从属扫描工程文件“选项(或者从“工具”菜单-->扫描VB工程) 完成向导后 
删除:frm/bas/vbp/vbw等源代码文件。 
保留:exe/dll/ocx等运行支持文件 
然后“发布”菜单--> 构建 --> 选择打包文件名 完成打包 
最后安装的文件在安装夹下就没有代码文件了。 


2 修改安装步骤的屏幕和信息 
“工程”菜单 --> 屏幕... -->找到需要的阶段: 安装之前,安装之时,安装之后 --> 点击 “编辑”(还有添加、移除按钮) --> 修改安装信息。 
添加代码是在操作(action)子项目下 

3 添加可执行文件的快捷方式 
找到可执行文件(*.exe) 
右键文件, 
选择“文件属性...” 
找到“快捷方式”tab,选择需要加快捷方式的地方,如桌面等,也能在这里加入注释文字。 

4 包含DAO数据库的打包 
前提:需要DAO(Date Access Object), 
一般是使用data 和 Access数据库。 
1 正常包含了exe文件和支持文件 
2 点击 左上角的“添加文件夹引用”(或者是“工程”菜单 -->“添加文件夹引用”),加入DAO文件夹(3个文件夹)。 
3 点击 左下角的 启动时( "On Startup" actions) tab, 
在事件代码中输入如下(因为7.0有个问题,在6.0不需要这样 
添加) 
SessionVar.Set("%CommonFiles%", SessionVar.Expand("%CommonFilesFolder%")); 

5 程序如何在安装完成后自动调用另一个程序? 

比如:安装之后,执行一个可执行文件(1.exe) 

在“工程”菜单 --> 屏幕...-->操作 界面-->安装之后 在onnext 事件中。 
添加操作",会出现一个新建操作对话框,第一步选择一个类别,你选择shell,第二步选择一个操作,你选择shell.execute。 
if (check01) then 
-- 要执行的语句 
Screen.Next(); 
Shell.Execute(SessionVar.Expand("%AppFolder%").."\\1.exe", "open", "", "", SW_SHOWNORMAL); 
else 
Screen.Next(); 
end 

6 安装前检查是否已经安装过软件? 
在“工程”菜单 --> 屏幕...-->找到安装的第一个屏幕 找到preload 事件中 
-- 用文件存在函数判断是否过安装软件 
if File.DoesExist("%AppFolder%\\1.exe") then 
-- 如果文件存在,提示并退出安装程序 
result = Dialog.Message("通知", "不好意思,软件已经安装过了,将退出安装.", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1); 
Application.Exit(); 
end 

7 搜索各个盘符搜索文件: 
查找各个盘符,返回table 类型, 
drives = Drive.Enumerate(); 
max=Table.Count(drives) 
for count = 1,max do 
-- 要执行的语句 文件查找函数 File.Find 
if( File.Find(drives[count], "1.exe", true, false)) then 
count=max+1 
result = Dialog.Message("通知","不好意思,软件已经安装过了,将退出安装程序", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1); 
Application.Exit(); 
end 
end 

8 几个常用语句 
Shell.Execute 打开文件 
Dialog.Message 提示信息 
File.Find 查找文件 
File.DoesExist 文件是否存在 
File.GetVersionInfo 获取版本信息,返回table type 
Application.Exit(); 退出 
Screen.Next(); 下一屏幕 
table.count() table type 的个数(类似枚举类型) 
Drive.Enumerate 获取各个盘符,返回table type 使用类似数组 table1[1] 

9 增加快捷方式时,注意设置文件的描诉别出现重名,否则一些文件将被覆盖。 
如:可执行文件和帮助手册的描诉重名问题。造成只有帮助文件,无可执行文件。 

10 产生错误2091,无法压缩数据库。 
原因:在进程管理器中该可执行文件依旧在运行 
处理:移除顺利打包。 

11 更多请使用帮助,自己多用每个菜单。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值