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));
        }
    }
  • 相关阅读:
    基于角色的权限控制
    C#中实现拖动无边框窗体Form
    C#加密方法汇总
    监控 SQL Server (2005/2008) 的运行状况来自微软TetchNet
    经典SQL语句集锦【转】
    Asp.net+Xml+js实现无线级下拉菜单
    CuteEditor5.0的安装及它与Ajax.net配合无刷新操作数据库!
    sql 提取数字、字母、汉字
    c# 判断远程文件是否存在
    c#采集网页用得几个函数
  • 原文地址:https://www.cnblogs.com/TianFang/p/1876516.html
Copyright © 2011-2022 走看看