• 对WebBrowser控件设置代理


    我们用WebBrowser控件的时候,有时需要对它使用代理服务器。

    一种常规的做法是修改全局IE代理设置。这种方式可以通过修改注册表实现,但这样做就把所有的IE引擎都给设置了,网上介绍的大都是这种方法,并且往往并不是我所想要的效果,这里就不介绍了。

    另外一种方式是通过函数InternetSetOption实现修改当前程序中的WebBrowser设置,使用方式如下:

    代码
    static class WebBrowserProxy
    {
        
    struct Struct_INTERNET_PROXY_INFO
        {
            
    public int dwAccessType;
            
    public IntPtr proxy;
            
    public IntPtr proxyBypass;
        };

        [DllImport(
    "wininet.dll", SetLastError = true)]
        
    static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);

        
    public static void SetProxy(string strProxy = "127.0.0.1:8000")
        {
            
    const int INTERNET_OPTION_PROXY = 38;
            
    const int INTERNET_OPEN_TYPE_PROXY = 3;

            Struct_INTERNET_PROXY_INFO struct_IPI;

            
    // Filling in structure 
            struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
            struct_IPI.proxy 
    = Marshal.StringToHGlobalAnsi(strProxy);
            struct_IPI.proxyBypass 
    = Marshal.StringToHGlobalAnsi("local");

            
    // Allocating memory 
            IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI));

            
    // Converting structure to IntPtr 
            Marshal.StructureToPtr(struct_IPI, intptrStruct, true);

            
    bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI));
        }
    }
  • 相关阅读:
    Django如何把数据库里的html格式输出到前端
    如何修改Django中的日期和时间格式 DateTimeField
    python2.7无法安装python-ldap、django-auth-ldap
    windows10下Python如何设置环境变量
    微信小程序在开发者工具页面显示空白且控制台看不到报错信息
    CentOS7 升级 openssh 到 openssh-8.0p1版本
    CentOS系统升级OpenSSH版本
    SSL相关漏洞解决方法
    CentOS 7.4安装 MySQL数据库
    Python3 基础知识
  • 原文地址:https://www.cnblogs.com/TianFang/p/1876516.html
Copyright © 2020-2023  润新知