Get Internet connected state

To get Internet connected state, use InternetGetConnectedState function. This example is working in Delphi4 and higher.

uses WinInet;
...
procedure TForm1.Button1Click(Sender: TObject);
var
  State: DWord;
  Result: Boolean;
const
  Type1 = INTERNET_CONNECTION_MODEM;
  Type2 = INTERNET_CONNECTION_LAN;
  Type3 = INTERNET_CONNECTION_PROXY;
  Type4 = INTERNET_CONNECTION_MODEM_BUSY;
begin
  Result:=InternetGetConnectedState(@State, 0);
  if Result then
  begin
    if (State and Type1) = Type1 then
      Label1.Caption:=Label1.Caption+'Modem ';
    if (State and Type2) = Type2 then
      Label1.Caption:=Label1.Caption+'LAN ';
    if (State and Type3) = Type3 then
      Label1.Caption:=Label1.Caption+'Proxy ';
    if (State and Type4) = Type4 then
      Label1.Caption:=Label1.Caption+'Modem busy ';
  end;
end;