热情软件屋

 

如何断开拨号网络


编号:QA001172
建立日期: 1999年6月13日 最后修改日期:1999年6月13日
所属类别:

Arivd:
    如何才能用程序来断线,再回到程序?就是断开拨号网络、离开internet!
    

回答:

    要想控制拨号网络,就要使用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所需的声明语句,我们在下面给出解决本问题所需要的函数和结构声明。如果希望深入研究这个问题,可以访问参考QA000035 "在VB中如何实现自动启动拨号网络",从中可以找到完整的RAS API声明和在Windows NT下调用RasEnumConnections函数的例子。
    为了运行下面这个例子,首先需要建立一个窗体,在窗体上放置一个按钮,然后输入以下语句:
    Option Explicit
    Private Declare Function RasHangUp Lib "RasApi32.DLL" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long
    Private Declare Function RasEnumConnections Lib "RasApi32.DLL" Alias "RasEnumConnectionsA" (lprasconn As Any, lpcb As Long, lpcConnections As Long) As Long
    
    Const RAS95_MaxEntryName = 256
    Const RAS95_MaxDeviceName = 128
    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 Sub Command1_Click()
     Dim lngRetCode As Long
     Dim lpcb As Long
     Dim lpcConnections As Long
     Dim intArraySize As Integer
     Dim intLooper As Integer
    
     ReDim lprasconn95(intArraySize) As RASCONN95
     lprasconn95(0).dwSize = 412
     lpcb = 256 * lprasconn95(0).dwSize
     lngRetCode = RasEnumConnections(lprasconn95(0), lpcb, lpcConnections)
    
     If lngRetCode = 0 Then
     If lpcConnections > 0 Then
     For intLooper = 0 To lpcConnections - 1
     RasHangUp lprasconn95(intLooper).hRasConn
     Next intLooper
     Else
     MsgBox "没有拨号网络连接!", vbInformation
     End If
     End If
    End Sub
    运行时,按下按钮就可以断开拨号网络的连接。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio