VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > vb >
  • vb教程之判断网络是否已经断线

'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

相关教程