?? 26.txt
字號:
斷開撥號網絡的連接
'有沒有簡便的方法在VB中讓MODEM斷線?
'我在程序中使用撥號網絡中導出的DUN文件來撥號登錄NT網,彈
'出“連接到”窗口后,用SENDKEYS命令發送回車,進入撥號并且
'登錄,系統自動恢復網絡驅動器映射(這之前是手工映射的,有
'沒有API命令執行網絡映射的?),但往往映射還未完成程序就
'繼續下去,從而得到錯誤的結果。怎樣才能一步步地完成撥號、
'映射,然后才繼續執行下面的程序呢?
'回答:
'要想控制撥號網絡,就要使用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
'運行時,按下按鈕就可以斷開撥號網絡的連接。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -