在你的客户端做一个INI文件,里面记录你放到网上的配置文件的地址,
然后每次都去取这个配置文件,里面记录了最新的
版本号和下载连接,并与本地的版本号比较,如果比较新,就从上述地址下载新的版本。delphi自动更新2008年09月03日 星期三 23:05仅仅
是一个DEMO,正打算添加功能呢。仅仅是一个自动更新的一个思维而已。function downloadfile(url: stringf: string): booleanbeginURLDownloadToFile(nil, pchar(url), pchar(f), 0, nil) if fileexists(f) then result := trueelse result := falseendprocedure dosomething(s: string)begin//dosomestringendvarstrmem: tmemorystreaminif: tinifilefname, str: stringi: integerconsthost = ' http://192.168.1.102/'beginfname := extractfilepath(application.ExeName) + 'config.ini'strmem := tmemorystream.Createidhttp1.Get(host + 'aa.ini', strmem)strmem.Seek(0, sofrombeginning)memo1.Lines.LoadFromStream(strmem)strmem.SaveToFile(fname)strmem.Freeinif := tinifile.Create(fname)for i := 0 to form1.ComponentCount - 1 doif form1.Components[i] is tedit thenbegin str := inif.ReadString('form', (form1.Components[i] as tedit).Name, '') if (extractfileext(str) = '.exe') or (extractfileext(str) = '.dll') thenif downloadfile(host + str, str) then dosomething(str) (form1.Components[i] as tedit).Text := str endinif.Freeend//本地东西。----varini: tinifilefname, str: stringi: integerbeginfname := extractfilepath(application.ExeName) + 'aa.ini'ini := tinifile.Create(fname)for i := 0 to form1.ComponentCount - 1 dobeginif form1.Components[i] is tedit thenbegin str := (form1.Components[i] as tedit).Text ini.WriteString('form', form1.Components[i].Name, str)endendend更新服务器上的东西。最简单的可以把自动升级功能单独做成一个程序,然后这个程序去上Server获取版本信息,如果小于当前版本就从服务器上下载更新文件,然后结束掉当前的主程序,接着覆盖过去。
如果是局域网C/S的话,用exe没问题做更新文件。
评论列表(0条)