在VB程序中怎樣掛斷撥號網絡
發表于:2007-07-14來源:作者:點擊數:
標簽:
北京理工大學 李海 ---- 要想控制撥號 網絡 ,就要使用Remote Access Service (RAS) API,這個API最早是在Windows for Workgroup 3.11中出現的,現在它已經成為Win32 API的一個組成部分。掛斷撥號網絡的函數叫RasHangUp,這個函數的功能和用法都很簡單,它只
北京理工大學 李海
---- 要想控制撥號
網絡,就要使用Remote A
clearcase/" target="_blank" >ccess 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
---- 運行時,按下按鈕就可以斷開撥號網絡的連接。
原文轉自:http://www.anti-gravitydesign.com