在应用措施中实现RAS拨号
副标题#e#
长途会见处事(RAS)是WindowsNT操纵系统提供的系统处事之一,通过电话线可以使单独的计较机接入网络,或通过两个RAS对拨使两个局域网互连。此项处事的成果可以使长途的计较机端点以较低的用度同网络毗连。
由于WindowsNT操纵系统的大量利用,长途会见处事成果也被遍及应用,在很多详细的应用措施中,均已通过长途会见处事来实现对长途的资源共享等成果。连通长途会见处事,只要从长途客户机拨通拨号网络就可以了,执行挂断就竣事毗连,鼠标操纵Windows95中的拨号网络可以直接拨通和挂断。但有些时候我们但愿在应用措施中RAS拨号和挂断对用户不行见,那么就需要相应的措施节制来实现RAS拨通和挂断。
Windows95提供了API函数RasDial,挪用系统中建好的拨号网络毗连,完成RAS拨号,同时还提供了API函数RasHangUp断开毗连。RasDial的原形如下:
DWORD RasDial(LPRASDIALEXTENSIONS IpRasDialExtensions,LPTSTR IpszPhonebook,LPRASDIALPARAMS IpRasDialParams,DWORD dwNotifierType,LPVOID IpvNotifier,LPHRASCONN IphRasConn)
此函数的第3个参数为指向RASDIALPARAMS型布局体的指针,它提供了设置RAS拨号的参数;第5个参数为拨号完成后执行的回调函数;第6个参数是LPHRASCONN型的指针,拨号毗连成立好之后将返回此毗连的句柄;其他3个参数为NULL即可。函数挪用假如乐成将返回零,不然返回错误代码,此错误代码的寄义可以在头文件Raserror.h中查到。
RASDIALPARAMS型布局体包括7个数据成员:dwSize、szEntryName、szPhoneNumber、szCallbackNumber、szUserName、szPassword和szDomain,它们的浸染如右表所示。
要挂断已拨通的毗连利用RasHangUp函数,需要的参数是此毗连的毗连句柄。下面先容利用VC完成RAS拨号的一个例子,个中我们假设RAS端NT处事器毗连的内部门机的电话号码是"22",详细步调如下:
1.设置好调制解调器,然后在Windows95的拨号网络中成立一个名为dial的毗连。
2.成立一个VisualC的应用框架,在Setting中为应用措施插手Rasapi32.lib静态库。
3.新建一个对话框,在其上加两个按钮,一个用于拨通,一个用于挂断。
4.在鼠标点击拨通按钮的响应函数中插手以下代码:
RASDIALPARAMS rdParams;
DWORD dwRet;
rdParams.dwSize=sizeof(RASDIALPARAMS);
strcpy(rdParams.szEntryName,"dial");
strcpy(rdParams.szPhoneNumber,"22");
strcpy(rdParams.szCallbackNumber,"*");
strcpy(rdParams.szUserName,"dial");
rdParams.szPassword[0]=’\0′;
strcpy(rdParams.szDomain,"dial");
hRasConn=NULL;
dwRet=RasDial(NULL,NULL,&rdParams,0L,(RASDIALFUNC)RasDialFunc,&hRasConn);
if(dwRet!=0)
{
//dealwitherror…
}
5.在此响应函数之前插手如下代码:
VOID WINAPI RasDialFunc(UINT unMsg,RASCONNSTATE rasconnstate,DWORD dwError)
{
}
#p#副标题#e#
6.在鼠标点击挂断按钮的响应函数中插手如下代码:
DWORD dwRet;
dwRet=RasHangUp(hRasConn);
7.最后编译执行措施。
RASDIALPARAMS型布局体数据成员表成员名范例成果
DwSize DWORD 布局体的巨细
SzEntryName TCHAR数组 挪用的拨号毗连名称
SzPhoneNumber TCHAR数组 拨打的电话号码
SzCallbackNumer TCHAR数组 要求回拨的电话号码
SzUserName TCHAR数组 向RAS登录的用户名
SzPassord TCHAR数组 向RAS登录的口令
SzDomain TCHAR数组 向RAS登录的域