打印本文 打印本文 关闭窗口 关闭窗口
用VB6.0编写自我升级的程序(一)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1372  更新时间:2009/4/23 15:03:45  文章录入:mintao  责任编辑:mintao

 

曾经有位网友和我讨论怎样编写一个通过服务器对客户机上的程序进行自我升级的问题,由于我的项目也涉及到自我升级,当时我把我的解决方案提了出来,那就是做一个类似于瑞星的升级程序。在这里我也发现了很多的网友对这个问题很困惑,故我愿意把我的设计方案写出来与大家共享,大家也可以通过这个思路用其他语言进行改写。

 

以下是我的具体思路:

写两个程序,一个是主程序;一个是升级程序(升级程序放在服务器上);

说明:所有升级任务都由升级程序完成。

 

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文件夹,然后执行下面的步骤。

 

 

各个工程文件中的文件源码:

一、 projMain.vbp工程:

说明:这个是旧的主程序,从来没有进行过升级前的程序。

 

用记事本打开frmMain.frm文件,copy以下内容到其中:

 

VERSION 5.00

Begin VB.Form frmMain

   Caption         =   "请点击升级进行程序"

   ClientHeight    =   1140

   ClientLeft      =   60

   ClientTop       =   345

   ClientWidth     =   4500

   LinkTopic       =   "Form1"

   ScaleHeight     =   1140

   ScaleWidth      =   4500

   StartUpPosition =   3  ''''窗口缺省

   Begin VB.CommandButton Command1

      Caption         =   "升级"

      Height          =   525

      Left            =   1380

      TabIndex        =   0

      Top             =   570

      Width           =   1245

   End

End

Attribute VB_Name = "frmMain"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = True

Attribute VB_Exposed = False

 

 

 

Option Explicit

 

'''' ------------------------------------------

'''' 升级程序的例子

'''' 作者:   谢家峰

[1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口