Discussion:
Proxy-Einstellungen auslesen
(zu alt für eine Antwort)
Franz Schimmelpfennig
2008-01-30 09:31:19 UTC
Permalink
Hallo in die Runde,

ich programmiere an einem Tool, dass selbstständig Verbindung mit dem
Internet aufnimmt
und bei diversen Servern, z.B. Timeserver anfragen stellt.
Dazu verwende ich di Indy-Komponenten.
Ich war bisher erfolglos, wie ich automatisch den Internetzugang auf einem
Rechner ermitteln
kann. Ob ich über einen Proxy gehen muss, oder nicht.
Im Internet-Explorer kann man ja die am Rechner eingestellten
Verbindungsparameter einsehen.
Gibt es eine Möglichkeit, die aus Delphi automatisch erkennen zu lassen, um
sie dann den
Indy-Komponenten an die Hand zu geben.

Danke für Eure Hilfe,

Dominik
Arno Garrels
2008-01-30 10:03:45 UTC
Permalink
Post by Franz Schimmelpfennig
Im Internet-Explorer kann man ja die am Rechner eingestellten
Verbindungsparameter einsehen.
Gibt es eine Möglichkeit, die aus Delphi automatisch erkennen zu
lassen, um sie dann den
Indy-Komponenten an die Hand zu geben.
Ich benutze ProxyInfo von Maurizio Lotauro, das ist zwar eine
Komponente die ICS benötigt, sollte aber leicht auf Indy
anzupassen sein: http://www.duodata.de/misc/delphi/ProxyInfo.zip

--
Arno Garrels
Simon Reinhardt
2008-01-31 22:25:02 UTC
Permalink
Post by Franz Schimmelpfennig
ich programmiere an einem Tool, dass selbstständig Verbindung mit dem
Internet aufnimmt
und bei diversen Servern, z.B. Timeserver anfragen stellt.
Dazu verwende ich di Indy-Komponenten.
Ich war bisher erfolglos, wie ich automatisch den Internetzugang auf
einem Rechner ermitteln
kann. Ob ich über einen Proxy gehen muss, oder nicht.
Im Internet-Explorer kann man ja die am Rechner eingestellten
Verbindungsparameter einsehen.
Gibt es eine Möglichkeit, die aus Delphi automatisch erkennen zu
lassen, um sie dann den
Indy-Komponenten an die Hand zu geben.
function GetIEProxySettings(const Protocol:string;var
UseProxy:boolean;var SrvName:string;var SrvPort:integer):boolean;
var Reg : TRegistry;
AList : TStringList;
Res : boolean;
AValue : string;
begin
// Proxy-Einstellungen des Internet Explorer für das
// Protokoll "protocol" ermitteln
Result:=false;
Reg:=TRegistry.Create(Key_Read);
try
Reg.RootKey := HKEY_CURRENT_USER;
Res:=Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet
Settings', false);
if Res then begin
UseProxy:=Reg.ReadBool('ProxyEnable');
if UseProxy then begin
AList:=TStringList.Create;
try
AList.CommaText:=StringReplace(Reg.ReadString('ProxyServer'),
';', ',', [rfReplaceAll]);
if AList.Count>0 then begin
if Protocol='' then
AValue:=AList.Values['http']
else
AValue:=AList.Values[LowerCase(Protocol)];
if AValue<>'' then begin
SrvName:=GetFirstPartOfString(AValue, ':', false);
SrvPort:=StrToIntDef(AValue, 0);
Result:=true;
end;
end;
finally
AList.Free;
end;
end;
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end; // GetIEProxySettings

Aufruf z.B.:

var SrvName : string;
SrvPort : integer;
UseProxy : boolean;

GetIEProxySettings('http', UseProxy, SrvName, SrvPort);


Simon
--
Don't panic

Homepage: http://www.picsoft.de
Delphi Fundgrube: http://www.delphi-fundgrube.de
Loading...