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);

}

}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值