使用PB调用API自动更新(非FTP模式)(七、下载代码)

七、下载代码

STRING GS_COPYSERVER1
STRING GS_COPYSERVER2
STRING GS_COPYSERVER3
string ls_path
string ls_mypath
long ll_count = 0

GS_COPYSERVER1    = ProfileString("autodown.ini","downpath","COPYSERVER1","")
GS_COPYSERVER2    = ProfileString("autodown.ini","downpath","COPYSERVER2","")
GS_COPYSERVER3    = ProfileString("autodown.ini","downpath","COPYSERVER3","")

st_ts.text = '正在检查需要更新软件的数量...'
ls_path = GS_COPYSERVER1
ll_count = f_connect_copycount(ls_path,lb_files1,lb_files2,lb_files3)
if ll_count = -1 then
 ls_path = GS_COPYSERVER2
 ll_count = f_connect_copycount(ls_path,lb_files1,lb_files2,lb_files3)
 if ll_count = -1 then
  ls_path = GS_COPYSERVER3
  ll_count = f_connect_copycount(ls_path,lb_files1,lb_files2,lb_files3)
  if ll_count = -1 then
   st_ts.text = '正在检查是否需要更新软件版本...'
   ls_path = f_connect_copyserver()
   if ls_path = '' then
    messagebox('连接错误!','无法连接服务器!软件不能运行!',stopsign!)
    //close(this)
    return
   end if
  end if
 end if
end if

//messagebox('',ls_path)ls_path<> ''
if ll_count = -1 then
 st_ts.text = '正在检查需要更新软件的数量...'
 ll_count = f_connect_copycount(ls_path,lb_files1,lb_files2,lb_files3)
end if
if ll_count = -1 then
 messagebox('连接错误!','无法连接服务器!软件不能运行!',stopsign!)
 close(this)
 return
end if
if ll_count = 0 then
 st_ts.text = '正在启动主程序...'
 
else
 st_ts.text = '正在更新软件版本...'
 choose case f_connect_copyfile(ls_path,hpb_1,ll_count,lb_files1,lb_files2,lb_files3)
  case 1
   st_ts.text = '正在启动主程序...'
   
  case 2 //启动参数不同,以便赋值更新程序
   st_ts.text = '正在启动主程序...'
   
 end choose
end if
string ls_file
ls_file = gs_application_path + '/xxxxx.exe qqaazzwwss'
run(ls_file)
//close(this)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C/S程序自动升级是一个很重要的功能,原理其实很简单,一般包含两个程序一个是主程序,也就是除了升级功能以外的程序 主要包括以下几点:   1 比较版本  2下载文件  3更新文件 4启动主程序。但其中的需要注意的细节很多。      一般服务端会有一个配置文件包含最新更新的文件信息的配置文件,当然这些更新信息也可以存到数据库,或者其他地方。客户端(也就是需要更新的那部分程序)也有一个配置文件包含客户端版本信息,这些信息可以存到专门的一个配置文件中,或者是config文件中,没有一定的规定,可以根据实际设计。    在客户端程序启动时,先启动更新程序通过比较本地版本和服务端最新的版本信息判断是否有新版本,如果有可以直接下载下载完成替换成功后并更新客户端版本信息,启动主程序。             缺点:如果更新速度由于更新的文件很大或者网速很慢,用户不得不等待很长时间,直到下载完成或者下载失败。             优点:处理完成后,启动的直接就是更新后的程序。不会出现由于主程序在运行导致替换文件时提示文件在使用,不能替换之类的错误。    另一种方法是, 在客户端段程序启动时,启动更新程序,但更新程序不做版本判断,到客户端更新目录下检查有没有下载的新版本,如果有就更新主程序并更新客户端版本信息,然后启动主程序,如果没有就直接启动主程序。由主程序判断是否有新版本,并在后台下载把文件放到客户端更新目录中,下载完成后,提示用户退出主程序,重新启动,在启动时由更新程序并更新客户端和客户端版本信息。                 缺点:由于下载是在主程序的后台运行,可能会影响主程序的处理速度。             优点:避免了由于下载导致用户长时间的等待。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值