lang="ja" WebBrower(.NET) - User-Agentの変更|プログラムでネットサーフィン

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/");
								}
							}