我目前在wxWidgets上使用ie作为活动x com的东西,并且想要知道是否有任何简单的方法来更改将始终有效的用户代理。
我正在改变标题,但这仅在我手动加载链接时有效(即调用setUrl)
答案 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来调试它。