查本机是否已连上Internet,使用了下面代码:Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef dwFlags As Long, ByVal dwReserved As Long) As Long
ret= InternetGetConnectedState(dwFlags, 0&)发现无论是否连上,ret都是1,dwFlags都是18本机是通过局域网上网,请指教,多谢。
ret= InternetGetConnectedState(dwFlags, 0&)发现无论是否连上,ret都是1,dwFlags都是18本机是通过局域网上网,请指教,多谢。
ping一个网址
看他的返回
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
Private Function IsConnected() As Boolean
IsConnected = InternetGetConnectedState(0&, 0&)
End FunctionPrivate Sub Command1_Click()
MsgBox IsConnected
End Sub返回值为true就是连上了 false就没有连上
你的这段代码试过了,无论是有没连上,返回都是true
我试过的
本机完全没有问题
如果是连上就是true我断开网络就是false
你是用什么拨号的?
用ASDL通过Hub上网。
1.建立新模块
Public Const ERROR-SUCCESS= 0&
Public Const APINULL= 0&
Public Const HKEY-LOCAL-MACHINE= &H80000002
Public ReturnCode As long
’声明API函数
RegCloseKey()
RegQueryValueEx() ’自定义函数
Public function ActiveConnection() As Boolean Dim hKey As long
Dim lpSubKey As string
Dim lpReserved As long
Dim lpType As long
Dim lpData As long
Dim lpcbData As long ActiveConnection=False
lpSubKey="System\CurrentControlSet\Services\RemoteAccess"
ReturnCode=RegOpenKey(HKEY-LOCAL-MACHINE,lpSubKey,phkResult) If ReturnCode=ERROR-SUCCESS then
hKey=phkResult
lpValueName="Remote Connection"
lpReserved=APINULL
lpType=APINULL
lpData=APINULL
lpcbData=APINULL
ReturnCode=RegQueryValueEx(hKey,lpValueName,lpReserved,lpType,ByVal lpData,lpcbata)
lpcbData=Len(lpData)
ReturnCode=RegQueryValueEx(hKey,lpValueName,lpReserved,lpType,ByVal lpData,lpcbata) If ReturnCode=ERROR-SUCCESS then
If lpData=0 then
ActiveConnection=False
Else
ActiveConnection=True
End If
End If
RegCloseKey(hKey)
End If
End funtion 2.新建窗体
Priate sub Command1_click()
If ActiveConnection=True then
MsgBox "OK!"
Else
MsgBox "ERROR!"
End If
End sub
介绍我自己用的方法楼主试试,用一个winsock控件,可以作为一个函数来调用。Dim bLoop As Boolean, bConnected As Boolean
Private Function IfConnected() As Boolean
bLoop = False
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.RemoteHost = "http://www.csdn.net"
Winsock1.RemotePort = 80
Winsock1.Connect
Do
DoEvents
Loop While bLoop = False
IfConnected = bConnected
End FunctionPrivate Sub Winsock1_Close()
Winsock1.Close
End SubPrivate Sub Winsock1_Connect()
Winsock1_Close
bConnected = True
bLoop = True
End SubPrivate Sub Winsock1_Error(ByVal Number As Integer, Description As String, _
ByVal Scode As Long, ByVal Source As String, _
ByVal HelpFile As String, _
ByVal HelpContext As Long, _
CancelDisplay As Boolean)
bConnected = False
bLoop = True
CancelDisplay = True
End Sub