Code is taken from here, and translated to Lazarus.
Dialing:
uses ras
... var rasDialParam:RASDIALPARAMS; pRasConn:HRASCONN; dwResult: DWORD; begin pRasConn := null; FillChar(rasDialParam, SizeOf(RASDIALPARAMS), 0); rasDialParam.dwSize:=SizeOf(RASDIALPARAMS); rasDialParam.szCallbackNumber[0]:=#0; rasDialParam.szDomain[0]:=#0; rasDialParam.szEntryName:='ConnName'; //important, name of the connection which I want to use rasDialParam.szPassword:='pass'; //important, if pass or user is wrong, then I will receive error code 619 rasDialParam.szPhoneNumber[0]:=#0; rasDialParam.szUserName:='user'; //important dwResult := RasDial(nil, nil, @rasDialParam, null, nil, @pRasConn); if dwResult = ERROR_SUCCESS then ShowMesage('It is working') else ShowMesage('Error: ' + IntToStr(dwResult))
Get connection status:
... var dwResult: DWORD; MyRasconnstatus: RASCONNSTATUS; ... dwResult := RasGetConnectStatus(VRasConn, @MyRasconnstatus); if dwResult = ERROR_SUCCESS then begin if MyRasconnstatus.rasconnstate = RASCS_Connected then begin ShowMessage('Connected') end else begin ShowMessage('Not connected') end; end;
Hang up:
RasHangUp(VRasConn)