如何Delphi中操纵拨号网络

http://tech.ddvip.com   2007年10月06日    社区交流

内容摘要:在WIN9X下,如果安装了拨号网络,则在WINDOWS系统的系统目录System下将有两个拨号网络管理 程序库RasApi32.DLL和RasApi16.DLL,我们可利用其中的函数来获取和设置拨号连接网络的信息。在 Delphi帮助文件中,有相关函数的说明。

  参数handle表示消息处理函数指针,其类型可以THandle、TRasDialFunc、TRasDialFunc1.当该 参数不为NULL或NIL时,其代表的消息处理函数指针将接受拨号进度通知消息;为NIL时,拨号过程由异步方式变为同步方式,直到拨号过程成功或失败后RasDial函数才返回.详细可参见Delphi帮助文件中关于RasDial函数的帮助。

  当拨号连接成功时,lphRasConn将表示其连接句柄.

  函数返回值为0表示执行成功;否则为错误代码.

  下面是一个应用例子,按指定的拨号参数拨号.

var
RASDIALPARAMSData : RASDIALPARAMS;
dwResult : DWord;
RasCon : DWord;
begin
//指定拨号连接的拨号参数
with RASDIALPARAMSData do
begin
dwSize := sizeof( RASDIALPARAMS );//结构大小
szEntryName := '163';//指定拨号连接的名称
szUserName := 'MyName';//指定用户名称
szPassword := 'MyPassword';//指定用户密码
szDomain := 'MyDomain';//指定域名
szCallbackNumber := '';//指定回叫号码
szPhoneNumber := '';//指定拨号号码
end;
//用指定的拨号参数拨号,采用同步拨号方式
dwResult := RasDial( NIL
''
@RASDIALPARAMSData
0
NIL
RasCon );
if dwResult <> 0 then //设置指定拨号连接的拨号参数失败
memo1.lines.add( '用'+StrPAS(RASDIALPARAMSData.szEntryName )+'拨号失败:'
+ GetRasError( dwResult ))
else
memo1.lines.add( '用'+StrPAS(RASDIALPARAMSData.szEntryName )+'拨号成功!' );
end;

  2、挂断指定的拨号连接

  挂断拨号连接的RasAPI函数为RasHangUp,其函数原型为:

function RasHangUp(
hRasConn : DWORD//要挂断的拨号连接的句柄
) : DWORD; stdcall;
function RasHangUp;external RasApiDll name 'RasHangUpA';

  函数返回值为0表示执行成功;否则为错误代码.

  下面是一个应用例子,挂断由RasDial建立的拨号连接.

//挂断由RasDial建立的拨号连接
dwResult := RasHangUp( RasCon );
if dwResult <> 0 then //挂断失败
memo1.lines.add( '挂断失败:' + GetRasError( dwResult ))
else
memo1.lines.add( '挂断成功!');

  五、获取当前活动的连接及其连接状态

  1、获取当前活动的连接

  获取当前活动的连接的RasAPI函数为RasEnumConnections,其函数原型为:

DWORD RasEnumConnections(
 LPRASCONN lprasconn,  // buffer to receive connections
             // data
 LPDWORD lpcb,      // size in bytes of buffer
 LPDWORD lpcConnections // number of connections written
             // to buffer
);

责编:豆豆技术应用

正在加载评论...