WebBrowserコントロールのユーザーエージェントを変更させる方法(VB2008) への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 そこらの名無し  (学生) 投稿日時 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
が抜けておりました。。。
投稿者 そこらの名無し  (学生) 投稿日時 2009/1/26 06:36:58
ありがとうございます。
System.Runtime.InteropServicesをインポートして動きました。
Imports System.Runtime.InteropServices
Public Class Form1
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.ObjectByVal 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:35:33
(削除されました)
投稿者 るきお  (社会人) 投稿日時 2009/1/26 06:12:07
こんにちは。

次のようにします。
 
Imports System.Runtime.InteropServices

Public Class Form1

    <DllImport("urlmon.dll", CharSet:=CharSet.Ansi)> _
    Private Shared Function UrlMkSetSessionOption(ByVal dwOption As IntegerByVal str As StringByVal nLength As IntegerByVal dwReserved As IntegerAs Integer
    End Function

    Private Sub Button1_Click(ByVal sender As System.ObjectByVal 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 04:54:21
はじめまして。
VisualBasic2008ExpressEditionでウェブブラウザを作成しています。
アクセス先で通常のブラウザと区別するために、このプログラムでアクセスした場合のユーザーエージェントを変更したいのですが、方法が分かりません。
フォームにはWebBrowser1とボタン類(戻る、検索ページへアクセスするなど)を配置しています。