📄 如何断开拨号网络.txt
字号:
要 想 控 制 拨 号 网 络 , 就 要 使 用 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所 需 的 声 明 语 句 , 我 们 在 下 面 给 出 解 决 本 问 题 所 需 要 的 函 数 和 结 构 声 明 。 如 果 希 望 深 入 研 究 这 个 问 题 , 可 以 访 问 参 考 “在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
运 行 时 , 按 下 按 钮 就 可 以 断 开 拨 号 网 络 的 连 接 。
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -