VB检测是否已经连接到互联网

这段代码可以检测电脑是否有联网,比用ping或获取IP的方法可能会更高效吧。
Public Declare Function RasEnumConnections Lib “RasApi32.dll” _

Alias “RasEnumConnectionsA” (lpRasCon As Any, _

lpcb As Long, lpcConnections As Long) As Long

Public Declare Function RasGetConnectStatus Lib “RasApi32.dll” _

Alias “RasGetConnectStatusA” (ByVal hRasCon As Long, _

lpStatus As Any) As Long

Public Const RAS95_MaxEntryName = 256

Public Const RAS95_MaxDeviceType = 16

Public Const RAS95_MaxDeviceName = 32

Public Type RASCONN95

dwSize As Long

hRasCon As Long

szEntryName(RAS95_MaxEntryName) As Byte

szDeviceType(RAS95_MaxDeviceType) As Byte

szDeviceName(RAS95_MaxDeviceName) As Byte

End Type

Public Type RASCONNSTATUS95

dwSize As Long

RasConnState As Long

dwError As Long

szDeviceType(RAS95_MaxDeviceType) As Byte

szDeviceName(RAS95_MaxDeviceName) As Byte

End Type

程序:

Private Sub main()

If IsConnected = True Then

MsgBox “已连接到Internet!”, vbInformation, “提示”

Else

MsgBox “未连接到Internet!”, vbInformation, “提示”

End If

End Sub

Public Function IsConnected() As Boolean

Dim TRasCon(255) As RASCONN95

Dim lg As Long

Dim lpcon As Long

Dim RetVal As Long

Dim Tstatus As RASCONNSTATUS95

'

TRasCon(0).dwSize = 412

lg = 256 * TRasCon(0).dwSize

'

RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)

If RetVal 0 Then

MsgBox “产生错误!”, vbInformation, “提示”

Exit Function

End If

'

Tstatus.dwSize = 160

RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)

If Tstatus.RasConnState = &H2000 Then

IsConnected = True

Else

IsConnected = False

End If

End Function

来源:夕阳醉了's Blog
地址:http://oznn.com/post/27/



3 thoughts on “VB检测是否已经连接到互联网

Comments are closed.