質問

現在、wxWidgetsでアクティブなx comとしてIEを使用しており、常に動作するユーザーエージェントを変更する簡単な方法があるかどうかを知りたいと思っていました。

ATMはヘッダーを変更しますが、これはリンクを手動でロードする(つまりsetUrlを呼び出す)場合にのみ機能します

役に立ちましたか?

解決

「常に機能する」唯一の方法私が見つけた限りでは、レジストリ内のユーザーエージェント文字列の変更。もちろん、そのマシンで実行されているすべてのWebブラウザインスタンスに影響します。

DISPID_AMBIENT_USERAGENT でGoogle検索を試すこともできます。 このMicrosoftページから:

  

MSHTMLは新しいユーザーを要求します    DISPID_AMBIENT_USERAGENT 経由のエージェント   クリックされたハイパーリンクに移動するとき。   このアンビエントプロパティは   オーバーライドされますが、次の場合は使用されません   プログラムでナビゲートを呼び出す   方法;また、   DOMのuserAgentプロパティ   ナビゲーターオブジェクトまたはclientInformation   変更される動作-このプロパティ   常にインターネットを反映します   Explorer自身の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