我目前在wxWidgets上使用ie作为活动x com的东西,并且想要知道是否有任何简单的方法来更改将始终有效的用户代理。

我正在改变标题,但这仅在我手动加载链接时有效(即调用setUrl)

有帮助吗?

解决方案

“始终有效”的唯一方法。到目前为止,我已经找到了,是更改注册表中的用户代理字符串。当然,这会影响在该计算机上运行的每个 Web浏览器实例。

您也可以尝试在 DISPID_AMBIENT_USERAGENT 上进行Google搜索。从此Microsoft页面

  

MSHTML还会要求新用户   代理商通过 DISPID_AMBIENT_USERAGENT   导航到单击的超链接时。   这个环境属性可以   被覆盖,但它不被使用时   以编程方式调用Navigate   方法;它也不会导致   DOM的userAgent属性   navigator对象或clientInformation   要改变的行为 - 这个属性   将始终反映互联网   资源管理器自己的UserAgent字符串。

我不熟悉MSHTML组件,所以我不确定它是否有用。

我希望至少能给你一个开始的地方。 : - )

其他提示

我今天做了一些谷歌搜索,提示你提供了极客,并且我知道如何去做。

wxWidgets使用名为FrameSite的activex说唱歌手类来处理调用请求。我所做的是创建一个继承自此的新类,处理DISPID_AMBIENT_USERAGENT事件并传递所有其他事件。因此,现在我可以返回不同的用户代理。

感谢您的帮助。

Head Geek已经告诉过你在注册IE中默认情况下的位置。

但这只是一个默认值。如果实现[IDocHostUIHandler :: GetOptionKeyPath]( http ://msdn.microsoft.com/en-us/library/aa753258(VS.85%29.aspx)或[IDocHostUIHandler2 :: GetOverrideKeyPath]( http://msdn.microsoft.com/en-us/library/aa753274(VS.85% 29。 aspx),IE将使用该注册表项。

您可能希望使用SysInternal的RegMon来调试它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top