Статьи Королевства Дельфи


Использование Interenet-функций Win32® API - часть 2


Всего функций довольно много, около 80, но для средних приложений большинство из них не понадобится. Рассмотрим, что можно использовать из первой категории.

Из всех функций наибольший практический интерес представляют следующие:

InternetCheckConnection
позволяет узнать, есть ли уже соединение с Internet.

Синтаксис:

function InternetCheckConnection(lpszUrl: PAnsiChar; dwFlags: DWORD; dwReserved: DWORD): BOOL; stdcall; Если нужно проверить, есть ли соединение по конкретному URL, то параметр lpszUrl должен содержать нужный URL; если интересует, есть ли соединение вообще, установите его в nil.

  • DwFlags может иметь значение только FLAG_ICC_FORCE_CONNECTION. Он делает следующее: если первый параметр не nil, то происходит попытка пропинговать указанный хост. Если параметр lpszUrl установлен в nil и есть соединение с другим сервером, то пингуется этот хост.
Последнее значение , dwReserved, зарезервировано, и должно быть установлено в 0.

К сожалению, я не проверял эту функцию, когда писал статью... а жаль... вот что получаеться: константа FLAG_ICC_FORCE_CONNECTION вообще не описана в Дельфи. более того - ее нет ни в Microsoft Visual C++ 5 (!!!!), VBasic 5 тоже! едва нашел в C++ Builder 5.
Вот описание - const FLAG_ICC_FORCE_CONNECTION $00000001 Но! Даже с описанной константой ничего не работает так, как надо! Вот пример: procedure TForm1.Button1Click(Sender: TObject); var h:boolean; begin h:= wininet.InternetCheckConnection(nil,$00000001,0); if h = True then Label1.Caption:='Соеденение с сервером 127.0.0.1 установлено.' else if h = false then Label1.Caption:='Соеденения с сервером 127.0.0.1 нет.'; end; Запускаю вместе с сервером - вроде должно пинговать его. Но первый раз функция показывает что соеденение есть несмотря на то, стоит ли сервер, или нет. Потом все время выдает false.
Если кто из читателей может пролить некоторый свет на проблему этой функции, очень прошу написать мне.
Благодарю Суркиза Максима, который впервые обратил мое внимание на проблему.

InternetOpen




Начало  Назад  Вперед



Книжный магазин