Activer/désactiver le proxy

Soyez le premier à donner votre avis sur cette source.

Vue 11 859 fois - Téléchargée 664 fois

Description

Ce petit code permet la lecture et la modification de l'état du proxy, en passant par la base de registre.

Source / Exemple :


unit ProxyOneOff;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Registry, ShellApi;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    CheckBox1: TCheckBox;
    HttpE: TEdit;
    ProxyOverrideEdit: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    FtpE: TEdit;
    SecuriseE: TEdit;
    GopherE: TEdit;
    SocksE: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    procedure CheckBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Label3MouseEnter(Sender: TObject);
    procedure Label3MouseLeave(Sender: TObject);
    procedure Label3Click(Sender: TObject);
    procedure Label4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure DetectProxy;
    procedure EnableProxy(Enable : Boolean);
  end;

var
  Form1: TForm1;
  Proxy: boolean;
  ProxyOverride: String;
  ProxyServer: String;
  Actif : integer;
  Protocoles : String;
  Http, Ftp, Securise, Gopher, Socks : String;
implementation

{$R *.dfm}

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
 if CheckBox1.Checked then
 begin
  EnableProxy(True);
  CheckBox1.Caption :='Désactiver le proxy';
 end
 else
  begin
  EnableProxy(False);
  CheckBox1.Caption :='Activer le proxy';
 end;
end;

procedure TForm1.DetectProxy;
var Reg : TRegistry;
    Pos1, Pos2 : integer;
    Car : Char;
begin
 Reg := tRegistry.Create;
 Reg.RootKey := HKEY_CURRENT_USER;
 Reg.OpenKey('\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings',True);
 ProxyServer:= Reg.ReadString('ProxyServer');
 ProxyOverrideEdit.Text := Reg.ReadString('ProxyOverride');
 Protocoles := Reg.ReadString('ProxyServer');
 Actif := Reg.ReadInteger('ProxyEnable');
 if Actif = 0 then
 begin
  CheckBox1.Checked := False;
 end
 else
 begin
   CheckBox1.Checked := True;
 end;

 Reg.CloseKey;
 Reg.Free;
// Série de booooooooooocle idiôte ;) 
//***** Http
Pos1 := Pos('=', ProxyServer)+1;
Pos2 := Pos(';', ProxyServer);
Http:=Copy(ProxyServer,Pos1,Pos2-Pos1);
HttpE.Text:= Http;
Delete(ProxyServer, 1,Pos2);
//***** FTP
Pos1 := Pos('=', ProxyServer)+1;
Pos2 := Pos(';', ProxyServer);
Ftp:=Copy(ProxyServer,Pos1,Pos2-Pos1);
FtpE.Text := Ftp;
Delete(ProxyServer, 1,Pos2);
//***** Sécurisé
Pos1 := Pos('=', ProxyServer)+1;
Pos2 := Pos(';', ProxyServer);
Securise:=Copy(ProxyServer,Pos1,Pos2-Pos1);
SecuriseE.Text:=Securise;
Delete(ProxyServer, 1,Pos2);
//***** Gopher
Pos1 := Pos('=', ProxyServer)+1;
Pos2 := Pos(';', ProxyServer);
Gopher:=Copy(ProxyServer,Pos1,Pos2-Pos1);
GopherE.Text := Gopher;
Delete(ProxyServer, 1,Pos2);
//***** Socks
Pos1 := Pos('=', ProxyServer)+1;
Pos2 := Pos(';', ProxyServer);
Socks:=Copy(ProxyServer,Pos1,Length(ProxyServer));
SocksE.Text:= Socks;
end;

procedure TForm1.EnableProxy(Enable: Boolean);
var
 reg : TRegistry;
begin
 Reg := TRegistry.Create;
 Reg.RootKey := HKEY_CURRENT_USER;
 Reg.OpenKey('\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings',True);
 if Enable then
  Reg.WriteInteger('ProxyEnable',1)
 else
  Reg.WriteInteger('ProxyEnable',0);
  
 Reg.CloseKey;
 Reg.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 DetectProxy;
  CheckBox1.Checked := Actif =1;
end;

procedure TForm1.Label3MouseEnter(Sender: TObject);
begin
 TLabel(Sender).Font.Color := ClBlue;
end;

procedure TForm1.Label3MouseLeave(Sender: TObject);
begin
 TLabel(Sender).Font.Color := ClBlack;
end;

procedure TForm1.Label3Click(Sender: TObject);
begin
 ShellExecute(Handle, 'OPEN', 'http://www.phenixcreations.com','','',SW_SHOWNORMAL);
end;

procedure TForm1.Label4Click(Sender: TObject);
begin
 ShellExecute(Handle, 'OPEN', 'mailto:farid.ferhati@phenixcreations.com','','',SW_SHOWNORMAL);
end;

end.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_costello
Messages postés
136
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
15 février 2006
-
1) ce code marche vraiment ?
2) comment tu l'as testé ?
3) as tu des exemples d'utilisations concrètes de ce code ?

je me demande, enfin, je crois que ce code pourrait m'être utile, sans en être tout à fait sûr.
StanleyJopson
Messages postés
1
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
30 juillet 2004
-
Good ...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.