FAQ Проверка Подключения К Интернету Delphi 17.11.2016

  • Автор темы Автор темы Lomanu4
  • Дата начала Дата начала

Lomanu4

Команда форума
Администратор
Ofline
Код:
function IsConnectedToInternet(lpdwFlags: LPDWORD): Boolean;
const
  WininetDLL = 'wininet.dll';
var
  hWininetDLL: THandle;
  dwReserved: DWORD;
  fn_InternetGetConnectedState: function(lpdwFlags: LPDWORD; dwReserved: DWORD): BOOL; stdcall;
begin
  Result:= False;
  dwReserved:= 0;
  hWininetDLL:= LoadLibrary(WininetDLL);
  if hWininetDLL > 0 then
  begin
    @fn_InternetGetConnectedState:= GetProcAddress(hWininetDLL,'InternetGetConnectedState');
    if Assigned(fn_InternetGetConnectedState) then
    begin
      Result:= fn_InternetGetConnectedState(lpdwFlags, dwReserved);
    end;
    FreeLibrary(hWininetDLL);
  end
  else
  raise Exception.Create('Unable to locate function InternetGetConnectedState in library ' + WininetDLL);
end;

procedure InternetCheck;
const
  INTERNET_CONNECTION_MODEM = 1;
  INTERNET_CONNECTION_LAN = 2;
  INTERNET_CONNECTION_PROXY = 4;
  INTERNET_CONNECTION_MODEM_BUSY = 8;
var
  dwConnectionTypes: DWORD;
begin
  dwConnectionTypes :=
  INTERNET_CONNECTION_MODEM +
  INTERNET_CONNECTION_LAN +
  INTERNET_CONNECTION_PROXY;
  if IsConnectedToInternet(@dwConnectionTypes) then
  begin
    // Есть подключение к интернету
  end
  else
  begin
    ShowMessage('Нет подключения к интернету');
    ExitProcess(0);
  end;
end;
 
А так разве не проще ?

Код:
uses
 WinInet

var
dwConnectionTypes : DWORD;
......................................

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

procedure TForm2.FormCreate(Sender: TObject);
begin
if IsConnectedToInternet  then begin
ShowMessage('Есть подключение к интернету');
end else begin
ShowMessage('Нет подключения к интернету');
end;
 
Последнее редактирование:
Назад
Сверху Снизу