1.delphi 自动更新cs客户端的系统问题
delphi 自动更新cs客户端的问题
楼上所说的是比较常用的方法,也是源码可行的。通常,系统一些应用程序会在目录下加个Update目录,源码lbs商城源码里面就放从服务端下载来的系统更新数据文件,以供下次运行程序时升级用(没有即时升级这个功能,源码也很难实现,系统除非你不需要更新主程序文件)。源码至于如何完成这个更新过程,系统楼上的源码已经说的比较清楚了,我就不再重复。系统word比对 源码
另外有种方法: 动态脚本,源码即使程序运行在解释状态。系统像java一样,源码是系统解释型程序而不是编译型程序,解释的android 抽签源码好处是可以用脚本来实现程序的功能,是可以实现在程序运行过程中动态升级的,像web程序一样,只需要刷新一下界面就行了,你要做的,就是源码之家tp在客户端检测一下服务端的版本号,如果小于服务端版本号,则下载最新的脚本到本地即时执行。现在支持object pascal脚本的控件比较多,你在网上搜一下就好了,在CPU这么强大的bad apple 源码今天,程序运行的速度也不会比完全编译慢多少。当然,这样做的缺点是,你如何保证你的脚本(业务逻辑)的安全性!如果不嫌麻烦,你大可以给你的脚本加密传输,执行的时候解一下密就好了。
第三种方法:
有些游戏程序的做法,把主程序的后缀改成其它类型,比如你的主程序为Main.EXE ,你可以改成Main.CPU或者Main.DDD(扩展名自己随便取),然后做个Update.EXE文件,这个程序主要用来检测更新的,也是整个应用的入口程序。有更新了,下载完成并替换所有数据后,直接shellExecu这个Main.CPU或main.ddd(你自己定义的主程序,一般加载程序不需要扩展名,加载过程是靠文件的头信息来判断是否是可执行文件),加载后便退出Update(Main.EXE)文件,把控制权交给真正的可执行主体来执行。这样做的好处是对外隐藏了真正的程序主体,而且可以灵活地执行更新