我需要更改User-Agent
控件的webbrowser
。但是没有使用Navigating
方法的重载(因为脚本不是从头部获取用户代理,而是从window.navigator.appName
属性获取。有没有办法在webbrowser中更改此属性?< / p>
谢谢!
答案 0 :(得分:2)
update: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是COM可见类型的变量,具有appName属性。
不工作: pinvoke UrlMkSetSessionOption并传递URLMON_OPTION_USERAGENT作为选项标记。