系统在线更新的代码

大概是这样的。没测。。

呵呵。。 http的传输还是比较好的

 

 

procedure checkupdate;
var
  ustream:tmemorystream;
  verstr:string;
  oldname,newname:pchar;
  oldsize,newsize:dword;
begin
  ustream :=tmemorystream.Create ;
  try
    //get new version infomation
    verstr:=frmclient.HTTPC.Get('/jfgl/version.ini');
    if (verstr<>'') and ((strtointdef(fetch(verstr,'.'),1)>1) or (strtointdef(fetch(verstr,'.'),0)>1) or (strtointdef(fetch(verstr,'.'),1)>0) or (strtointdef(fetch(verstr,'.'),1)>0)) then
    try
      //get new exe file and rename to filename.tmp
      frmclient.httpc.Get('/jfgl/client.exe',ustream);
      ustream.SaveToFile(ChangeFileExt(application.ExeName,'.tmp'));
      //replace exe file until last boot because it is now running
      //if you have better method please tell me,thank's
      getmem(oldname,max_path);
      fillchar(oldname[0],max_path-1,0);
      getshortpathname(pchar(application.exename),oldname,oldsize);
      getmem(newname,max_path);
      fillchar(newname[0],max_path-1,0);
      getshortpathname(pchar(ChangeFileExt(application.ExeName,'.tmp')),newname,newsize);
      movefileex(newname,oldname,MOVEFILE_DELAY_UNTIL_REBOOT or MOVEFILE_REPLACE_EXISTING);
    except
    end;
  except
    //
  end;
  freeandnil(ustream);
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值