📄 wzjh48.htm
字号:
   获取拨号连接的拨号参数RasAPI函数为RasGetEntryDialParams,其函数原型为: <br>   function RasGetEntryDialParams( <br>   lpszPhonebook: pchar;//电话本名称,在Win9X下无作用,可为空字符串 <br>   pRASDIALPARAMS:LPRASDIALPARAMS;//拨号参数,是一个RASDIALPARAMS类型的指针 <br>   var lpfPassword : WordBool//是否需要用户密码 <br>   ) : DWORD; stdcall; <br>   function RasGetEntryDialParams;external RasApiDll name 'RasGetEntryDialParamsA'; <br>    <br>   参数pRASDIALPARAMS是一个RASDIALPARAMS类型的指针,指向一个拨号连接的拨号参数数据 的缓冲区,其中RASDIALPARAMS及LPRASDIALPARAMS的类型说明如下: <br>   LPRASDIALPARAMS = ^RASDIALPARAMS; <br>   RASDIALPARAMS = record <br>   dwSize : DWORD;//该结构所占内存的大小(Bytes),一般设置为SizeOf(RASDIALPARAMS) <br>   szEntryName : array[0..RAS_MaxEntryName] of char;//拨号连接名称 <br>   szPhoneNumber : array[0..RAS_MaxPhoneNumber] of char;//拨号号码 <br>   szCallbackNumber : array[0..RAS_MaxCallbackNumber] of char;//回叫号码 <br>   szUserName : array[0..UNLEN] of char;//用户名称 <br>   szPassword : array[0..PWLEN] of char;//用户密码 <br>   szDomain : array[0..DNLEN] of char;//域名 <br>   end; <br>    函数返回值为0表示执行成功;否则为错误代码. <br>    下面是一个应用例子,获取指定拨号连接的拨号参数. <br>   var <br>   dwResult : DWORD; <br>   RASDIALPARAMSData : RASDIALPARAMS; <br>   NeedPWD : WordBool; <br>   begin <br>   //指定拨号连接的名称 <br>   with RASDIALPARAMSData do <br>   begin <br>   dwSize := sizeof( RASDIALPARAMS );//结构大小 <br>   szEntryName := '163';//指定拨号连接的名称 <br>   szUserName := '';//其它五个参数初始化 <br>   szPassword := ''; <br>   szDomain := ''; <br>   szCallbackNumber := ''; <br>   szPhoneNumber := ''; <br>   end; <br>   NeedPWD := true;//需要用户密码 <br>    <br>   //获取指定拨号连接的拨号参数 <br>   dwResult := RasGetEntryDialParams( '',@RASDIALPARAMSData,NeedPWD ); <br>    <br>   if dwResult <> 0 then //获取指定拨号连接的拨号参数失败 <br>   memo1.lines.add( '获取'+StrPAS(RASDIALPARAMSData.szEntryName )+'拨号参数失败:' <br>   + GetRasError( dwResult )) <br>   else <br>   begin//显示指定拨号连接的拨号参数 <br>   memo1.lines.add( StrPAS(RASDIALPARAMSData.szEntryName )+'拨号参数如下'); <br>   memo1.lines.add( '用户名称:' + StrPAS(RASDIALPARAMSData.szUserName )); <br>   memo1.lines.add( '用户密码:' + StrPAS(RASDIALPARAMSData.szPassword )); <br>   memo1.lines.add( '域 名:' + StrPAS(RASDIALPARAMSData.szDomain )); <br>   memo1.lines.add( '回叫号码:' + StrPAS(RASDIALPARAMSData.szCallbackNumber )); <br>   memo1.lines.add( '拨号号码:' + StrPAS(RASDIALPARAMSData.szPhoneNumber )); <br>   end; <br>   end; <br>    2、设置拨号连接的拨号参数 <br>    设置拨号连接的拨号参数RasAPI函数为RasSetEntryDialParams,其函数原型为: <br>   function RasSetEntryDialParams( <br>   lpszPhonebook: pchar;//电话本名称,在Win9X下无作用,可为空字符串 <br>   pRASDIALPARAMS:LPRASDIALPARAMS;//拨号参数,是一个RASDIALPARAMS类型的指针 <br>   var lpfPassword : WordBool//是否删除用户密码 <br>   ) : DWORD; stdcall; <br>   function RasSetEntryDialParams;external RasApiDll name 'RasSetEntryDialParamsA'; <br>   参数pRASDIALPARAMS的说明同RasGetEntryDialParams. <br>   参数lpfPassword的含义与RasGetEntryDialParams不同,在此表示是否删除用户密码,为 <br>    TRUE时将原来的用户密码删除. <br>    <br>    函数返回值为0表示执行成功;否则为错误代码. <br>    下面是一个应用例子,设置指定拨号连接的拨号参数. <br>   var <br>   dwResult : DWORD; <br>   RASDIALPARAMSData : RASDIALPARAMS; <br>   RemovePWD : WordBool; <br>   begin <br>   //指定拨号连接的拨号参数 <br>   with RASDIALPARAMSData do <br>   begin <br>   dwSize := sizeof( RASDIALPARAMS );//结构大小 <br>   szEntryName := '163';//指定拨号连接的名称 <br>   szUserName := 'MyName';//指定用户名称 <br>   szPassword := 'MyPassword';//指定用户密码 <br>   szDomain := 'MyDomain';//指定域名 <br>   szCallbackNumber := '';//指定回叫号码 <br>   szPhoneNumber := '';//指定拨号号码 <br>   end; <br>   RemovePWD := false;//不需要删除用户密码 <br>    <br>   //设置指定拨号连接的拨号参数 <br>   dwResult := RasSetEntryDialParams( '',@RASDIALPARAMSData,RemovePWD ); <br>    <br>   if dwResult <> 0 then //设置指定拨号连接的拨号参数失败 <br>   memo1.lines.add( '设置'+StrPAS(RASDIALPARAMSData.szEntryName )+'拨号参数失败:' + GetRasError( dwResult )) <br>   else <br>   begin//显示指定拨号连接的拨号参数 <br>   memo1.lines.add( StrPAS(RASDIALPARAMSData.szEntryName )+'拨号参数设置成功'); <br>   memo1.lines.add( '用户名称:' + StrPAS(RASDIALPARAMSData.szUserName )); <br>   memo1.lines.add( '用户密码:' + StrPAS(RASDIALPARAMSData.szPassword )); <br>   memo1.lines.add( '域 名:' + StrPAS(RASDIALPARAMSData.szDomain )); <br>   memo1.lines.add( '回叫号码:' + StrPAS(RASDIALPARAMSData.szCallbackNumber )); <br>   memo1.lines.add( '拨号号码:' + StrPAS(RASDIALPARAMSData.szPhoneNumber )); <br>   end; <br>   end; <br>    <br>   四、用指定的拨号连接拨号、挂断指定的拨号连接 <br>    1、用指定的拨号连接拨号 <br>    拨号有两种方法,一种是调用拨号网络中的拨号程序,就象用户自己用鼠标双击拨号连接名称一 样,用户可以修改拨号号码、用户名称和用户密码,最后由拨号网络来完成拨号过程;另一个方法则 是调用RasAPI函数. <br>   (1)用拨号网络中的拨号程序 <br>    在程序中可以用如下代码: <br>    winexec('rundll32.exe rnaui.dll,RnaDial 169',SW_SHOWNORMAL); <br>    其中字符串中的最后一个参数"169"为拨号连接的名称。 <br>   (2)用RasAPI函数拨号 用拨号连接拨号的RasAPI函数为RasDial,其函数原型为: <br>   function RasDial( <br>   pRasDialExtensions : LPRASDIALEXTENSIONS;//在WIN9X下无用,可设置为NIL <br>   lpszPhonebook : PChar;//电话本名称,在Win9X下无作用,可为空字符串 <br>   lpRasDialParams : LPRASDIALPARAMS;//拨号参数 <br>   dwNotifierType : DWORD;//消息通知方式 <br>   handle : TRasDialFunc;//消息处理事件 <br>   var lphRasConn : DWORD//返回的成功连接的连接句柄 <br>   ) : DWORD; stdcall; <br>   function RasDial;external RasApiDll name 'RasDialA'; <br>    <br>    参数pRASDIALPARAMS的说明同RasGetEntryDialParams. <br>    参数dwNotifierType表示消息通知方式.在拨号过程中,系统发出拨号事件消息可以通知拨号 进度,因而需要提供接受消息的方式和处理消息的函数.当其值为$FFFFFFFF时,则参数handle被 视为一个窗口的句柄,事件消息被发生该窗口处理;当其值为0时,handle被视为TRasDialFunc类型 的函数的指针;当其值为1时,handle被视为TRasDialFunc1类型的函数的指针. <br>    参数handle表示消息处理函数指针,其类型可以THandle、TRasDialFunc、TRasDialFunc1.当该 参数不为NULL或NIL时,其代表的消息处理函数指针将接受拨号进度通知消息;为NIL时,拨号过程由异步方式变为同步方式,直到拨号过程成功或失败后RasDial函数才返回.详细可参见Delphi帮助文件中关于RasDial函数的帮助。 <br>    当拨号连接成功时,lphRasConn将表示其连接句柄. <br>    <br>    函数返回值为0表示执行成功;否则为错误代码. <br>    下面是一个应用例子,按指定的拨号参数拨号. <br>    <br>   var <br>   RASDIALPARAMSData : RASDIALPARAMS; <br>   dwResult : DWord; <br>   RasCon : DWord; <br>   begin <br>   //指定拨号连接的拨号参数 <br>   with RASDIALPARAMSData do <br>   begin <br>   dwSize := sizeof( RASDIALPARAMS );//结构大小 <br>   szEntryName := '163';//指定拨号连接的名称 <br>   szUserName := 'MyName';//指定用户名称 <br>   szPassword := 'MyPassword';//指定用户密码 <br>   szDomain := 'MyDomain';//指定域名 <br>   szCallbackNumber := '';//指定回叫号码 <br>   szPhoneNumber := '';//指定拨号号码 <br>   end; <br>    <br>   //用指定的拨号参数拨号,采用同步拨号方式 <br>   dwResult := RasDial( NIL,'',@RASDIALPARAMSData,0,NIL,RasCon ); <br>    <br>   if dwResult <> 0 then //设置指定拨号连接的拨号参数失败 <br>   memo1.lines.add( '用'+StrPAS(RASDIALPARAMSData.szEntryName )+'拨号失败:' <br>   + GetRasError( dwResult )) <br>   else <br>   memo1.lines.add( '用'+StrPAS(RASDIALPARAMSData.szEntryName )+'拨号成功!' ); <br>   end; <br>    <br>    2、挂断指定的拨号连接 <br>    挂断拨号连接的RasAPI函数为RasHangUp,其函数原型为: <br>   function RasHangUp( <br>   hRasConn : DWORD//要挂断的拨号连接的句柄 <br>   ) : DWORD; stdcall; <br>   function RasHangUp;external RasApiDll name 'RasHangUpA'; <br>    函数返回值为0表示执行成功;否则为错误代码. <br>    下面是一个应用例子,挂断由RasDial建立的拨号连接. <br>    <br>   //挂断由RasDial建立的拨号连接 <br>   dwResult := RasHangUp( RasCon ); <br>   if dwResult <> 0 then //挂断失败 <br>   memo1.lines.add( '挂断失败:' + GetRasError( dwResult )) <br>   else <br>   memo1.lines.add( '挂断成功!'); <br>    <br>   五、获取当前活动的连接及其连接状态 <br>    1、获取当前活动的连接 <br>    获取当前活动的连接的RasAPI函数为RasEnumConnections,其函数原型为: <br>   function RasEnumConnections( var lprasc <br>    <br>   </font></td> </tr> </table> </td> </tr></table><br><hr SIZE="1" width="90%"></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -