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> /// Add a part after the default UserAgent /// </summary> public static void AppendUserAgent(string appendUserAgent) { if (string.IsNullOrEmpty(defaultUserAgent)) defaultUserAgent = GetDefaultUserAgent(); string ua = defaultUserAgent ";" appendUserAgent; ChangeUserAgent(ua); } /// <summary> /// Modify UserAgent /// </summary> public static void ChangeUserAgent(string userAgent) { UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, userAgent, userAgent.Length, 0); } /// <summary> /// A very BT method to get the default UserAgent of IE /// </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(); } } }
The method of modifying the User-Agent of the WebBrowser control in Winform (the test has been successful)
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=324669051&siteId=291194637
Recommended
Ranking