Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Определить, есть ли активное соединение с Интернетом

Delphi , Интернет и Сети , Интернет

Определить, есть ли активное соединение с Интернетом

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{Static linking. }

 uses
   WinInet;

 {...}

 function IsConnectedToInternet: Boolean;
 var
   dwConnectionTypes: DWORD;
 begin
   dwConnectionTypes :=
     INTERNET_CONNECTION_MODEM +
     INTERNET_CONNECTION_LAN +
     INTERNET_CONNECTION_PROXY;
   Result := InternetGetConnectedState(@dwConnectionTypes, 0);
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   if IsConnectedToInternet then
     ShowMessage('Connected.')
   else
     ShowMessage('Not Connected.')
 end;

Here's the translation of the text into Russian:

Код проверяет наличие активной связи с интернетом на платформе Windows с помощью Delphi. Он использует библиотеку WinInet, которая предоставляет функции для работы с сетевыми соединениями.

Вот как это работает:

  1. Функция IsConnectedToInternet получает текущие типы соединений с помощью функции InternetGetConnectedState из WinInet. Эта функция принимает два параметра: указатель на переменную, которая будет получать тип(ы) соединения, и значение, указывающее, нужно ли получить только основное соединение.
  2. В этом случае мы устанавливаем dwConnectionTypes в сочетание трех типов соединений:
    • INTERNET_CONNECTION_MODEM: соединение модема
    • INTERNET_CONNECTION_LAN: локальная сеть (LAN)
    • INTERNET_CONNECTION_PROXY: соединение через прокси-сервер
  3. Функция InternetGetConnectedState возвращает логическое значение, указывающее, есть ли активное соединение. Это значение присваивается переменной Result функции IsConnectedToInternet.
  4. В обработчике события Button1Click мы вызываем функцию IsConnectedToInternet и проверяем ее результат. Если он истинен, мы отображаем сообщение об ошибке "Connected.". Иначе, мы отображаем сообщение об ошибке "Not Connected.".

Альтернативное решение с использованием компонента TIdStack из библиотеки Indy:

uses
  IdStack;

function IsConnectedToInternet: Boolean;
begin
  Result := TIdStack.GetStackStatusBits = [ssfConnected];
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if IsConnectedToInternet then
    ShowMessage('Connected.')
  else
    ShowMessage('Not Connected.');
end;

В этом решении мы используем метод GetStackStatusBits компонента TIdStack, чтобы проверить наличие активного соединения. Если результат равен [ssfConnected], то это означает, что есть подключенный сокет, и мы отображаем сообщение об ошибке "Connected.". Иначе, мы отображаем сообщение об ошибке "Not Connected.".

Обратите внимание, что Indy не так широко используется, как WinInet, но он предоставляет болееadvanced функциональность для сетевых соединений и может быть хорошим альтернативой в определенных ситуациях.

Определение активного соединения с Интернетом в программном коде на Delphi с помощью функции InternetGetConnectedState.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: Интернет ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 18:00:24/0.0073280334472656/2