📄 15636.html
字号:
<html>
<head>
<title>Re: [vb6] 如何侦测/中断拨号网路的连线?</title>
</head>
<body bgcolor="#FFFFFF" vlink="#808080">
<center>
<h1>Re: [vb6] 如何侦测/中断拨号网路的连线?</h1>
</center>
<hr size=7 width=75%>
<hr size=7 width=75%><p>
Posted by <a href="mailto:honey0@tcts1.seed.net.tw">Honey</a> on July 14, 1999 at 12:22:09:<p>
In Reply to: <a href="15634.html">[vb6] 如何侦测/中断拨号网路的连线?</a> posted by 小竹 on July 14, 1999 at 11:51:49:<p>
: sorry, 请问各位高手几个问题..<p>: 1.有没有方法可以中断 Win95 拨号网路的连线...<p>: 2.要如何才能得知目前电脑有没有连上 Internet 哩?<br>提供你以下程式 在Form上摆两个command<br>按command1确认有否取得连线<br>按command2中断连线<p>Option Explicit<br>Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal _<br>hKey As Long) As Long<br>Private Declare Function RegOpenKey Lib "advapi32.dll" Alias _<br>"RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As _<br>String, phkResult As Long) As Long<br>Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _<br>"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName _<br>As String, ByVal lpReserved As Long, lpType As Long, _<br>lpData As Any, lpcbData As Long) As Long<p>Private Declare Function RasEnumConnections Lib _<br>"rasapi32.dll" Alias "RasEnumConnectionsA" (lpRasConn As _<br>Any, lpcb As Long, lpcConnections As Long) As Long<br>Private Declare Function RasHangUp Lib "rasapi32.dll" Alias _<br>"RasHangUpA" (ByVal hRasConn As Long) As Long<br>Const ERROR_SUCCESS = 0&<br>Const RAS_MAXENTRYNAME As Integer = 256<br>Const RAS_MAXDEVICETYPE As Integer = 16<br>Const RAS_MAXDEVICENAME As Integer = 128<br>Const RAS_RASCONNSIZE As Integer = 412<br>Const APINULL = 0&<br>Const HKEY_LOCAL_MACHINE = &H80000002<br>Private Type RasEntryName<br> dwSize As Long<br> szEntryName(RAS_MAXENTRYNAME) As Byte<br>End Type<p>Private Type RasConn<br> dwSize As Long<br> hRasConn As Long<br> szEntryName(RAS_MAXENTRYNAME) As Byte<br> szDeviceType(RAS_MAXDEVICETYPE) As Byte<br> szDeviceName(RAS_MAXDEVICENAME) As Byte<br>End Type<br>Dim gstrISPName As String<br>Dim ReturnCode As Long<p>Public Function ActiveConnection() As Boolean<br>Dim hKey As Long<br>Dim lpSubKey As String<br>Dim phkResult As Long<br>Dim lpValueName As String<br>Dim lpReserved As Long<br>Dim lpType As Long<br>Dim lpData As Long<br>Dim lpcbData As Long<br>ActiveConnection = False '/*预先设定没有连线*/<p>lpSubKey = "System\CurrentControlSet\Services\RemoteAccess"<br>ReturnCode = RegOpenKey(HKEY_LOCAL_MACHINE, lpSubKey, _<br>phkResult)<br>'/*取得HKEY_LOCAL_MACHINE底下 _<br>System\CurrentControlSet\Services\RemoteAccess _<br>phkResult是传回SubKey的hKey*/<p>If ReturnCode = ERROR_SUCCESS Then<br>'/*RegOpenKey若执行成功会传回0*/<br> hKey = phkResult '/*hKey*/<br> lpValueName = "Remote Connection"<br> lpReserved = APINULL<br> lpType = APINULL<br> lpData = APINULL<br> lpcbData = APINULL<br> ReturnCode = RegQueryValueEx(hKey, lpValueName, _<br> lpReserved, lpType, ByVal lpData, lpcbData)<br> lpcbData = Len(lpData)<br> ReturnCode = RegQueryValueEx(hKey, lpValueName, _<br> lpReserved, lpType, lpData, lpcbData)<br> '/*lpValueName:名称 _<br> lpReserved:保留参数 _<br> lpType:资料类别 _<br> lpData:传回资料 _<br> lpcbData:资料长度*/<br> <br> If ReturnCode = ERROR_SUCCESS Then<br> '/*RegQueryValueEx执行成功会传回零*/<br> If lpData = 0 Then<br> ActiveConnection = False<br> '/*未取得连线*/<br> Else<br> ActiveConnection = True<br> '/*取得连线*/<br> End If<br> End If<br> <br>RegCloseKey (hKey)<br>'/*关闭*/<br>End If<br>End Function<p>Public Sub HangUp()<br>Dim i As Long<br>Dim lpRasConn(255) As RasConn<br>Dim lpcb As Long<br>Dim lpcConnections As Long<br>Dim hRasConn As Long<br>lpRasConn(0).dwSize = RAS_RASCONNSIZE<br>lpcb = RAS_MAXENTRYNAME * lpRasConn(0).dwSize<br>lpcConnections = 0<br>ReturnCode = RasEnumConnections(lpRasConn(0), lpcb, _<br>lpcConnections)<p>If ReturnCode = ERROR_SUCCESS Then<br> For i = 0 To lpcConnections - 1<br> If Trim(ByteToString(lpRasConn(i).szEntryName)) _<br> = Trim(gstrISPName) Then<br> hRasConn = lpRasConn(i).hRasConn<br> ReturnCode = RasHangUp(ByVal hRasConn)<br> End If<br> Next i<br>End If<p>End Sub<p>Public Function ByteToString(bytString() As Byte) As String<br>Dim i As Integer<br>ByteToString = ""<br>i = 0<br>While bytString(i) = 0&<br>ByteToString = ByteToString & Chr(bytString(i))<br>i = i + 1<br>Wend<br>End Function<p><br>Private Sub Command1_Click()<br>Call ActiveConnection<br>If ActiveConnection = True Then<br> MsgBox "有连线", vbInformation<br>Else<br> MsgBox "没有连线", vbInformation<br>End If<br>End Sub<p>Private Sub Command2_Click()<br>Call HangUp<br>End Sub<br>
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 15636-->
</ul><!--end: 15636-->
<br><hr size=7 width=75%><p>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -