即useragent wxWidgets

时间:2008-10-24 15:00:47

标签: c++ internet-explorer com wxwidgets user-agent

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

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

3 个答案:

答案 0 :(得分:2)

就我所能找到的而言,“永远有效”的唯一方法是changing the user-agent string in the registry。当然,这会影响在该计算机上运行的每个 Web浏览器实例。

您也可以在DISPID_AMBIENT_USERAGENT上尝试Google搜索。来自this Microsoft page

  

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

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

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

答案 1 :(得分:1)

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

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

感谢您的帮助。

答案 2 :(得分:0)

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来调试它。