我打了两遍都不小心ESCAPE掉了,只好简单说了。
远程访问服务RAS函数由RASAPI32.DLL提供,DELPHI没有提供宣告档,在深度历险的WIN API
宣告档中可找到(RAS.PAS、RAS32.PAS或RASAPI.PAS)。
建立连接
RasDial(nil, nil, DialParams, 0, @RasCallBack, hRas);
前两个参数在Win98中不用,DialParams为结构
TDialParams
{
记录长度 SizeOf(TDialParams)
地址簿 PChar('')或PChar('我的连接')
呼叫号码 PChar('1234567')
回叫号码 PChar('')
用户名 PChar('login')
密码 PChar('password')
NT域 PChar('domain')
}
后一个0表示消息处理为回调函数,FFFFFFFF表示消息处理为窗口句柄,nil为同步调用
@RasCallBack为回调函数指针。
hRas为连接句柄。
断开连接
RasHangUp(hRas)
由于不会立即断开,要用RasGetConnectStatus(hRas, Status)判断Status为TRasConnStatus
类型
if RasHangUp(hRas) = 0 then
begin
Status.dwSize := SizeOf(TRasConnStatus);
AReturn := RasGetConnectStatus(hRas, Status);
while AReturn <> ERROR_INVALID_HANDLE do
AReturn := RasGetConnectStatus(hRas, Status);
end
else
失败;
监测状态
可在RasCallBack函数中用RasGetConnectStatus判断各种状态。
其他函数
RasGetErrorString, RasEnumConnections, RasEnumEntris可查阅MSDN