unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, WinInet;
type
TForm1 =
class(TForm)
Label1: TLabel;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
ProxyPort:
string;
ProxyServer:
string;
implementation
{$R *.dfm}
function GetProxyInformation:
string;
var
ProxyInfo: PInternetProxyInfo;
Len: LongWord;
begin
Result := '
';
Len := 4096;
GetMem(ProxyInfo, Len);
try
if InternetQueryOption(
nil, INTERNET_OPTION_PROXY, ProxyInfo, Len)
then
if ProxyInfo^.dwAccessType = INTERNET_OPEN_TYPE_PROXY
then
begin
Result := ProxyInfo^.lpszProxy
end;
finally
FreeMem(ProxyInfo);
end;
end;
{**************************************************************************
* NAME: GetProxyServer
* DESC: Proxy-Server Einstellungen abfragen
* PARAMS: protocol => z.B. 'http' oder 'ftp'
* RESULT: [-]
* CREATED: 08-04-2004/shmia
*************************************************************************}
procedure GetProxyServer(protocol:
string;
var ProxyServer:
string;
var ProxyPort:Integer);
var
i : Integer;
proxyinfo, ps :
string;
begin
ProxyServer := '
';
ProxyPort := 0;
proxyinfo := GetProxyInformation;
if proxyinfo = '
'
then
Exit;
protocol := protocol+'
=';
i := Pos(protocol, proxyinfo);
if i > 0
then
begin
Delete(proxyinfo, 1, i+Length(protocol));
i := Pos('
;', ProxyServer);
if i > 0
then
proxyinfo := Copy(proxyinfo, 1, i-1);
end;
i := Pos('
:', proxyinfo);
if i > 0
then
begin
ProxyPort := StrToIntDef(Copy(proxyinfo, i+1, Length(proxyinfo)-i), 0);
ProxyServer := Copy(proxyinfo, 1, i-1)
end
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Caption:=GetProxyInformation;
end;
end.