Winform中修改WebBrowser控件User-Agent的方法(已经测试成功)

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Runtime.InteropServices; 
using System.Reflection; 
namespace WindowsFormsApplication2 
{ 
public class UserAgentHelper 
{ 
    private static string defaultUserAgent = null; 
    [DllImport("urlmon.dll", CharSet = CharSet.Ansi)] 
    private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved); 
    const int URLMON_OPTION_USERAGENT = 0x10000001; 
    /// <summary> 
    /// 在默认的UserAgent后面加一部分 
    /// </summary> 
    public static void AppendUserAgent(string appendUserAgent) 
    { 
      if (string.IsNullOrEmpty(defaultUserAgent)) 
        defaultUserAgent = GetDefaultUserAgent(); 
      string ua = defaultUserAgent   ";"   appendUserAgent; 
      ChangeUserAgent(ua); 
    } 
    /// <summary> 
    /// 修改UserAgent 
    /// </summary> 
    public static void ChangeUserAgent(string userAgent) 
    { 
      UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, userAgent, userAgent.Length, 0); 
    } 
    /// <summary> 
    /// 一个很BT的获取IE默认UserAgent的方法 
    /// </summary> 
    private static string GetDefaultUserAgent() 
    { 
      WebBrowser wb = new WebBrowser(); 
      wb.Navigate("about:blank"); 
      while (wb.IsBusy) Application.DoEvents(); 
      object window = wb.Document.Window.DomWindow; 
      Type wt = window.GetType(); 
      object navigator = wt.InvokeMember("navigator", BindingFlags.GetProperty, 
          null, window, new object[] { }); 
      Type nt = navigator.GetType(); 
      object userAgent = nt.InvokeMember("userAgent", BindingFlags.GetProperty, 
          null, navigator, new object[] { }); 
      return userAgent.ToString(); 
    } 
} 
}
View Code

Winform中修改WebBrowser控件User-Agent的方法(已经测试成功)

转载于:https://www.cnblogs.com/ashui/p/5490939.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值