Moin,
du benötigst zwei Teilfunktionen: Du musst dir zuerst einmal die Proxy-Informationen beschaffen (Proxy aktiviert?, Proxy-Server und Port, Bypass-Liste). Später musst du bei aktiviertem Proxy für jede
URL prüfen, ob sie von der Bypass-Liste abgedeckt wird.
Die Proxy-Informationen kannst du auf verschiedenen Wegen erhalten: WinInet (ab W95, nicht für services) oder WinHTTP (ab
W2K, auch für services).
Hier ein wenig Code für WinInet:
Delphi-Quellcode:
function GetProxyInfo(var proxy: string; bypassList: TStrings): Boolean;
var
pi: PInternetProxyInfo;
dwSize: DWORD;
i: Integer;
begin
InternetQueryOption(nil, INTERNET_OPTION_PROXY, nil, dwSize);
GetMem(pi, dwSize);
InternetQueryOption(nil, INTERNET_OPTION_PROXY, pi, dwSize);
Result := pi.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
try
proxy := pi.lpszProxy;
i := Pos(' ', proxy); // proxy chaining?
if i > 0 then // grab first only
SetLength(proxy, Pred(i));
bypassList.CommaText := pi.lpszProxyBypass;
finally
FreeMem(pi);
end;
end;
Bei direkter Internetverbindung gibt die Funktion False zurück.
Freundliche Grüße