Ao utilizar a API do Windows, podemos recuperar facilmente as informações de configuração do proxy do perfil de qualquer usuário logado em qualquer estação.
Detalhes da API:
WinHttpGetIEProxyConfigForCurrentUser function
BOOL WINAPI WinHttpGetIEProxyConfigForCurrentUser( __inout WINHTTP_CURRENT_USER_IE_PROXY_CONFIG *pProxyConfig );
Como utilizá-la:
unit ProxyTest;
interface
uses
Winapi.Windows, Vcl.Dialogs;
type
PWinHttpCurrentUserIeProxyConfig = ^TWinHttpCurrentUserIeProxyConfig;
TWinHttpGetIeProxyConfigForCurrentUser = function (pProxyConfig:
PWinHttpCurrentUserIeProxyConfig): Boolean; stdcall;
TWinHttpCurrentUserIeProxyConfig = record
fAutoDetect: Boolean;
lpszAutoConfigUrl: PWideChar;
lpszProxy: PWideChar;
lpszProxyBypass: PWideChar;
end;
var
WinHttpGetIeProxyConfigForCurrentUser: TWinHttpGetIeProxyConfigForCurrentUser;
procedure GetProxy;
implementation
procedure GetProxy;
var
FHandle: THandle;
FCurrentUser: PWinHttpCurrentUserIeProxyConfig;
begin
FHandle := LoadLibrary('winhttp.dll');
try
if FHandle <> 0 then
begin
@WinHttpGetIeProxyConfigForCurrentUser := GetProcAddress(FHandle,
'WinHttpGetIEProxyConfigForCurrentUser');
if Assigned(WinHttpGetIeProxyConfigForCurrentUser) then
begin
WinHttpGetIeProxyConfigForCurrentUser(FCurrentUser);
ShowMessage('Proxy: ' + FCurrentUser.lpszProxy);
end;
end;
finally
FreeLibrary(FHandle);
end;
end;
end.
Desenvolvi o exemplo em Delphi XE2, qualquer dúvida é só entrar em contato.
Contato