如何用VB检测一台机子有没有在上网呢

coolhealth 2003-01-15 11:39:34
如果想知道一台机子有没有上网,用VB如何检测呢??
...全文
23 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
nydelphi 2003-02-23
  • 打赏
  • 举报
回复
up
SNUMA 2003-02-23
  • 打赏
  • 举报
回复
Public Fun_TestOnlineA As Boolean



Public eR As EIGCInternetConnectionState
Public sMsg As String
Public sName As String
Public bConnected As Boolean
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 Long

Public 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
Public Type ConnectCheck_Return
sConnected As Boolean
sName As String
sMode As String
sConfigured As Boolean
sRASed As Boolean
sDNS As String
End Type
Public Ta As Boolean

Public 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


Public Function Check_Connect() As ConnectCheck_Return

Check_Connect.sConnected = InternetConnected(eR, sName)

If (eR And INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM Then
Check_Connect.sMode = "ASL"
End If
If (eR And INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN Then
Check_Connect.sMode = "LAN"
End If
If (eR And INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY Then
Check_Connect.sMode = "VIA PROXY"
End If
If (eR And INTERNET_CONNECTION_OFFLINE) = INTERNET_CONNECTION_OFFLINE Then
Check_Connect.sMode = "OFFLINE"
End If
If (eR And INTERNET_CONNECTION_CONFIGURED) = INTERNET_CONNECTION_CONFIGURED Then
Check_Connect.sConfigured = True
Else
Check_Connect.sConfigured = False
End If
If (eR And INTERNET_RAS_INSTALLED) = INTERNET_RAS_INSTALLED Then
Check_Connect.sRASed = True
Else
Check_Connect.sRASed = False

End If

End Function
coolhealth 2003-02-19
  • 打赏
  • 举报
回复
找到

网络控件Microsoft Internet Transfer Control
coolhealth 2003-02-19
  • 打赏
  • 举报
回复
inet控件如何加叱??
coolhealth 2003-02-18
  • 打赏
  • 举报
回复
不知道你有没有试过呢??

我刚才又试过了,还是不行!!

coolhealth 2003-02-18
  • 打赏
  • 举报
回复
但是,我试过了,我的ADSL是不行的,无论边上于否,都说已经联上了@!!


这是为什么呢??

coolhealth 2003-02-18
  • 打赏
  • 举报
回复
但是对于各种不同的上网方式,上面的都通用吗??

比如说modem,isdn,adsl都行吗??
holydiablo 2003-01-17
  • 打赏
  • 举报
回复
Public Declare Function InternetGetConnectedState Lib "wininet" (lpdwFlags As Long, ByVal dwReserved As Long) As Boolean

Public Const INTERNET_CONNECTION_MODEM = 1
Public Const INTERNET_CONNECTION_LAN = 2
Public Const INTERNET_CONNECTION_PROXY = 4
Public Const INTERNET_CONNECTION_MODEM_BUSY = 8

Private Sub Command1_Click()
Dim flags As Long
Dim result As Boolean

result = InternetGetConnectedState(flags, 0)
If result Then
Print "Connected to the Internet"
Else
Print "Not Connected to the Internet"
End If

If flags And INTERNET_CONNECTION_MODEM Then Print "Connection Via Modem"
If flags And INTERNET_CONNECTION_LAN Then Print "Connecion Via LAN"
If flags And INTERNET_CONNECTION_PROXY Then Print "Connection uses a Proxy"
If flags And INTERNET_CONNECTION_MODEM_BUSY Then Print "Connection Via Modem but modem is busy"

End Sub
good_sun 2003-01-16
  • 打赏
  • 举报
回复
把下面这些放到一个模块中
通过下面的Fun_TestOnline函数就可以知道是否连网

Option Explicit

Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lprasconn As Any, lpcb As Long, lpcConnections As Long) As Long

Private Const RAS_MAXENTRYNAME As Integer = 256
Private Const RAS_MAXDEVICENAME As Integer = 128
Private Const RAS_RASCONNSIZE As Integer = 412
Private Const RAS95_MaxEntryName = 256
Private Const RAS95_MaxDeviceName = 128
Private Const RAS_MaxDeviceType = 16

Private Type RASCONN95
'Set dWsize to 412
dwSize As Long
hRasConn As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

Private Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(RAS_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

Private Type RasConn
dwSize As Long
hRasConn As Long
szEntryName(RAS_MAXENTRYNAME) As Byte
szDeviceType(RAS_MaxDeviceType) As Byte
szDeviceName(RAS_MAXDEVICENAME) As Byte
End Type

Public Function Fun_TestOnline() 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
Tstatus.dwSize = 160
RetVal = RasGetConnectStatus(TRasCon(0).hRasConn, Tstatus)
Fun_TestOnlineEX = (Tstatus.RasConnState = &H2000)
Else
Fun_TestOnlineEX = False
End If
End Function
xinshou1979330 2003-01-16
  • 打赏
  • 举报
回复
关注

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧