VB 检测网络是否有更新问题(不会加超时代码)

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:20:49
Dim xmlHTTP1
Dim dangqianbanben As Integer '定义变量存放当前版本
Dim softurl As String '定义最新版本软件下载地址
Dim a As Integer
Dim banben As Integer '定义最新版本号
Set xmlHTTP1 = CreateObject("Microsoft.XMLHTTP")
xmlHTTP1.Open "get", " http://ww5.jzgf0.cn/cf/sh.txt", True
xmlHTTP1.Send
While xmlHTTP1.ReadyState <> 4
DoEvents
Wend
Text1.Text = dangqianbanben
Text2.Text = xmlHTTP1.responseText
Set xmlHTTP1 = Nothing
dangqianbanben = 1 '设置当前软件的版本
banben = Val(Text2.Text)
If banben > dangqianbanben Then
a = MsgBox("测到有新的版本,请立即更新工具,是否立即更新?", vbOKCancel, "发现新版本")
If a = 1 Then '当点确定后开始执行下面代码
Unload Me
frmDLTest.Show
End If
End If

代码我有了,但是这个检测,如果没连接网络打开程序时候就完了,打开程序 后检测了十几分钟也没反映,软件界面也不出来(我在这里检测Form_Load),请高手帮忙加个超时代码,就是比如,我没连接网络,打开此软件,5秒

Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef dwFlags As Long, ByVal dwReserved As Long) As Long

'============判断网络是否连接===============
If InternetGetConnectedState(0&, 0&) Then
MsgBox "网络通顺!", 64, "提示"
Else
MsgBox "网络未连接,请连上互联网再操作!", 64, "提示"
End If


xmlHTTP1.Open "get", " http://ww5.jzgf0.cn/cf/sh.txt", True
改成:
xmlHTTP1.Open "get", " http://ww5.jzgf0.cn/cf/sh.txt", False

就可以了,即采用同步传输,这样就不需要延时判断和网络判断了,该调用只有在完全执行完操作才会返回. 然后直接用xmlHTTP1.responseText获取数据就可以了
=========================
你需要去掉以下语句(采用以上方式,下边的判断语句就用不着了):
While xmlHTTP1.ReadyState <> 4
DoEvents
Wend

=================