我们常用的软件如:JETCAR(现在为FLASHGET),GO!ZILLA等都具有拨号上网功能。那么,如何在自己编写的应用程序中也实现上述的功能呢?本文就利用RAS调用介绍在自己编写的应用程序如何实现拨号上网。
一.与拨号网络有关的结构和函数
1.RASDIALPARAMS95结构.其定义如下:
Public Type RASDIALPARAMS95 dwSize As Long szEntryName(RAS95_MaxEntryName) As Byte szPhoneNumber(RAS95_MaxPhoneNumber) As Byte szCallbackNumber(RAS95_MaxCallbackNumber) As Byte szUserName(UNLEN) As Byte szPassword(PWLEN) As Byte szDomain(DNLEN) As Byte End Type |
其中,dwSize表示该结构的大小(以字节为单位)。szEntryName表示一个远程访问的入口名,也就是WINDOWS下的拨号网络中的连接图标小的文字;szEntryName参数可是是空串,表示仅与第一个有效的MODEM建立远程连接。szPhoneNumber为表示呼叫的号码。当szEntryName是空时,zPhoneNumber不能为空。szCallbackNumber表示回叫号码,一般都设为空。szUserName为建立远程访问的用户名。szPassword为建立远程访问的密码。szDomain为进行远程访问用户名和密码认证的域名。我们将szDomain设为空,表示远程访问的服务器也是该域名下的成员。
2.RASDIAL函数.其API声明为:
Public Declare Function RasDial Lib "RasApi32.DLL" Alias "RasDialA" (lpRasDialExtensions As Any, ByVal lpszPhonebook As String, lprasdialparams As Any, ByVal dwNotifierType As Long, lpvNotifier As Long, lphRasConn As Long) As Long |
RASDIAL函数用于建立RAS客户机和RAS服务器的连接。
各参数解释如下:
lpRasDialExtensions参数在WINDOWS95/98下被忽略。
lpszPhonebook参数在WINDOWS95/98下也被忽略。
lprasdialparams参数是指向一个含有RAS连接参数值的RASDIALPARAMS结构变量。
dwNotifierType参数用于指出参数lpvNotifier的性质。若lpvNotifier 为NULL,则dwNotifierType的值被忽略;若lpvNotifier不为NULL,则dwNotifierType应该为下列值之一:
(1).0XFFFFFFFF------指出lpvNotifier参数是一个接收进程通知消息的窗口句柄;
(2).0----------------指出lpvNotifier指向一个RASDIALFUNC回调函数;
(3).1----------------指出lpvNotifier指向下一个RASDIALFUNC1回调函数。
lpvNotifier参数用于指向一个接收RASDIAL事件通知的窗口或者回调函数,其性质由dwNotifierType参数决定:
(1).若lpvNotifier不NULL,表示是异步通信。即RASDIAL会对每个事件发送一个窗口消息或者调用回调函数。RASDIAL函数会立即返回,它通过窗口或者调用回调函数建立连接,与进程通信。
(2).若lpvNotifier是NULL,表示同步通信。即RASDIAL函数在连接建立完成或者失败后才会返回。
lphRasConn参数指向HRASCONN变量,必须先将lphRasConn设置为NULL,然后再调用RASDIAL函数。如果RASDIAL函数调用成功,lphRasconn会放置一个RAS连接句柄。
3.RASHANGUP函数.其API声明为:
Public Declare Function RasHangUp Lib "RasApi32.DLL" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long |
RASHANGUP函数用于断开一个RAS连接。其参数hRasConn为指向一个RAS连接的句柄。
二.用VB6.0实现RAS拨号上网过程。
新建一个工程,取名为RasDial;然后在该工程中加入如下项目:
1.新建一个窗体Form1,然后在该窗体中加入如下组件:
("连接"按钮取名为Ras_Dial,"挂断"按钮取名为:Ras_HangUp,"退出"按钮取名为:"Cancel".
3个文本框分别取名为:PhoneNumber,UserName,PassWord.)