首页  编辑  

获取IE浏览器的代理设置

Tags: /超级猛料/OS.操作系统/IE.扩展/IE设置和控制面板/   Date Created:

type

PWinHttpCurrentUserIeProxyConfig = ^TWinHttpCurrentUserIeProxyConfig;

TWinHttpCurrentUserIeProxyConfig = record

  fAutoDetect : boolean;

 lpszAutoConfigUrl : PWideChar;

 lpszProxy : PWideChar;

 lpszProxyBypass : PWideChar;

end;

 TWinHttpGetIeProxyConfigForCurrentUser = function (pProxyConfig :

PWinHttpCurrentUserIeProxyConfig) : boolean; stdcall;

var

 WinHttpGetIeProxyConfigForCurrentUser :

TWinHttpGetIeProxyConfigForCurrentUser;

...

H : = LoadLibrary ('winhttp.dll');

if H <> 0 then

try

 @WinHttpGetIeProxyConfigForCurrentUser  := GetProcAddress (H,

'WinHttpGetIEProxyConfigForCurrentUser');

 if Assigned (WinHttpGetIeProxyConfigForCurrentUser) then

   ...

finally

 FreeLibrary (H);

end;

---------------------------------------

uses

 WinInet;

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);

var

 ProxyServer: string;

 ProxyPort: Integer;

begin

 GetProxyServer('http', ProxyServer, ProxyPort);

 Label1.Caption := ProxyServer;

 label2.Caption := IntToStr(ProxyPort);

end;