求一个软件更新的思路及代码
我写了一个局域网内的数据库应用程序,每隔一段时间就会有需求新增/修改其中的代码,我想写好代码重新编译成.exe放置到网络中,让用户 点击一个 “程式更新”的 Button 就可以更新成最新的程式,不知该怎么实现,只知道大至的思路是 另外写一个 软件更新的.exe, 让这个 执行档 去覆盖 旧的程式我想知道 详细的思路 及 代码希望 大侠们帮助我,

解决方案 »

  1.   

    1)将服务器上存放 程序.exe 的目录共享出来。
    2)在客户端上将用资源管理器的“映射网络驱动器”将该共享目录映射为一个固定的盘符(假定为 Z:)。
    3)如果你的 更新.exe 和 程序.exe 在同一个目录,那么它的实现:
    Private Sub Command1_Click()
        Dim sLocalFile As String
        sLocalFile = App.Path & IIf(Right$(App.Path, 1) = "\", "", "\") & "程序.exe"
        FileCopy "Z:\程序.exe", sLocalFile
        SetAttr sLocalFile, vbNormal '去掉只读属性,防止下次 FileCopy 出错
    End Sub
      

  2.   

    请教, 我的程式在开启中, 用filecopy 的方式去覆盖 似乎有点行不通, 请问在使用中的文件怎么可以被覆盖掉呢,我猜想的是 多半 是 用一个 (或者说是另一个) 写好并编译打包好的 “更新.exe",在  点击 "更新程式"时, 会调用这个 "更新.exe" ,而这个"更新.exe"可以 关闭我 先前打开的 应用 ,再用filecopy 最新的 文件 覆盖 旧的文件,再打开我之前的应用,并关闭 "更新.exe“应用程式,而那个 ”更新.exe" 应用程式 的代码是怎么写的, 我不知道 ,想请教大侠们 相告
      

  3.   

    就是用两个程序:程序.exe、更新.exe更新.exe 的代码在 2 楼的基础上完善一下:
    Private Sub Command1_Click()
        Dim sLocalFile As String
        
        On Error GoTo ErrHandler
        
        sLocalFile = App.Path & IIf(Right$(App.Path, 1) = "\", "", "\") & "程序.exe"
        FileCopy "Z:\程序.exe", sLocalFile
        SetAttr sLocalFile, vbNormal '去掉只读属性,防止下次 FileCopy 出错    '如果你需要自动执行
        Shell sLocalFile, vbNormalFocus
        Unload Me
    ExitEntry:
        Exit Sub
    ErrHandler:
        If Err.Number = 90 Then
            MsgBox "程序正在运行,请先关闭后再执行更新。", vbExclamation
        Else
            MsgBox Err.Description, vbExclamation
        End If
        Resume ExitEntry
    End Sub