2009-07-28 15 views
1

CDを挿入したときに自動実行するように設定されたカスタムMFCアプリケーションを使用してインストールCDを作成しようとしています。デフォルトのブラウザでインストールCDのhtmlページを開く

説明書は、画像とPDF文書へのリンクを含む簡単なhtmlページとして含まれています。これらのページはすべてCDに収録されています。

ShellExecute(NULL, "open", <full path to .htm file including CD drive letter>, NULL, NULL, SHOWNORMAL); 

しかし、VistaでIE8をテストする場合、私は次のように遭遇しました::

  1. 私は、デフォルトのブラウザでHTMLページを開くには、次を使用のだ過去に

    Explorerはタブが

  2. エクスプローラdissappears
'接続' と言う
  • を起動します

    インターネットゾーンの保護モードを無効にすると、問題が解決されるため、これは保護モードと関連しています。

    奇妙なことは、何かが一度CDに焼かれると問題が発生するということです。私がハードドライブから手動で実行可能な自動実行ファイルを実行しただけでは、htmlページが正常に表示されます。

    私はこれを解決するために何か具体的なことがあるかどうか尋ねていますか? また、この問題がない可能性のあるユーザーのデフォルトブラウザでURLを開くための別のメカニズムがある場合は、

  • +0

    ああ、いくつかの理由で、IEが既に開いている場合は、ページも正常に表示されます。これはIEが開かれていない場合にのみ発生します。 –

    答えて

    0

    あなたはあなたのshellex呼び出しで

    iexplore.exe [URL] 
    

    を実行したい場合がありますIEがインストールされていることを合理的に確認することができますので。

    IEがインストールされていない場合は、戻り値がないかどうかを確認してください。もしそうなら、.htmファイルでオリジナルのシェルレックスコールを直接行います。

    また、.htmを%TEMP%にコピーしてそこからシェルビットコールを実行することもできます。そうすれば、危険な場所から保護された資産を取り戻すことができます。

    +0

    むしろ強制的にIEに、私はデフォルトのブラウザのレジストリキーをチェックするいくつかのコードを持って、IEのように見える場合は回避策を試すことができます。しかし、iExploreとURLを使ってShellExecuteを実行することで、私は同じ動作を得ます。 IEのインスタンスを最初に起動し、ShellExecuteを「開く」とすると、ページが正しく表示されますが、余分なブラウザウィンドウも表示されます。 私は%TEMP%へのコピーを試していませんので、効果があるかどうか確認します。 –

    +0

    furthurのリフレクションでは、一時的なコピーは、新しいhtmlページを生成してFILE:// CD上のイメージとPDFにリンクするか、ディレクトリ構造全体をtempフォルダにコピーした場合にのみ機能します。さらに、後でクリーンアップするときに問題があります。だからこそ、私の問題は解決しないでしょう。 –

    +0

    はあなたの友人です;) –

    0

    ShellExecuteからの戻りコードをキャプチャして表示できますか?それは何が起こっているかについての手がかりを与えるかもしれません。

    result = ShellExecute(... 
    

    可能なリターンコードはここに記載されています:

    http://support.microsoft.com/kb/238245

    それはあなたのCD-ROMドライブ文字をハードコーディングされていることをあなたの質問で述べています。テストしているマシンは、CDを作成したマシンとは異なるドライブ文字を持っていますか?

    +0

    私は実際には.htmページのパスを構築するために実行可能ファイルを起動するために使用されるパスを使用しています。保護モードをオフにしても機能するため、これは問題ではありません。 IEが消えているかどうかに関わらず、リターンコードは常に42です(ShellExecuteの正常な成功コードはどれですか) –

    関連する問題