用VB6.0编写自我升级的程序(一)(1)
曾经有位网友和我讨论怎样编写一个通过服务器对客户机上的程序进行自我升级的问题,由于我的项目也涉及到自我升级,当时我把我的解决方案提了出来,那就是做一个类似于瑞星的升级程序。在这里我也发现了很多的网友对这个问题很困惑,故我愿意把我的设计方案写出来与大家共享,大家也可以通过这个思路用其他语言进行改写。 以下是我的具体思路:写两个程序,一个是主程序;一个是升级程序(升级程序放在服务器上);说明:所有升级任务都由升级程序完成。 1.启动升级程序,升级程序连接到网站,下载新的主程序(当然还包括支持的库文件等)到临时文件夹;2.升级程序检测旧的主程序是否活动,若活动则关闭旧的主程序(同时记下主程序的状态);3.删除旧的主程序,拷贝临时文件夹中的文件到相应的位置,同时注册相应的文件;4.检查主程序的状态,若状态为活动的,则启动新的主程序;5.关闭升级程序。6.祝贺你,升级完成。由于网友提出了关于升级这个升级程序的问题,以下是对其思路进行的一点补充,但原文仍然是升级主程序的,具体代码需读者自己添加:7.主程序升级完毕;8.升级程序继续检查所下载的临时文件中是否含有NewUpdate.exe(新的升级程序)和rename.exe(是一个可以更改文件名的程序);9.若存在以上两个文件,表示要更新Update.exe文件;启动rename.exe程序,同时update.exe关掉自己;10.rename.exe程序检测update.exe是否已被关掉,若已关掉,删除该update.exe。移动临时文件夹中的NewUpdate.exe文件到主程序的目录下,同时更名为update.exe;11.rename.exe关掉自己。12.OK,至此升级程序也被升级了。 下面进行具体的程序编写,需建立三个工程,然后把它们编辑成一个组,三个工程需共用一个模块。 建立工程步骤:1.建立工程proMain:打开vb,“新建工程”,选择“标准EXE”, 再给工程中添加模块,并且命名为modCommon,修改窗体名为frmMain,同时修改工程名为projMain,然后保存到某个文件夹(譬如在桌面建立个文件夹Update),窗体、模块和工程分别保存为frmMain.frm、modCommon.bas、projMain.vbp; 2.建立工程projNewMain:点击菜单“文件|新建工程” ,选择“标准EXE”,点击菜单“工程|添加模块”,在弹出的对话框中选择“现存”标签,定位到Update文件夹,选中modCommon.bas模块。修改窗体名为frmNewMain,同时修改工程名为projNewMain,然后保存到Update文件夹,窗体和工程分别保存为frmNewMain.frm、projNewMain.vbp; 3.建立工程projUpdate:点击菜单“文件|新建工程” ,选择“标准EXE”,点击菜单“工程|添加模块”,在弹出的对话框中选择“现存”标签,定位到Update文件夹,选中modCommon.bas模块。修改窗体名为frmUpdate,同时修改工程名为projUpdate,然后保存到Update文件夹,窗体和工程分别保存为frmUpdate.frm、projUpdate.vbp; 4.建立组:在工程projUpdate中,点击菜单“文件|添加工程…”在弹出的对话框中选择“现存”标签,定位到Update文件夹,选择projMain.vbp;重复该动作,选择projNewMain.vbp;保存该组即可; 5.关闭工程,定位到Update文件夹,然后执行下面的步骤。 各个工程文件中的文件源码:
首页 上页 | 1 | 2 | 3 | 4... 下页 尾页 共 5 页