function DialProvider(connection: string): boolean;
// connection - имя учетной записиvar
pars: TRasDialParams;
hRas: ThrasConn;
r: integer;
begin
hRas := 0;
strpcopy(pars.szEntryName, connection); // имя учетной записи
pars.szPhoneNumber := ''; // номеp телефона - по умолчанию
pars.szcallbacknumber := ''; // callback нам не нужен
pars.szUserName := ''; // логин - по умолчанию
pars.szPassWord := ''; // паpоль - по умолчанию
pars.szDomain := ''; // аналогично с домейном
pars.dwSize := Sizeof(TRasDialParams); // вычисляем pазмеp записи
r := rasdial(nil, nil, pars, 0, nil, hRas); // звонимif r <> 0 thenbegin// если что-то неполучилось, то
rasHangUp(hRas); // сбpасываем соединение
result := false; // ф-ция тепеpь веpнет falseendelse
result := true; // а если все ок - то true.end;
Функция DialProvider предназначена для установления соединения с удаленным провайдером с помощью API RAS (Remote Access Service) в Windows. Функция принимает строку connection как параметр входа, которая представляет собой имя пользователя учетной записи.
Код выполняет следующие действия:
Инициализирует структуру TRasDialParams (pars) и устанавливает ее поля в значения по умолчанию.
Копирует предоставленную строку connection в поле szEntryName структуры pars, которое представляет собой имя пользователя учетной записи.
Функция вызывает функцию API rasdial для установления соединения с удаленным провайдером. Функция принимает несколько параметров:
nil: пустой указатель (не используется в этом случае)
nil: еще один пустой указатель (не используется в этом случае)
pars: структура TRasDialParams
0: размер структуры pars
nil: указатель на функцию обратного вызова (не используется в этом случае)
hRas: переменная, которая будет хранить.handle соединения
Если функция rasdial возвращает код ошибки (r <> 0), функция вызывает функцию rasHangUp для разъединения соединения и устанавливает результат в false.
Если функция rasdial успешна, функция устанавливает результат в true.
Программный код предполагает, что библиотека RAS API (Ras.pas) доступна на системе.
В ответ на ваш вопрос о том, как подключиться к провайдеру с помощью Delphi, этот код-snippet должен помочь вам достичь этого. Просто убедитесь, что включите библиотеку Ras.pas в ваш проект и предоставьте правильное имя пользователя (connection строка) для установления соединения.
Альтернативное решение:
usesRAS;functionDialProvider(connection:string):boolean;varhRas:ThrasConn;beginResult:=False;// assume failure// Create a new RAS connectionhRas:=RasCreate(NULL,NULL);ifhRas<>0thenbegin// Set the username and other parametersRasSetEntryName(hRas,PChar(connection));RasHangUp(hRas);Result:=True;// successend;end;
Код использует функцию RasCreate для создания нового соединения RAS, устанавливает имя пользователя с помощью RasSetEntryName, а затем разъединяет соединение с помощью RasHangUp. Если создание соединения успешно, результат установлен в True.
Обратите внимание, что это альтернативное решение предполагает, что вы включили библиотеку Ras.pas в ваш проект.
В статье описывается функция на языке Delphi, которая позволяет дозвониться до провайдера 2 и установить соединение в случае успешного звонка, а в противном случае - сбросить соединение.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.