none
Windows 8.1+IE11で、IEのオートメーション操作に失敗 RRS feed

  • 質問

  • こんにちは。
    C++からIEをオートメーション操作するプログラムがあります。

    Widnows8+IE10やWindows7+IE11では問題なく動作するのですが、
    Windows 8.1+IE11の場合のみ、エラーが発生するようになりました。

    エラーとしてはNavigateやNavigate後が多いです。
    主に、IWebBrowser2 を使用した際に
    「クライアントから切断されました」などのOLE例外が発生する場合があります。

    これはIE側のバグもしくは仕様変更があったと言う事なのでしょうか?

    ネットも検索したのですが、これといった情報が見つかりません。

    どうかよろしくお願いします。

    2013年11月26日 2:05

すべての返信

  • よしずみ さん、投稿ありがとうございます。
    フォーラム オペレーターの星 睦美です。

    >「クライアントから切断されました」などのOLE例外が発生する場合があります。

    同じ操作で発生したり、しなかったりするケースがありますか?

    イベントログでのエラー情報の有無や、エラーの内容、Internet Explorer 11でアクセスしているのは内部(イントラネット)か外部(インターネット)か等を詳しく質問に追記いただくと、フォーラムの回答者から情報やアドバイスが集まりやすいと思います。

    ※フォーラムで役立つ回答がありましたら、投稿者からの[回答としてマーク]をお願いします。


    フォーラム オペレーター 星 睦美 - MSDN Community Support


    • 編集済み 星 睦美 2013年11月26日 8:17 編集
    2013年11月26日 6:57
  • 返信ありがとうございます。
    一点訂正があります。「OLE例外が発生し」と書きましたが、COM API呼び出しが成功しなかった場合に自分で例外を発生する様書いておりました。ですので、「COM API呼び出しエラーが発生し」と書くべきでした。

    >同じ操作で発生したり、しなかったりするケースがありますか?

    はい。大丈夫な時もあれば、続けて失敗する場合もあります。イベントログを確認してみましたが、特に情報はありません。
    エラーの内容としては、外部のサイトを開く際に取得したIWebBrowser2への操作時にエラーが発生します。
    主にNavigate時に、戻り値として 0x80010108 が返されます。

    呼び出し側でNavigate後にSleepを入れると成功する確率が高くなるようにも感じますが、時々エラーが発生してしまいます。
    IE6の時に作成してからIE10までは問題なく動作していた処理だけに、IE側の変更かと思った次第です。

    以上、よろしくお願いします。

    2013年11月27日 4:25