Dim eR As EIGCInternetConnectionState
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 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 Enum
Private Sub TestOnline()
Dim sMsg As String
Dim sName As String
Dim bConnected As Boolean
Dim bOK As Boolean
Dim HyperJump
Dim sWEB As String'检测是否已经以及使用什么方法连接到Internet
bConnected = InternetConnected(eR, sName)
'显示连接名称
If sName = vbNullString Then sName = "空"
If bConnected Then
sMsg = "网络已连接,连接名称:" & sName & vbCrLf
Else
sMsg = "尚未连接网络,连接名称:" & sName & vbCrLf
End If
'根据获得的结果输出
If (eR And INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM Then
sMsg = sMsg & "本机使用modem连接到Internet."
ElseIf (eR And INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN Then
sMsg = sMsg & "本机使用内部网连接到Internet."
ElseIf (eR And INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY Then
sMsg = sMsg & "本机使用代理服务器连接到Internet."
End If
If (eR And INTERNET_RAS_INSTALLED) = INTERNET_RAS_INSTALLED Then
sMsg = sMsg & "已经安装了远程访问服务功能."
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 & "继续吗?"
bOK = True
Else
sMsg = sMsg & "连接尚未设定好." & vbCrLf & "请先设定连接再试!"
End If
If bOK = True Then
If MsgBox(sMsg, vbYesNo + vbExclamation, "提示") = vbYes Then
Unload Me
sWEB = "www.tjbeihai.com"
HyperJump = ShellExecute(0&, vbNullString, sWEB, vbNullString, vbNullString, vbNormalFocus)
End If
Else
MsgBox sMsg, vbOKOnly + vbExclamation, "提示"
End If
End Sub
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 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 Enum
Private Sub TestOnline()
Dim sMsg As String
Dim sName As String
Dim bConnected As Boolean
Dim bOK As Boolean
Dim HyperJump
Dim sWEB As String'检测是否已经以及使用什么方法连接到Internet
bConnected = InternetConnected(eR, sName)
'显示连接名称
If sName = vbNullString Then sName = "空"
If bConnected Then
sMsg = "网络已连接,连接名称:" & sName & vbCrLf
Else
sMsg = "尚未连接网络,连接名称:" & sName & vbCrLf
End If
'根据获得的结果输出
If (eR And INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM Then
sMsg = sMsg & "本机使用modem连接到Internet."
ElseIf (eR And INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN Then
sMsg = sMsg & "本机使用内部网连接到Internet."
ElseIf (eR And INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY Then
sMsg = sMsg & "本机使用代理服务器连接到Internet."
End If
If (eR And INTERNET_RAS_INSTALLED) = INTERNET_RAS_INSTALLED Then
sMsg = sMsg & "已经安装了远程访问服务功能."
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 & "继续吗?"
bOK = True
Else
sMsg = sMsg & "连接尚未设定好." & vbCrLf & "请先设定连接再试!"
End If
If bOK = True Then
If MsgBox(sMsg, vbYesNo + vbExclamation, "提示") = vbYes Then
Unload Me
sWEB = "www.tjbeihai.com"
HyperJump = ShellExecute(0&, vbNullString, sWEB, vbNullString, vbNullString, vbNormalFocus)
End If
Else
MsgBox sMsg, vbOKOnly + vbExclamation, "提示"
End If
End Sub
属于 Windows Shell 类的:Declare Function InetIsOffline Lib "Url.dll" (Byval dwFlags As Long) As Boolean使用方法 :
reply = Msgbox (InetIsOffline(0))
If reply = False Then Msgbox "Your Computer Is Online"