Programmatically Set Proxy Address, Port, Username, Password

后端 未结 1 876
感动是毒
感动是毒 2021-02-09 06:30

Hi I need to set proxy address of IE programmatically

Earlier I used to use this RedTomahawk.TORActivator but it doesnot gives an option to set those proxies which requi

相关标签:
1条回答
  • 2021-02-09 07:16

    You could P/Invoke the WinHttpSetDefaultProxyConfiguration function.


    UPDATE:

    Including example as requested:

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    public struct WINHTTP_PROXY_INFO
    {
        public AccessType AccessType;
        public string Proxy;
        public string Bypass;
    }
    
    public enum AccessType
    {
        DefaultProxy = 0,
        NamedProxy = 3,
        NoProxy = 1
    }
    
    class Program
    {
        [DllImport("winhttp.dll", CharSet = CharSet.Unicode, SetLastError = true)]
        public static extern bool WinHttpSetDefaultProxyConfiguration(ref WINHTTP_PROXY_INFO config);
    
        static void Main()
        {
            var config = new WINHTTP_PROXY_INFO();
            config.AccessType = AccessType.NamedProxy;
            config.Proxy = "http://proxy.yourcompany.com:8080";
            config.Bypass = "intranet.com";
    
            var result = WinHttpSetDefaultProxyConfiguration(ref config);
            if (!result)
            {
                throw new Win32Exception(Marshal.GetLastWin32Error());
            }
            else
            {
                Console.WriteLine("Successfully modified proxy settings");
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题