Sorry 此帖發錯區了,請移到VB6
我使用了很多種方法檢查電腦是否連線,但結果都有問題
作業系統:Windows 2000,Windows2003
網路:Hinet ADSL
============================================
Private Declare Function RegCloseKey Lib "ADVAPI32.dll" Alias "RegCloseKey" (ByVal hKey As Long) _
As Long
Private Declare Function RegOpenKey Lib "ADVAPI32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, _
ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "ADVAPI32.dll" Alias "RegQueryValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, _
lpData As Any, lpcbData As Long) As Long
Dim sKey As Long
Dim sSubKey As String
Dim sResult As Long
Dim sValueName As String
Dim sReserved As Long
Dim sType As Long
Dim sData As Long
Dim lpcbData As Long
Dim sReturnCode As Long
TaiActiveConnection = False
sSubKey = "System\CurrentControlSet\Services\RemoteAccess"
sReturnCode = RegOpenKey(HKEY_LOCAL_MACHINE, sSubKey, sResult)
If sReturnCode = ERROR_SUCCESS Then
sKey = sResult
sValueName = "Remote Connection"
sReserved = APINULL
sType = APINULL
sData = APINULL
lpcbData = APINULL
sReturnCode = RegQueryValueEx(sKey, sValueName, sReserved, sType, ByVal sData, lpcbData)
lpcbData = Len(sData)
sReturnCode = RegQueryValueEx(sKey, sValueName, sReserved, sType, sData, lpcbData)
If sReturnCode = ERROR_SUCCESS Then
If sData = 0 Then
ActiveConnection = False
Else
ActiveConnection = True
End If
End If
RegCloseKey (sKey)
End If
結果都是False
==========================================================
Private Declare Function RegCloseKey Lib "ADVAPI32.dll" Alias "RegCloseKey" (ByVal hKey As Long) _
As Long
Private Declare Function RegOpenKey Lib "ADVAPI32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, _
ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "ADVAPI32.dll" Alias "RegQueryValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, _
lpData As Any, lpcbData As Long) As Long
Dim SubKeyH As Long
Dim MyData As Long
RegOpenKey &H80000002, "System\CurrentControlSet\Services\RemoteAccess", SubKeyH
RegQueryValueEx SubKeyH, "Remote Connection", 0, 4, ISConnect, 4
RegCloseKey SubKeyH
結果都是False
==========================================================
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Long, ByVal dwReserved As Long) As Boolean
Public Enum enuInternet_Connection
Internet_Connection_Modem = 1
Internet_Connection_Lan = 2
Internet_Connection_Proxy = 4
Internet_Connection_Modem_Busy = 8
Internet_RAS_Installed = &H10&
Internet_Connection_Offline = &H20&
Internet_Connection_Configured = &H40&
End Enum
Dim lpdwFlags As enuInternet_Connection
Dim lpString As String
lpString = String(BufferString, 0)
summy = InternetGetConnectedStateEx(lpdwFlags, lpString, BufferString, 0)
myInternetGetConnectedStateEx = Left(lpString, InStr(lpString, Chr(0) & Chr(0)) - 1)
結果都是LAN 連線
[ 本帖最後由 頭大的人 於 2007-12-21 20:55 編輯 ] |