WebBrowserコントロールのユーザーエージェントを変更させる方法(VB2008)
投稿者 るきお  (社会人)
投稿日時
2009/1/26 06:12:07
こんにちは。
次のようにします。
ネタ元はこちらです。
http://fine.ap.teacup.com/hepo/28.html
最初ご質問をみたとき、WebBrowserコントロールではユーザーエージェントを変更できないだろうと思ったのですが、念のためインターネットを検索して発見しました。ネタ元はC#なので少しだけアレンジしてVB化しました。
User-Agentレベルのカスタマイズから行いたい場合は一般的にはHttpClientクラスを使うことになると思います。この場合は.NET Frameworkだけで処理が完結します。
次のようにします。
Imports System.Runtime.InteropServices
Public Class Form1
<DllImport("urlmon.dll", CharSet:=CharSet.Ansi)> _
Private Shared Function UrlMkSetSessionOption(ByVal dwOption As Integer, ByVal str As String, ByVal nLength As Integer, ByVal dwReserved As Integer) As Integer
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Const URLMON_OPTION_USERAGENT As Integer = &H10000001
'ここに設定したいUser-Agentをセットする。
Dim UserAgent As String = "Visual Basic Junior High School User-Agent"
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, UserAgent, UserAgent.Length, 0)
End Sub
End Class
ネタ元はこちらです。
http://fine.ap.teacup.com/hepo/28.html
最初ご質問をみたとき、WebBrowserコントロールではユーザーエージェントを変更できないだろうと思ったのですが、念のためインターネットを検索して発見しました。ネタ元はC#なので少しだけアレンジしてVB化しました。
User-Agentレベルのカスタマイズから行いたい場合は一般的にはHttpClientクラスを使うことになると思います。この場合は.NET Frameworkだけで処理が完結します。
投稿者 (削除されました)  ()
投稿日時
2009/1/26 06:35:33
(削除されました)
投稿者 そこらの名無し  (学生)
投稿日時
2009/1/26 06:36:58
ありがとうございます。
System.Runtime.InteropServicesをインポートして動きました。
(返信内容を間違えましたので投稿を1回削除しております。申し訳ありません。)
System.Runtime.InteropServicesをインポートして動きました。
Imports System.Runtime.InteropServices
Public Class Form1
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
ToolStripStatusLabel1.Text = "ページを読み込みました。"
'UAの設定
Const URLMON_OPTION_USERAGENT As Integer = &H10000001
'ここに設定したいUser-Agentをセットする。
Dim UserAgent As String = "Visual Basic Junior High School User-Agent"
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, UserAgent, UserAgent.Length, 0)
End Sub
End Class
(返信内容を間違えましたので投稿を1回削除しております。申し訳ありません。)
投稿者 そこらの名無し  (学生)
投稿日時
2009/1/26 06:38:20
連続投稿申し訳ないです。
<DllImport("urlmon.dll", CharSet:=CharSet.Ansi)> _
Private Shared Function UrlMkSetSessionOption(ByVal dwOption As Integer, ByVal str As String, ByVal nLength As Integer, ByVal dwReserved As Integer) As Integer
End Function
が抜けておりました。。。
<DllImport("urlmon.dll", CharSet:=CharSet.Ansi)> _
Private Shared Function UrlMkSetSessionOption(ByVal dwOption As Integer, ByVal str As String, ByVal nLength As Integer, ByVal dwReserved As Integer) As Integer
End Function
が抜けておりました。。。
VisualBasic2008ExpressEditionでウェブブラウザを作成しています。
アクセス先で通常のブラウザと区別するために、このプログラムでアクセスした場合のユーザーエージェントを変更したいのですが、方法が分かりません。
フォームにはWebBrowser1とボタン類(戻る、検索ページへアクセスするなど)を配置しています。