vb6断开网络改成vb2010后出错,还请高手帮助看看,多谢!
vb6断开网络改成vb2010后出错,还请高手帮助看看,谢谢!!!
vb6:
vb2010:
------解决方案--------------------
vb6:
- VB code
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 RAS_MaxEntryName = 256 Const RAS_MaxDeviceName = 128 Const RAS_MaxDeviceType = 16 dwSize As Long hRasConn As Long szEntryName(RAS_MaxEntryName) As Byte szDeviceType(RAS_MaxDeviceType) As Byte szDeviceName(RAS_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
vb2010:
- VB.NET code
Imports System.Runtime.InteropServices Public Class Form2 Public Const RAS_MaxEntryName As Int32 = 256 Public Const RAS_MaxPhoneNumber As Int32 = 128 Public Const RAS_MaxCallbackNumber As Int32 = 128 Public Const RAS_MaxUserName As Int32 = 256 Public Const RAS_MaxPassword As Int32 = 256 Public Const RAS_MaxDomain As Int32 = 15 Public Const RAS_MaxDeviceType = 16 Private Structure RASCONN95 Public dwSize As Integer Public hRasConn As Integer <VBFixedArray(RAS_MaxEntryName)> Public szEntryName As Byte <VBFixedArray(RAS_MaxDeviceType)> Public szDeviceType As Byte <VBFixedArray(RAS_MaxUserName)> Public szDeviceName As Byte End Structure Dim lprasconn95(0) As RASCONN95 Public Declare Auto Function RasGetEntryDialParams Lib "rasapi32.dll" (ByVal PhoneBook As String, ByRef DialParams As RASDIALPARAMS, ByRef Password As Int32) As Int32 Public Declare Unicode Function RasDial Lib "rasapi32.dll" Alias "RasDialW" (ByVal RasDialExtensions As Int32, ByVal PhoneBook As String, ByRef DialParams As RASDIALPARAMS, ByVal NotifierType As Int32, ByVal Notifier As Int32, ByRef hRasConnection As Int32) As Int32 Private Declare Function RasEnumConnections Lib "RasApi32.DLL" Alias "RasEnumConnectionsA" (ByVal lprasconn As Object, ByVal lpcb As Integer, ByVal lpcConnections As Integer) As Integer Private Declare Function RasHangUp Lib "RasApi32.DLL" Alias "RasHangUpA" (ByVal hRasConn As Integer) As Integer Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim lngRetCode As Integer Dim lpcb As Integer Dim lpcConnections As Integer Dim intArraySize As Integer Dim intLooper As Integer ReDim lprasconn95(intArraySize) 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 Class
------解决方案--------------------