怎样用VB自动更新应用程序?
主题:怎样用VB自动更新应用程序?具体程序实现如下:在应用程序工程MyApp中的部分代码如下:OptionExplicit'编译后的应用程序名称,注意没有后缀.EXE,本...
主题:怎样用VB自动更新应用程序? 具体程序实现如下: 在应用程序工程MyApp中的部分代码如下: Option Explicit '编译后的应用程序名称,注意没有后缀 .EXE,本例为MYAPP Private Const App_Name = "MyApp" '最新的应用程序存放的路径,本例为:服务器 NtServer01 共享目录 Refresh Private Const ExePath = "\\NtServer01\Refresh\" '中介程序名称,注意没有后缀 .EXE,本例为 FastCopy Private Const MidExeName = "FastCopy" '应用程序入口 Private Sub Form_Load() If UCase(Trim(App.EXEName)) <> UCase(Trim(App_Name)) Then MsgBox "必须将订单管理系统的名称更改为: " + App_Name End End If '判断是否有最新版本的应用程序,如有则自动更新 Call ExeRefresh '下面为订单管理系统的正常操作 略 ... .... End Sub '版本检查及更新过程 Private Sub ExeRefresh() '定义四个临时字符串变量 Dim s1 As String Dim s2 As String Dim s3 As String Dim s4 As String On Error Resume Next '将本地应用程序MyApp.EXE的全路径名存入 s1 '将本地中介程序FastCopy.exe的全路径名存入 s3 s1 = "TNT" If Len(App.Path) > 3 Then s1 = App.Path + "\" + Trim(App_Name) + ".exe" s3 = App.Path + "\" + MidExeName + ".EXE" Else s1 = App.Path + Trim(App_Name) + ".exe" s3 = App.Path + MidExeName + ".EXE" End If s4 = "TNT" '将本地应用程序MyApp.EXE文件的修改时间存入 s4 s4 = FileDateTime(s1) s2 = "TNT" '将网络上应用程序MyApp.EXE文件的修改时间存入 s2 s2 = FileDateTime(ExePath + App_Name + ".EXE") If s2 = "TNT" Then MsgBox "没有找到最新的可执行文件:" + ExePath + App_Name + ".EXE" _ + vbCrLf + vbCrLf + "原因1:存放最新EXE的服务器或者工作站没有打开;" _ + vbCrLf + "原因2:存放最新EXE的路径错误或者EXE文件不存在;" _ + vbCrLf + "请将此情况通知程序员." + vbCrLf + vbCrLf _ + vbCrLf + "按确定按钮后,将继续运行本地EXE文件.", vbCritical, "提示" End If If s2 = "TNT" Or s4 = "TNT" Then Exit Sub '如果网络上应用程序MyApp.EXE文件的修改时间,大于本地MyApp.EXE文件的修改时间 '然后再运行本地MyApp.EXE ,中介程序退出后,整个更新过程结束. If CDate(s2) > CDate(s4) Then '将网络上的中介程序FastCopy.exe复制到本地,这样可防止本地无中介程序时无法进行更新 FileCopy ExePath + MidExeName + ".EXE", s3 '则运行中介程序FastCopy.exe ,将最新的MyApp.EXE 复制到本地 s1 = Shell(s3 + " " + ExePath + "," + App_Name + ".EXE", vbNormalFocus) '本地应用程序MyApp.EXE 终止运行,否则已经更新的MyApp.EXE无法覆盖本地的MyApp.EXE . End End If End Sub 将以上程序编译为:MyApp.exe 存储在共享目录中.
展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询