zoukankan      html  css  js  c++  java
  • c# webbrower 代理 类 IEProxy

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Threading.Tasks;

    namespace sogou
    {

    public class IEProxy

    {

    private const int INTERNET_OPTION_PROXY = 38;

    private const int INTERNET_OPEN_TYPE_PROXY = 3;

    private const int INTERNET_OPEN_TYPE_DIRECT = 1;

    private string ProxyStr;

    [DllImport("wininet.dll", SetLastError = true)]

    private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);

    public struct Struct_INTERNET_PROXY_INFO

    {

    public int dwAccessType;

    public IntPtr proxy;

    public IntPtr proxyBypass;

    }

    private bool InternetSetOption(string strProxy)

    {

    int bufferLength;

    IntPtr intptrStruct;

    Struct_INTERNET_PROXY_INFO struct_IPI;

    if (string.IsNullOrEmpty(strProxy) || strProxy.Trim().Length == 0)

    {

    strProxy = string.Empty;

    struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_DIRECT;

    }

    else

    {

    struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY;

    }

    struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy);

    struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local");

    bufferLength = Marshal.SizeOf(struct_IPI);

    intptrStruct = Marshal.AllocCoTaskMem(bufferLength);

    Marshal.StructureToPtr(struct_IPI, intptrStruct, true);

    return InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, bufferLength);

    }

    public IEProxy(string strProxy)

    {

    this.ProxyStr = strProxy;

    }

    //设置代理
    public bool RefreshIESettings()

    {

    return InternetSetOption(this.ProxyStr);

    }

    //取消代理
    public bool DisableIEProxy()

    {

    return InternetSetOption(string.Empty);

    }

    }
    }

  • 相关阅读:
    10003 Cutting Sticks(区间dp)
    Cocos2d-x init() 和 onEnter() 区别
    HDU1181【有向图的传递闭包】
    空间参考系统与WKT解析
    面试经典-分金条
    uvalive 3971
    lua学习:使用Lua处理游戏数据
    面试经典--两个房间 每间房间三盏灯
    浙江大学PAT上机题解析之2-11. 两个有序链表序列的合并
    顺序队列之C++实现
  • 原文地址:https://www.cnblogs.com/bigdata007/p/4955827.html
Copyright © 2011-2022 走看看