System.Windows.Forms.WebBrowserのブラウザレンダリングバージョンの変更
System.Windows.Forms.WebBrowserは、デフォルト状態ではIE7相当。
確認サイト:User Agent String.Com
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Shown(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.useragentstring.com/");
}
}
}
IE11に変更する場合は、レジストリ「HKEY_CURRENT_USERSOFTWAREMicrosoftInternet ExplorerMainFeatureControlFEATURE_BROWSER_EMULATION」に
プロセス名と対応するデータを登録する。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private const string strRegPath = @"SoftwareMicrosoftInternet ExplorerMainFeatureControlFEATURE_BROWSER_EMULATION";
private Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(strRegPath, true);
private string strProcessName = System.Diagnostics.Process.GetCurrentProcess().ProcessName + ".exe";
public Form1()
{
InitializeComponent();
}
private void Form1_Shown(object sender, EventArgs e)
{
regKey.SetValue(strProcessName, 11001, Microsoft.Win32.RegistryValueKind.DWord);
webBrowser1.Navigate("http://www.useragentstring.com/");
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
regKey.DeleteValue(strProcessName);
regKey.Close();
}
}
}
レジストリに登録するデータを変更すると、他のレンダリングバージョンに変更することも可能。
MSDN Internet Feature Controls (B..C) (Internet Explorer)
また、レジストリを使用せず、NavigateメソッドのadditionalHeadersに、直接UserAgentを指定する方法もある。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private const string strUserAgent = @"User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko";
public Form1()
{
InitializeComponent();
}
private void Form1_Shown(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.useragentstring.com/", "_self", null, strUserAgent);
}
}
}



ディスカッション
コメント一覧
まだ、コメントがありません