我需要更改User-Agent控件的webbrowser。但是不能使用Navigating方法的重载(因为脚本不是从标题而是从window.navigator.appName属性获取用户代理。是否可以在webbrowser中更改此属性?

谢谢!

最佳答案

更新:window.navigator应该是可以通过Javascript中的IDispatchEx(CLR运行时包装上的IExpando)覆盖的属性。
就像是

var document=webBrowser1.Document.DomDocument as MSHTML.IHTMLDocument2;
var expando =(IExpando)document.parentWindow;
expando.RemoveProperty(expando.GetMember("navigator",BindingFlags.Instance | BindingFlags.Public));
expando.AddProperty("navigator").SetValue(expando,myNavigator);


此处,myNavigator是具有appName属性的COM可见类型的变量。

不起作用:
pinvoke UrlMkSetSessionOption并传递URLMON_OPTION_USERAGENT作为选项标志。

07-26 03:46