PDA

Просмотр полной версии : [Статья] Проверка подключения к интернету Delphi


craft1n
03.04.2017, 00:44
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,'InternetGetConnectedSt ate');
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;

Вызываем процедуру:

InternetCheck;