判断网络是否已经断线

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

’API函数定义

Dim eR As EIGCInternetConnectionState

Dim sMsg As String

Dim sName As String

Dim bConnected As Boolean

Private Declare Function InternetSetDialState Lib "wininet.dll" _

(ByVal lpszConnectoid As String, ByVal dwState As Long, _

ByVal dwReserved As Long) As Long

Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _

(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _

ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

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 Long

Private 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

’InternetConnected 函数判断是否连接到Internet的函数

’获得是否以及通过何中方式连接到Internet上

Private Function 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 Function

’InternetConnected 函数的调用

’检测是否已经以及使用什么方法连接到Internet

bConnected = InternetConnected(eR, sName)

’根据获得的结果输出

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

’显示连接名称

If bConnected Then

sMsg = "已连接到Internet,连接名称: " & sName & vbCrLf & vbCrLf & sMsg

Else

sMsg = "没有连接到Internet,连接名称: " & sName & vbCrLf & vbCrLf & sMsg

End If

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航