能否用VB6编写一个网络接通与断开的电子开关?解决方法
能否用VB6编写一个网络接通与断开的电子开关?
在工作中,有时希望断开电脑与宽带网的连接,常常要拨插网线插头很麻烦,哪位高手能用VB6编写一个网络接通与断开的电子开关?
下面是拨号网络的断开的开关,可惜不能用在宽带网上,能否在这上面改一改?
提示:在窗体上先拖一个按钮.
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
------解决方案--------------------
Option Explicit
Private Type RASCONN 'version 4.0
dwSize As Long
hRasConn As Long
szEntryName(256) As Byte
szDeviceType(16) As Byte
szDeviceName(129) As Byte 'extra byte added for alignment in VB5
End Type
Private Type RASCONNSTATUS 'version 4.0
dwSize As Long
rasState As RASCONNSTATE
dwError As Long
szDeviceType(16) As Byte
szDeviceName(130) As Byte 'two extra bytes added for alignment in VB5
End Type
'Enumerates intermediate states to a connection.
Private Const RASCS_PAUSED As Long = &H1000
Private Const RASCS_DONE As Long = &H2000
Public Enum RASCONNSTATE
RASCS_OpenPort = 0
RASCS_PortOpened = 1
RASCS_ConnectDevice = 2
RASCS_DeviceConnected = 3
RASCS_AllDevicesConnected = 4
RASCS_Authenticate = 5
RASCS_AuthNotify = 6
RASCS_AuthRetry = 7
RASCS_AuthCallback = 8
RASCS_AuthChangePassword = 9
RASCS_AuthProject = 10
RASCS_AuthLinkSpeed = 11
RASCS_AuthAck = 12
RASCS_ReAuthenticate = 13
RASCS_Authenticated = 14
RASCS_PrepareForCallback = 15
RASCS_WaitForModemReset = 16
RASCS_WaitForCallback = 17
在工作中,有时希望断开电脑与宽带网的连接,常常要拨插网线插头很麻烦,哪位高手能用VB6编写一个网络接通与断开的电子开关?
下面是拨号网络的断开的开关,可惜不能用在宽带网上,能否在这上面改一改?
提示:在窗体上先拖一个按钮.
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
------解决方案--------------------
Option Explicit
Private Type RASCONN 'version 4.0
dwSize As Long
hRasConn As Long
szEntryName(256) As Byte
szDeviceType(16) As Byte
szDeviceName(129) As Byte 'extra byte added for alignment in VB5
End Type
Private Type RASCONNSTATUS 'version 4.0
dwSize As Long
rasState As RASCONNSTATE
dwError As Long
szDeviceType(16) As Byte
szDeviceName(130) As Byte 'two extra bytes added for alignment in VB5
End Type
'Enumerates intermediate states to a connection.
Private Const RASCS_PAUSED As Long = &H1000
Private Const RASCS_DONE As Long = &H2000
Public Enum RASCONNSTATE
RASCS_OpenPort = 0
RASCS_PortOpened = 1
RASCS_ConnectDevice = 2
RASCS_DeviceConnected = 3
RASCS_AllDevicesConnected = 4
RASCS_Authenticate = 5
RASCS_AuthNotify = 6
RASCS_AuthRetry = 7
RASCS_AuthCallback = 8
RASCS_AuthChangePassword = 9
RASCS_AuthProject = 10
RASCS_AuthLinkSpeed = 11
RASCS_AuthAck = 12
RASCS_ReAuthenticate = 13
RASCS_Authenticated = 14
RASCS_PrepareForCallback = 15
RASCS_WaitForModemReset = 16
RASCS_WaitForCallback = 17