WebBrower(.NET) 応用テクニック
User-Agentの変更
WindowsAPIのUrlMkSetSessionOptionを使用すれば、WebBrowserでアクセスするときのUser-Agentを変更できます。
ただし、変更可能なのはNavigateメソッドでサイトを表示する前です。
一度Navigateメソッドでサイトを表示すると、UrlMkSetSessionOptionで設定してもUserAgentの変更は反映されません。
別のUserAgentに変えたい場合はアプリを再度起動してください。
Imports System.Runtime.InteropServices Public Class Form3 <DllImport("urlmon.dll", CharSet:=CharSet.Ansi)> _ Private Shared Function UrlMkSetSessionOption( _ ByVal intOption As Integer, _ ByVal str As String, _ ByVal intLength As Integer, _ ByVal intReserved As Integer) As Integer End Function Private Const URLMON_OPTION_USERAGENT As Integer = &H10000001 Private Const USERAGENT As String = "Test User Agent" Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, USERAGENT, USERAGENT.Length, 0) WebBrowser1.Navigate("http://www.useragentstring.com/") End Sub End Class
using System.Runtime.InteropServices; public class Form3 { [DllImport("urlmon.dll", CharSet = CharSet.Ansi)] private static int UrlMkSetSessionOption(int intOption, string str, int intLength, int intReserved) { } private const int URLMON_OPTION_USERAGENT = 0x10000001; private const string USERAGENT = "Test User Agent"; private void Button1_Click(System.Object sender, System.EventArgs e) { UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, USERAGENT, USERAGENT.Length, 0); WebBrowser1.Navigate("http://www.useragentstring.com/"); } }