Private Declare Function InetIsOffline Lib "url.dll" (ByVal dwFlags As Long) As Long Private Sub Form_Load() MsgBox "Are you connected to the internet? " + CStr(CBool(Not (InetIsOffline(0)))), vbInformation End Sub
测试了楼上的,我断了网线,还是True~~ Form1: Private Sub Command1_Click()Dim eR As EIGCInternetConnectionState Dim sMsg As String Dim sName As String Dim bConnected As Boolean ' Determine whether we have a connection: bConnected = InternetConnected(eR, sName) ' The connection state info parameter provides details ' about how we connect: If (eR And INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM Then sMsg = sMsg & "使用Modem连接到Internet!" & vbCrLf End If If (eR And INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN Then sMsg = sMsg & "使用内部网连接到Internet!" & vbCrLf End If If (eR And INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY Then sMsg = sMsg & "通过代理服务器连接到Internet!" & vbCrLf End If If (eR And INTERNET_CONNECTION_OFFLINE) = INTERNET_CONNECTION_OFFLINE Then sMsg = sMsg & "现在连接处于离县状态!" & vbCrLf End If If (eR And INTERNET_CONNECTION_CONFIGURED) = INTERNET_CONNECTION_CONFIGURED Then sMsg = sMsg & "连接已经被设定!" & vbCrLf Else sMsg = sMsg & "没有设定好的连接!" & vbCrLf End If If (eR And INTERNET_RAS_INSTALLED) = INTERNET_RAS_INSTALLED Then sMsg = sMsg & "本机已经安装了远程访问服务功能!" & vbCrLf End If
' Display the connection name and info: If bConnected Then MsgBox "已连接到Internet,连接名称: " & sName & vbCrLf & sMsg, vbInformation + vbOKOnly, "提示" Else MsgBox "没有连接到Internet,连接名称: " & sName & vbCrLf & sMsg, vbCritical + vbOKOnly, "提示" End If
End Sub Bas: '获取网络连接状态 Public Declare Function InternetGetConnectedStateEx Lib "wininet.dll" _ Alias "InternetGetConnectedStateExA" _ (ByRef lpdwFlags As Long, _ ByVal lpszConnectionName As String, _ ByVal dwNameLen As Long, _ ByVal dwReserved As Long _ ) As LongPublic Enum EIGCInternetConnectionState INTERNET_CONNECTION_MODEM = &H1& INTERNET_CONNECTION_LAN = &H2& INTERNET_CONNECTION_PROXY = &H4& INTERNET_RAS_INSTALLED = &H10& INTERNET_CONNECTION_OFFLINE = &H20& INTERNET_CONNECTION_CONFIGURED = &H40& End EnumPublic Property Get InternetConnected( _ Optional ByRef eConnectionInfo As EIGCInternetConnectionState, _ Optional ByRef sConnectionName As String _ ) As Boolean Dim dwFlags As Long Dim sNameBuf As String Dim lR As Long Dim iPos As Long
sNameBuf = String$(513, 0) lR = InternetGetConnectedStateEx(dwFlags, sNameBuf, 512, 0&) eConnectionInfo = dwFlags iPos = InStr(sNameBuf, vbNullChar) If iPos > 0 Then sConnectionName = Left$(sNameBuf, iPos - 1) ElseIf Not sNameBuf = String$(513, 0) Then sConnectionName = sNameBuf End If InternetConnected = (lR = 1) End Property
'放一个timer实时监视网络连接 Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As LongPrivate Property Get OnLine(LinkName As String) As Boolean LinkName = Space$(128) OnLine = InternetGetConnectedStateEx(0, LinkName, 128, 0&) End PropertyPrivate Sub Form_Load() Timer1.Interval = 1 End SubPrivate Sub Timer1_Timer() Static LinkName As String Me.Caption = IIf(OnLine(LinkName), "在线", "离线") & " - " & LinkName End Sub
如果连连接到网络的连接名都不需要知道就更简短啦Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As LongPrivate Sub Form_Load() Timer1.Interval = 1 End SubPrivate Sub Timer1_Timer() Me.Caption = IIf(InternetGetConnectedState(0&, 0&), "在线", "离线") End Sub
Private Sub Form_Load()
MsgBox "Are you connected to the internet? " + CStr(CBool(Not (InetIsOffline(0)))), vbInformation
End Sub
Form1:
Private Sub Command1_Click()Dim eR As EIGCInternetConnectionState
Dim sMsg As String
Dim sName As String
Dim bConnected As Boolean ' Determine whether we have a connection:
bConnected = InternetConnected(eR, sName) ' The connection state info parameter provides details
' about how we connect:
If (eR And INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM Then
sMsg = sMsg & "使用Modem连接到Internet!" & vbCrLf
End If
If (eR And INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN Then
sMsg = sMsg & "使用内部网连接到Internet!" & vbCrLf
End If
If (eR And INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY Then
sMsg = sMsg & "通过代理服务器连接到Internet!" & vbCrLf
End If
If (eR And INTERNET_CONNECTION_OFFLINE) = INTERNET_CONNECTION_OFFLINE Then
sMsg = sMsg & "现在连接处于离县状态!" & vbCrLf
End If
If (eR And INTERNET_CONNECTION_CONFIGURED) = INTERNET_CONNECTION_CONFIGURED Then
sMsg = sMsg & "连接已经被设定!" & vbCrLf
Else
sMsg = sMsg & "没有设定好的连接!" & vbCrLf
End If
If (eR And INTERNET_RAS_INSTALLED) = INTERNET_RAS_INSTALLED Then
sMsg = sMsg & "本机已经安装了远程访问服务功能!" & vbCrLf
End If
' Display the connection name and info:
If bConnected Then
MsgBox "已连接到Internet,连接名称: " & sName & vbCrLf & sMsg, vbInformation + vbOKOnly, "提示"
Else
MsgBox "没有连接到Internet,连接名称: " & sName & vbCrLf & sMsg, vbCritical + vbOKOnly, "提示"
End If
End Sub
Bas:
'获取网络连接状态
Public Declare Function InternetGetConnectedStateEx Lib "wininet.dll" _
Alias "InternetGetConnectedStateExA" _
(ByRef lpdwFlags As Long, _
ByVal lpszConnectionName As String, _
ByVal dwNameLen As Long, _
ByVal dwReserved As Long _
) As LongPublic Enum EIGCInternetConnectionState
INTERNET_CONNECTION_MODEM = &H1&
INTERNET_CONNECTION_LAN = &H2&
INTERNET_CONNECTION_PROXY = &H4&
INTERNET_RAS_INSTALLED = &H10&
INTERNET_CONNECTION_OFFLINE = &H20&
INTERNET_CONNECTION_CONFIGURED = &H40&
End EnumPublic Property Get InternetConnected( _
Optional ByRef eConnectionInfo As EIGCInternetConnectionState, _
Optional ByRef sConnectionName As String _
) As Boolean
Dim dwFlags As Long
Dim sNameBuf As String
Dim lR As Long
Dim iPos As Long
sNameBuf = String$(513, 0)
lR = InternetGetConnectedStateEx(dwFlags, sNameBuf, 512, 0&)
eConnectionInfo = dwFlags
iPos = InStr(sNameBuf, vbNullChar)
If iPos > 0 Then
sConnectionName = Left$(sNameBuf, iPos - 1)
ElseIf Not sNameBuf = String$(513, 0) Then
sConnectionName = sNameBuf
End If
InternetConnected = (lR = 1)
End Property
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As LongPrivate Property Get OnLine(LinkName As String) As Boolean
LinkName = Space$(128)
OnLine = InternetGetConnectedStateEx(0, LinkName, 128, 0&)
End PropertyPrivate Sub Form_Load()
Timer1.Interval = 1
End SubPrivate Sub Timer1_Timer()
Static LinkName As String
Me.Caption = IIf(OnLine(LinkName), "在线", "离线") & " - " & LinkName
End Sub
Timer1.Interval = 1
End SubPrivate Sub Timer1_Timer()
Me.Caption = IIf(InternetGetConnectedState(0&, 0&), "在线", "离线")
End Sub