如何在 Inno Setup 中检查代理设置

How to check for proxy settings in Inno Setup

我正在尝试找出如何检查计算机是否正在通过 Inno Setup 使用代理。

您可以使用 WinHttpGetDefaultProxyConfiguration function:

type
  WINHTTP_PROXY_INFO = record
    AccessType: Cardinal;
    Proxy: Cardinal;
    ProxyBypass: Cardinal;
  end;

function WinHttpGetDefaultProxyConfiguration(var ProxyInfo: WINHTTP_PROXY_INFO): Boolean;
  external 'WinHttpGetDefaultProxyConfiguration@winhttp.dll stdcall';

function StrCpyN(S1: string; S2: Cardinal; Max: Cardinal): Cardinal;
  external 'StrCpyNW@shlwapi.dll stdcall';

function GetProxy: string;
var
  ProxyInfo: WINHTTP_PROXY_INFO;
begin
  if WinHttpGetDefaultProxyConfiguration(ProxyInfo) then
  begin
    SetLength(Result, 1024);
    StrCpyN(Result, ProxyInfo.Proxy, Length(Result) - 1);
    Result := Trim(Result);
    Log('Retrieved proxy information: ' + Result);
  end
    else
  begin
    Log('Cannot retrieve proxy information');
  end;
end;

需要 (Inno Setup 6 的唯一版本)。


您也可以使用netsh winhttp show proxy命令。