我想在我的网络浏览器中使用代理,但不在机器上编辑注册表。
答案 0 :(得分:3)
您可以使用WMI,但这仍会调整系统设置。如果您只想调整自己进程的代理设置,可以通过urlmon.dll公开的UrlMkSetSessionOption来完成。下面列出了此功能的一个示例。有关INTERNET_OPTION_PROXY的更多信息,请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/aa385328(v=vs.85).aspx。
private void SetSessionProxy(strin ProxyAddress, string BypassList)
{
var proxyInfo= new INTERNET_PROXY_INFO {
dwAccessType = 0x3,
lpszProxy = ProxyAddress,
lpszProxyBypass = BypassList
};
int structSize = Marshal.SizeOf(proxyInfo);
const uint SetProxy = 0x26;
if (Win32Native.UrlMkSetSessionOption(SetProxy, structure, dwLen, 0) != 0)
throw new Win32Exception();
}
[StructLayout(LayoutKind.Sequential)]
private class INTERNET_PROXY_INFO
{
public uint dwAccessType;
[MarshalAs(UnmanagedType.LPStr)]
public string lpszProxy;
[MarshalAs(UnmanagedType.LPStr)]
public string lpszProxyBypass;
}
[DllImport("urlmon.dll", CharSet=CharSet.Unicode, SetLastError=true)]
private static extern int UrlMkSetSessionOption(uint dwOption, INTERNET_PROXY_INFO structNewProxy, uint dwLen, uint dwZero);