当前位置:编程学习 > VB >>

建立拨号联接

 

      

Public Const RAS_MaxEntryName = 256

 

Private Type RASENTRYNAME

dwSize As Long

szEntryName(RAS_MaxEntryName) As Byte

End Type

 

c 中 Char aa[16] 代表长度是16,可放 15个byte所以对应於vb便是 aa(15) as Byte

如此才是长度16 ( 0--15)。故VB的宣告中不能再用szEntryName(RAS_MaxEntryName+1)

 

但是Lenb(RASENTRYNAME)的长度却是 261 (4+257),的确,这是vb的问题,而c 的SizeOf

传回的是4的倍数(32位元嘛)故值为264,所以我们计算某个Structure的长度时,要再多一

些运算。

 

以下的Fuction只适用於32位元的win95/ NT,

 

以下在Form中

 

Private hConn as Long

Private Sub Command1_Click()

hConn = Dialup("我的连线", "user", "passwd")

if hConn = 0 Then

Debug.Print "连线失败"

end if

End Sub

 

Private Sub Command2_Click()

Call HangUp(hConn)

End Sub

 

以下在.bas中

Option Explicit

Public Const RAS_MaxEntryName = 256

Public Const RAS_MaxDeviceName = 128

Public Const RAS_MaxDeviceType = 16

Public Const RAS_MaxPhoneNumber = 128

Public Const RAS_MaxCallbackNumber = 128

Public Const UNLEN = 256

Public Const PWLEN = 256

Public Const DNLEN = 15

Public Const ERROR_INVALID_HANDLE = 6

Type RASDIALPARAMS

dwSize As Long 1052

szEntryName(RAS_MaxEntryName) As Byte

szPhoneNumber(RAS_MaxPhoneNumber) As Byte

szCallbackNumber(RAS_MaxCallbackNumber) As Byte

szUserName(UNLEN) As Byte

szPassword(PWLEN) As Byte

szDomain(DNLEN) As Byte

End Type

 

Type RASCONNSTATUS

dwSize As Long 144

RasConnState As Long

dwError As Long

szDeviceType(RAS_MaxDeviceType) As Byte

szDeviceName(RAS_MaxDeviceName) As Byte

End Type

 

Declare Function RasGetErrorString Lib "rasapi32" _

Alias "RasGetErrorStringA" (ByVal ErrValue As Long, ByVal lpErrStr As String, _

ByVal cSize As Long) As Long

Declare Function RasDial Lib "rasapi32" _

Alias "RasDialA" (DialExt As Long, ByVal lpPhoneBook As String, _

RasDialParam As RASDIALPARAMS, ByVal NotifyType As Long, _

ByVal Notifter As Long, hRasConn As Long) As Long

Declare Function RasHangUp Lib "rasapi32" Alias _

"RasHangUpA" (ByVal hRasConn As Long) As Long

Declare Function RasGetConnectStatus Lib "rasapi32" Alias _

"RasGetConnectStatusA" (ByVal hRasConn As Long, _

lprasconnstatus As RASCONNSTATUS) As Long

Declare Function RasGetEntryDialParams Lib "rasapi32" _

Alias "RasGetEntryDialParamsA" (ByVal lpszPhonebook As String, _

lpRasDialParams As RASDIALPARAMS, _

lpfPassword As Byte) As Long

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

 

自动拨接(Win95 4, 5 个参数不传,或为vbNullString)

Public Function DialUp(ByVal EntryName As String, ByVal UserN As String, _

ByVal Pwd As String, Optional ByVal PhoneBook As String, Optional sDomain As String) As Long

Dim RasDialPara As RASDIALPARAMS

Dim bya() As Byte, di As Long

Dim len5 As Long, i As Long

Dim hRasConn As Long

 

len5 = LenB(RasDialPara)

i = (4 - (len5 Mod 4)) Mod 4

补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,