106.htm

来自「vb功能实例介绍。详细、很好的实例说明。」· HTM 代码 · 共 54 行

HTM
54
字号
<p>在VB程序中怎样挂断拨号网络</p>
<p> </p>
<p></p>
<p>北京理工大学 李 海</p>
<p>   要想控制拨号网络,就要使用 Remote Access Service (RAS) API,这个API最早是在Windows for Workgroup 3.11中出现的,现在它已经成为Win32 API的一个组成部分。挂断拨号网络的函数叫RasHangUp,这个函数的功能和用法都很简单,它只有一个参数,就是要挂断的拨号网络连接的句柄。我们可以利用 RasEnumConnections 获得当前系统所有RAS连接(通常我们的系统在一个时刻只使用一个拨号网络连接),利用这个函数我们就可以得到RasHangUp所需的句柄了。不过 RasEnumConnections 函数在Windows 95和Windows NT下的使用略有不同,限于篇幅我们只给出在Windows 95下调用该函数的例子。读者可以从Win32 API的手册找到所有相关函数的详细介绍,不过VB的WIN32API.TXT中没有包括RAS API所需的声明语句,我们在下面给出解决本问题所需要的函数和结构声明。 </p>
<p></p>
<p>   为了运行下面这个例子,首先需要建立一个窗体,在窗体上放置一个按钮,然后输入以下语句: </p>
<p></p>
<p>Option Explicit</p>
<p>Private Declare Function RasHangUp Lib "RasApi32.DLL" Alias "RasHangUpA" _</p>
<p>  (ByVal hRasConn As Long) As Long</p>
<p>Private Declare Function RasEnumConnections _</p>
<p>  Lib "RasApi32.DLL" Alias "RasEnumConnectionsA" _</p>
<p>  (lprasconn As Any, lpcb As Long,lpcConnections As Long) As Long</p>
<p></p>
<p>Const RAS95_MaxEntryName = 256</p>
<p>Const RAS95_MaxDeviceName = 128</p>
<p>Const RAS_MaxDeviceType = 16</p>
<p></p>
<p>Private Type RASCONN95</p>
<p>   'set dwsize to 412</p>
<p>   dwSize As Long</p>
<p>   hRasConn As Long</p>
<p>   szEntryName(RAS95_MaxEntryName) As Byte</p>
<p>   szDeviceType(RAS_MaxDeviceType) As Byte</p>
<p>   szDeviceName(RAS95_MaxDeviceName) As Byte</p>
<p>End Type</p>
<p></p>
<p>Private Sub Command1_Click()</p>
<p>   Dim lngRetCode As Long</p>
<p>   Dim lpcb As Long</p>
<p>   Dim lpcConnections As Long</p>
<p>   Dim intArraySize As Integer</p>
<p>   Dim intLooper As Integer</p>
<p>  </p>
<p>   ReDim lprasconn95(intArraySize) As RASCONN95</p>
<p>   lprasconn95(0).dwSize = 412</p>
<p>   lpcb = 256 * lprasconn95(0).dwSize</p>
<p>   lngRetCode = RasEnumConnections(lprasconn95(0), lpcb, lpcConnections)</p>
<p>  </p>
<p>   If lngRetCode = 0 Then</p>
<p>     If lpcConnections > 0 Then</p>
<p>       For intLooper = 0 To lpcConnections - 1</p>
<p>         RasHangUp lprasconn95(intLooper).hRasConn</p>
<p>       Next intLooper</p>
<p>     Else</p>
<p>       MsgBox "没有拨号网络连接!", vbInformation</p>
<p>     End If</p>
<p>   End If</p>
<p>End Sub</p>
<p></p>
<p>    运行时,按下按钮就可以断开拨号网络的连接。</p>
<p> </p>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?