用VB编写自动升级程序.求助

用VB编写自动升级程序.求助,第1张

其实要写自动更新程序很简单的。。。我写过几次,这里要看你想写详细的(检测+下载),还是简单的(下载)

原理很简单,不要什么SQL。

既然要用FTP,那么需要一个控件,MSINET.ocx也就是Microsoft

Internet

Transfer

Control

6.0

这森迅个控件的属性protocol设为ICFTP,

首先连此唤此接

FTP服务器

Inet1.URL

=

"你的FTP地址"

Inet1.UserName

=

"FTP用户名"

Inet1.Password

=

"FTP密码"

下载

配置文件

(检测是否需要更新)

Inet1.Execute

,

"GET

Config.ini

"链氏

&

App.Path

&

"\Config.ini"

'下载配置文件(Config.ini)到本地,然后读取这个文件里面的内容和本地的是否是一样的,或者哪些不一样,需要下载哪些,

然后就下载需要更新的文件

Inet1.Execute

,

"GET

你要下载的文件.exe

"

&

App.Path

&

"\下载到的目录和文件名"

这样就可以实现一个简单的更新了。。。

Private Sub Form_Load()

Inet1.URL = "

Inet1.UserName = "123456"

Inet1.Password = "11111"

Inet1.Execute , "Get tutorial.ini " & App.Path & "\tutorial.ini"

End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)

Static n As Integer

If State = 12 Then

    n = n + 1

    If n = 1 Then

        Inet1.Execute , "Get XXXX.exe " & App.Path & "\"

    Else

        Inet1.Execute , "quit"

    End If

End If

End Sub

Inet控件的Execute方法是异步运行的,也就是说它运行后会不等命令是否执行完毕就紧接着执行下一个命令,所以两个Execute方法是不能紧挨着运行的。正确的做法是要通过轮询(通过循环不断检测Inet控件是否空闲)或事件驱动(StateChanged事件)的方式,在前一条命令结束运行后再执行下一条命令。推荐事件驱动,这是最节省资源也是最标准的处理方式。我上面提供的代码告运就是事件驱动的方式。

补充一句:上述代码稍作修改,就可下载两个以上的文件,比如:

If n = 1 Then

        Inet1.Execute , "Get XXXX1.exe " 斗陪& App.Path & "\"袜销梁

  ElseIf n = 2 Then

      Inet1.Execute , "Get XXXX2.exe " & App.Path & "\"

  ElseIf n = 3 Then

      Inet1.Execute , "Get XXXX3.exe " & App.Path & "\"

Else

        Inet1.Execute , "quit"

    End If


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12408775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存