关闭

C#webBrowser使用代理服务器的方法winform

988人阅读 评论(0) 收藏 举报
分类:

http://www.sufeinet.com/thread-2242-1-1.html

其实在C#中使用webBrowser大家应该都会了,论坛也有很多相前的例子大家可以查询一下就知道了
但是像直接使用浏览器一样设置代理 的方法可能很多人还不知道吧。
这个其实是调用一个Dll文件进行设置的,
下面大家跟我一起来看看吧
首先还是要先建一个结构就是代理信息的结构体
如下

///
/// 代理结构体
///
public struct Struct_INTERNET_PROXY_INFO
{
public int dwAccessType;
public IntPtr proxy;//IP以及端口号
public IntPtr proxyBypass;
};

下面是如何 设置代理 的具体实现

///
/// 设置代理的Api
///
///
[DllImport(“wininet.dll”, SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);

    /// <summary>
    /// 代理IP以及端口号
    /// </summary>
    /// <param name="strProxy"></param>
    private void RefreshIESettings(string strProxy)
    {
        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));
    }[

使用的时候也非常的简单

RefreshIESettings(“41.129.53.227:80”);
webBrowser1.Navigate(“http://www.sufeinet.com“);

这样就可以了。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:585188次
    • 积分:8010
    • 等级:
    • 排名:第2830名
    • 原创:185篇
    • 转载:180篇
    • 译文:0篇
    • 评论:93条