C# 更改 WebBrowser UserAgent

经在Server2008R2,Windows7,Windows10测试,只要修改相应的 User Agent 即可实现,参考代码(以IE8模式工作)如下:

var ieversion = (new WebBrowser()).Version.Major;
            string ua = "Mozilla/4.0 (MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)";
            if (ieversion <= 8)
                ua = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)";

 

[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
        private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved);

        [DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
        private static extern int UrlMkGetSessionOption(int dwOption, StringBuilder pBuffer, int dwBufferLength, out int pdwBufferLength, int dwReserved);

        const int URLMON_OPTION_USERAGENT = 0x10000001;
        const int URLMON_OPTION_USERAGENT_REFRESH = 0x10000002;

     private void setUserAgent(string userAgent)
        {
            UrlMkSetSessionOption(URLMON_OPTION_USERAGENT_REFRESH, null, 0, 0);
            UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, userAgent, userAgent.Length, 0);
        }

        private string getUserAgent()
        { 
            var buffer = new StringBuilder(255);
            var returnLength = 0;
            var ret = UrlMkGetSessionOption(URLMON_OPTION_USERAGENT, buffer, buffer.Capacity, out returnLength, 0);
            return buffer.ToString();
        }

 

posted on 2021-06-08 18:53  空明流光  阅读(218)  评论(0编辑  收藏  举报

导航