Option Explicit Private Declare Function InternetCheckConnection Lib "wininet.dll" Alias "InternetCheckConnectionA" (ByVal lpszUrl As String, ByVal dwFlags As Integer, ByVal dwReserved As Integer) As Integer Public Function isConnected() As Boolean Const FLAG_ICC_FORCE_CONNECTION As Integer = &H1 isConnected = InternetCheckConnection("http://www.microsoft.com", FLAG_ICC_FORCE_CONNECTION, 0) End FunctionPrivate Sub Command1_Click() MsgBox isConnected End Sub http://blog.csdn.net/wwcz898/archive/2006/05/26/756002.aspx
http://topic.csdn.net/t/20051130/08/4427378.html
Option Explicit Private Declare Function InetIsOffline Lib "url.dll" (ByVal dwFlags As Long) As LongPublic Function isConnected() As Boolean isConnected = Not InetIsOffline(0) End FunctionPrivate Sub Command1_Click() MsgBox isConnected End Sub
Private Declare Function InternetCheckConnection Lib "wininet.dll" Alias "InternetCheckConnectionA" (ByVal lpszUrl As String, ByVal dwFlags As Integer, ByVal dwReserved As Integer) As Integer
Public Function isConnected() As Boolean
Const FLAG_ICC_FORCE_CONNECTION As Integer = &H1
isConnected = InternetCheckConnection("http://www.microsoft.com", FLAG_ICC_FORCE_CONNECTION, 0)
End FunctionPrivate Sub Command1_Click()
MsgBox isConnected
End Sub
http://blog.csdn.net/wwcz898/archive/2006/05/26/756002.aspx
Private Declare Function InetIsOffline Lib "url.dll" (ByVal dwFlags As Long) As LongPublic Function isConnected() As Boolean
isConnected = Not InetIsOffline(0)
End FunctionPrivate Sub Command1_Click()
MsgBox isConnected
End Sub
1.用InternetGetConnectedState函数只能判断是否连接局域网,而不是互联网。
2.用InternetCheckConnection函数,如果没有联网,会出现数秒“死机”现象。
3.用InetIsOffline函数,至少我测试了无论是否联网都返回True。我记得以前有人说过用ICMP可以判断是否联网,继续等待......
然后检查winsock1.state