Mega Code Archive

 
Categories / Delphi / LAN Web TCP
 

How to determine if there is an active connection to the internet (3)

Title: How to determine if there is an active connection to the internet (3) {2. 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; {**********************************************************} {2. Dynamic linking. } 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 TForm1.Button1Click(Sender: TObject); 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 ShowMessage('Connected.') else ShowMessage('Not Connected.') end; Other Possibilities ...determine if there is an active connection to the internet ?