Webbrowser Control怎么改成windowjavascript属性?

Webbrowser Control how to change a window javascript property?

我需要更改 webbrowser 控件的 User-Agent。但是没有使用 Navigating 方法的重载(因为脚本不是从 header 而是从 window.navigator.appName 属性 获取用户代理。有没有办法改变这个 属性 在网络浏览器中??

谢谢!

更新: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 作为选项标志。