zoukankan      html  css  js  c++  java
  • 对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));
        }
    }
  • 相关阅读:
    P5136 sequence(矩阵快速幂)
    P5135 painting(组合数)
    CF888E Maximum Subsequence(meet in the middle)
    P4463 [国家集训队] calc(拉格朗日插值)
    CF364D Ghd(随机化)
    P3270 [JLOI2016]成绩比较(拉格朗日插值)
    bzoj3453: tyvj 1858 XLkxc(拉格朗日插值)
    P4593 [TJOI2018]教科书般的亵渎(拉格朗日插值)
    tomcat8版本实现虚拟主机
    NFS网络文件系统方案
  • 原文地址:https://www.cnblogs.com/TianFang/p/1876516.html
Copyright © 2011-2022 走看看