| 网站首页 | 新闻快报 | 软件教程 | 硬件教程 | 设计学院 | Q Q 专区 | 编程开发 | 网络安全 | 
您现在的位置: 浩扬网络 >> 编程开发 >> V B 编程 >> 教程正文
在VB程序中怎样挂断拨号网络
作者:不详 文章来源:安全中国 点击数: 更新时间:2006-8-5 0:55:56

北京理工大学 李 海
  要想控制拨号网络,就要使用 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所需的声明语句,我们在下面给出解决本问题所需要的函数和结构声明。

  为了运行下面这个例子,首先需要建立一个窗体,在窗体上放置一个按钮,然后输入以下语句:

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

运行时,按下按钮就可以断开拨号网络的连接

【教程录入:残梦    责任编辑:残梦 】
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
网友评论:(评论内容只代表网友观点,与浩扬网络立场无关!)
热门文章

赞助商


| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 |