C++ ie用户代理wxWidgets

C++ ie用户代理wxWidgets,c++,internet-explorer,com,wxwidgets,user-agent,C++,Internet Explorer,Com,Wxwidgets,User Agent,我目前正在使用ie作为wxWidgets上的一个活动的Xcom东西,并且想知道是否有任何简单的方法可以改变用户代理,这将始终有效 Atm im正在更改标头,但这仅在我手动加载链接(即调用setUrl)时有效。就我所能找到的唯一“始终有效”的方法是。当然,这将影响该机器上运行的每个web浏览器实例 您还可以尝试在DISPID\u AMBIENT\u USERAGENT上进行谷歌搜索。发件人: MSHTML还将请求新用户 代理通过DISPID\u AMBIENT\u USERAGENT 导航到单击的

我目前正在使用ie作为wxWidgets上的一个活动的Xcom东西,并且想知道是否有任何简单的方法可以改变用户代理,这将始终有效

Atm im正在更改标头,但这仅在我手动加载链接(即调用setUrl)时有效。

就我所能找到的唯一“始终有效”的方法是。当然,这将影响该机器上运行的每个web浏览器实例

您还可以尝试在
DISPID\u AMBIENT\u USERAGENT
上进行谷歌搜索。发件人:

MSHTML还将请求新用户 代理通过
DISPID\u AMBIENT\u USERAGENT
导航到单击的超链接时。 此环境属性可以是 已重写,但在 以编程方式调用导航 方法;它也不会导致 DOM的用户代理属性 导航器对象或客户端信息 要更改的行为-此属性 将永远反映互联网 资源管理器自己的UserAgent字符串

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


我希望这至少能给你一个起点。:-)

极客头头已经告诉你IE默认会在注册表中的什么位置

不过,这只是默认设置。如果实现[IDocHostUIHandler::GetOptionKeyPath](或[IDocHostUIHandler2::GetOverrideKeyPath](),IE将使用该注册表项


你可能会想用SysInternal的RegMon来调试它。

今天我在谷歌上搜索了一下你提供给head geek的提示,我找到了方法

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


感谢您的帮助。

请检查,您正在使用ActiveX集成嵌入Internet Explorer?因为普通的WxHTTP类与ActiveX无关,您的问题被标记为IEYes。Lindsay Mathieson的wxIEHtmlWin有一个标准类