如金山词霸,金山毒霸,等软件,都有一个自动更新程序。
如何来编写呢>??请说出具体的步骤,和原理,有源码最好
谢谢

解决方案 »

  1.   

    '别人的代码,我自己又改了一下:
    '需要:Microsoft Internet Transfer Control 6.0控件
    '原理:在网站上建立一个updata.txt文件,里面保存升级信息
    'updata.txt文件格式:
    '文件内容:
    '共三行,第一行:版本号;第二行:更新文件名;第三行: 文件长度Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Public Const SW_SHOWNORMAL = 1
    Public Const SW_MINIMIZE = 6
    Public Sub UpData()     '在线升级
        On Error GoTo 100
        Dim MyData() As Byte, VerInfo() As Byte, Ti As Long, Tj As Long
        
        If Inet1.StillExecuting = True Then Exit Sub
        VerInfo() = Inet1.OpenURL("http://fontz.ajiang.net/updata.txt", icString)
        Ti = InStr(1, VerInfo, vbCrLf) + 2
        Tj = InStr(Ti, VerInfo, vbCrLf)
        
        '检测版本号
        If Val(Left$(VerInfo, Ti - 3)) <= Val(App.Major & "." & App.Minor & App.Revision) Then Exit Sub
        If MsgBox("SWpsF 发布了新的版本:" + Left$(VerInfo, Ti - 3) + ",文件大小:" + Mid$(VerInfo, Tj + 2) + ",是否进行在线升级 ?", vbYesNo + vbQuestion, "在线升级") = vbNo Then Exit Sub
        IsUp = True
        
    '开始下载更新文件
        MyData() = Inet1.OpenURL("http://fontz.ajiang.net/" + Mid$(VerInfo, Ti, Tj - Ti), icByteArray)
        Open App.Path + "\" + Mid$(VerInfo, Ti, Tj - Ti) For Binary Access Write As #1
        Put #1, , MyData()
        Close #1
        IsUp = False
    '执行更新文件
        ShellExecute 0, vbNullString, App.Path + "\" + Mid$(VerInfo, Ti, Tj - Ti), vbNullString, App.Path, SW_SHOWNORMAL
        End
    End Sub
      

  2.   

    此文件长度是没有关系的  只是与新的文件的长度有关,,就是等于新文件长度
    如下所示1.0.0.1
    setup1001
    1688888