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

Author: bnOne
Homepage: http://kickme.to/bnOne

Category: Internet / LAN

{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/ Andere Möglichkeiten:
...determine if there is an active connection to the internet ?
...überprüfen ob eine Verbindung zum Internet besteht ?

 

printed from
www.swissdelphicenter.ch
developers knowledge base