unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,
  UrlMon,ShellApi,WinInet,
  Winsock;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    Button2: TButton;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Button3: TButton;
    GroupBox3: TGroupBox;
    Edit3: TEdit;
    Button4: TButton;
    GroupBox4: TGroupBox;
    Button5: TButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
//http://www.phys.uni.torun.pl/~jacek/img/umk.gif
if (URLDownloadToFile(nil,PChar(Edit1.Text),PChar(Edit2.Text),0,nil)=S_OK)
  then ShowMessage('Pobranie pliku zakończone.')
  else ShowMessage('Pobranie pliku nie powiodło się')
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ShellExecute(Handle,'open',PChar(Edit2.Text),'','.',SW_NORMAL);
end;

function AdresIP(out nazwaKomputera :String;inicjacja :Boolean = True) :String;
var
  //Biblioteka Winsock
  wVersionRequested:WORD;
  wsaData:TWSAData;
  //Struktury potrzebne do odczytania adresu
  pInfoKomputer :PHostEnt;
begin
//Ładujemy bibliotekę Winsock
if inicjacja then
  begin
  wVersionRequested := MAKEWORD(1,0);
  WSAStartup(wVersionRequested,wsaData);
  end;

//Sprawdzamy informacje o komputerze
pInfoKomputer:=gethostbyname(PChar(nazwaKomputera));
nazwaKomputera:=String(pInfoKomputer^.h_Name);
//Konwertujemy adres IP protokołu IPv4 na łańcuch z kropkami
Result:=String(inet_ntoa(PInAddr(pInfoKomputer^.h_addr_list^)^));

//Zwalniamy Winsock
if inicjacja then
  begin
  WSACleanup;
  end;
end;


procedure TForm1.Button3Click(Sender: TObject);
var
  cstr :array[0..MAX_COMPUTERNAME_LENGTH] of Char;
  cstr_rozmiar :Cardinal;
  nazwaKomputera :String;
begin
//Nazwa komputera
GetComputerName(cstr,cstr_rozmiar);
nazwaKomputera:=String(cstr);
Label3.Caption:='Nazwa komputera: '+nazwaKomputera;
Label4.Caption:='IP: '+AdresIP(nazwaKomputera);
//Label3.Caption:='Nazwa komputera: '+nazwaKomputera;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
ShellExecute(Handle,'open',PChar(Edit3.Text),'','.',SW_NORMAL);
end;

procedure TForm1.Button5Click(Sender: TObject);
var
  typyPolaczen: Cardinal;
  polaczenieLAN,polaczenieModem,polaczenieTrybOffline,
  polaczenieProxy,polaczenieRAS,polaczenieModemZajety :Boolean;
begin
typyPolaczen:=0;
InternetGetConnectedState(@typyPolaczen,0);
polaczenieLAN:=Boolean(typyPolaczen and INTERNET_CONNECTION_LAN);
polaczenieModem:=Boolean(typyPolaczen and INTERNET_CONNECTION_MODEM);
polaczenieModemZajety:=Boolean(typyPolaczen and INTERNET_CONNECTION_MODEM_BUSY);
polaczenieTrybOffline:=Boolean(typyPolaczen and INTERNET_CONNECTION_OFFLINE);
polaczenieProxy:=Boolean(typyPolaczen and INTERNET_CONNECTION_PROXY);
polaczenieRAS:=Boolean(typyPolaczen and INTERNET_RAS_INSTALLED);

CheckBox1.Checked:=polaczenieLAN;
CheckBox2.Checked:=polaczenieModem;
CheckBox3.Checked:=polaczenieTrybOffline;
CheckBox4.Checked:=polaczenieProxy;
CheckBox5.Checked:=polaczenieRAS; //Remote Access Service
CheckBox6.Checked:=polaczenieModemZajety;
end;

end.
