Winforms アプリケーションで WebBrowser コントロールの UserAgent を変更しようとしています。
次のコードを使用して、これを正常に達成しました。
[DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
private static extern int UrlMkSetSessionOption(
int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
const int URLMON_OPTION_USERAGENT = 0x10000001;
public void ChangeUserAgent()
{
List<string> userAgent = new List<string>();
string ua = "Googlebot/2.1 (+http://www.google.com/bot.html)";
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, ua, ua.Length, 0);
}
唯一の問題は、これが一度しか機能しないことです。ChangeUserAgent() メソッドを 2 回目に実行しようとすると、機能しません。最初に変更された値に設定されたままになります。これは非常に面倒で、私はすべてを試しましたが、一度しか変わりません。
別のより柔軟なアプローチを知っている人はいますか?
ありがとう