3. Вызовем функцию RasEnumEntries в результате чего получим искомые результаты:
Result_:=RasEnumEntries(nil, nil, @Entry[1], BuffSize, Entries), где
Result_- в случае успешного выполнения возвращает 0, в противном случае получим ERROR_BUFFER_TOO_SMALL (буфер слишком маленький) или ERROR_NOT_ENOUGH_MEMORY(не хватает памяти).
BuffSize - указанный нами размер AnsiChar-массива.
@Entry[1]- получим указатель на первый элемент массива, в который поместились необходимые нам сведения.
Entries - получим количество зарегистрированных в системе "удаленных доступов".
Дальше уже просто.
В случае успешного выполнения функции и существования хотя бы одного зарегистрированного "удаленного соединения" заполним нашу переменную
Code: |
if (Result_ = 0) and (Entries > 0) then begin AllEntries := TStringList.Create; for X := 1 to Entries do begin AllEntries.Add(Entry[x].szEntryName); end;
{.....здесь мы работает со своей переменной, например, помещаем сведения об "удаленных соединениях" в ListBox......}
AllEntries.Free; end; |
2. Соединение с интернет-сервером через выбранный "удаленный доступ" и получение статуса соединения
Для соединения с интернет-сервером используются две библиотечные функции RasGetEntryDialParams и RasDial. Для обработки ошибок, возникших в процессе соединения, используется еще одна библиотечная функция RasGetErrorString.
Определим необходимые переменные.
Глобальные:
MyDialParam : TMyDialParam
переменная состояния соединения, где
TMyDialParam = Record
AMsg : Integer; - код сообщения
AState : TRasConnState; - статус соединения (тип переменной определен в RasUnit.pas)
AError : Integer; - код ошибки
hRas: ThRASConn
в эту переменную будет помещен handle (так сказать "ИНН") "удаленного соединения", к этой переменной будет обращаться функция RasHangUp для завершения соединения, тип переменной описан в RasUnit.pas
Локальные:
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!