CreateProcessでアプリケーションエラー

このQ&Aのポイント
  • 先日、こちらでご質問させていただいた者です。環境はWindows2000 Borland C++BuilderXです。
  • CreateProcessでmodule2.exeを起動しようとしたとき、module2.exeが立ち上がらない現象が発生したのですが、その際、エラーポップアップが表示されました。
  • エラーログを出力するようにしたいのですが、どのようにすればよいでしょうか?ご存知の方がいらっしゃいましたら教えてください。
回答を見る
  • ベストアンサー

CreateProcessでアプリケーションエラー

先日、こちらでご質問させていただいた者です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2211536 環境は Windows2000 Borland C++BuilderXです。 先日と同様に、 CreateProcessでmodule2.exeを起動しようとしたとき、 module2.exeが立ち上がらない現象が発生したのですが、 その際、下のような内容のエラーポップアップが表示されました。 -------------------------------------------------- module2.exe - アプリケーションエラー アプリケーションを正しく初期化できませんでした(0xc0000142)。 [OK]をクリックしてアプリケーションを終了してください。 -------------------------------------------------- 呼び出し元ではCreateProcessの戻り値を取っており、 エラーが返された場合はエラーログを出力する処理を行っているのですが 現象発生時にはエラーログが出ていなかったことから、 CreateProcessからは成功が返されたように見られます。 今回のようなアプリケーションエラー発生時に、呼び出し元でエラーを検知し エラーログを出力するようにしたいのですが、 どのようにすればよいでしょうか? ご存知の方がいらっしゃいましたら教えてください。 よろしくお願いします。

  • BCYS
  • お礼率73% (14/19)

質問者が選んだベストアンサー

  • ベストアンサー
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.1

実現方法としては、GetExitCodeProcess APIで状態を取得してみる。 どのような状態をエラーと定義するか、とかSTILL_ACTIVE等の扱いとか、 アプリがエラーをキチンと通知するかとか、 アプリの仕様で決めないといけないことも多いですが。

BCYS
質問者

お礼

情報ありがとうございます。 GetExitCodeProcess APIを調べてみます。

関連するQ&A

  • CreateProcess関数と実行後の戻り値について

    VB6からCで作られたEXEを実行した戻り値を取得したいのですが どのように記述すればよいのでしょうか? 制御が戻るまで固まらずに待ち続けるには CreateProcessを使うと良いとは思いますが、 notepadなど一方的に動作させて終了するようなサンプルしかなく、 戻り値を取得するサンプルは見当たりませんでした。 戻り値といってもCのEXEは結果を標準出力で表示されるものですが・・・ 何か良いサンプルはあるでしょうか? CreateProcessを使わない方法でも構いません。 r = CreateProcess( _ cmd, _ param, _ ByVal 0&, _ ByVal 0&, _ 0, _ NORMAL_PRIORITY_CLASS, _ ByVal 0&, _ vbNullString, _ si, _ pi _ )

  • アプリケーションエラー

    アプリケーションエラー  エラーが発生したため、webscanx.exeを終了します。プログラム  をもう一度開始する必要があります。 エラーログを作成しています。 とでてPCの反応も遅くなりました。どうすれば直りますか?

  • アプリケーションエラーについて

    WIN2000を使用していますが、起動時に「アプリケーションエラー エラーが発生したためWebscan.exeを終了します。プログラムをもう一度開始する必要があります。エラーログを作成しています。」というエラーが発生します。 パソコンを使用していて特に問題は発生していませんが、気になります。 対処方法を教えてください。

  • Wordを使用しているとアプリケーションエラーが・・・

    はじめまして、こんにちは。 NECのPCでOSにWindows2000を使用しています。 Wordで文書を作成していて、文書の保存を行おうとすると ”アプリケーションエラー  エラーが発生したため、WINWORD.exeを終了します・・・エラーログを作成しています。” などとメッセージが表示され、ファイルが保存されません。 何度も同じ現象が起こってしまいます。 このような現象を解決する方法があるようでしたら、教えてください。

  • アプリケーションエラー?

    IEを起動するときや何かを起動するときに、 自動補完ドロップダウン:iexplore.exe-アプリケーションエラー 例外 unknown software exception(0xc0000096)がアプリケーションの0x77ed5edfで発生しました。 というエラーがでてしまって強制的にIEなどが閉ざされてしまいます。どの様に対処すればいいでしょうか?お願いします><

  • アプリケーションエラー

    IEXPLORE.EXEアプリケーションエラー アプリケーションを正しく初期化できませんでした(0xc0000142)と表示され解除できません。 どこが悪いのかアドバイスをお願いいたします。

  • アプリケーションエラーが大量に表示される

    WIN2000を使用しています。 ネット中突然、「アプリケーションエラー  エラーが発生したためSAService.exeを終了します。 プログラムをもう一度開始する必要があります。 エラーログを作成しています。」と表示されました。 その後同じものが次々と発生して下のバーを埋め尽くし続けます。 一旦終了して立ち上げても同じ現象が起こり、 ウィルスチェックしても異常は見当たりませんでした。 初心者で、対処方法がわからず困っています。 どうぞよろしくお願い致します。

  • CGIでCreateProcess

    vc++でCGIアプリケーションを作成しています。 今回、画面よりボタンクリックされたら、 CreateProcessで某exeを起動することになりました。 が、そのexeは処理時間がかかるため、終了を待たないで 画面出力をしたいのです。 単純に CreateProcessがうまくいったら、GetExitCodeProcesで「終わったか」を チェックしないで画面を出力しています。 が、画面出力が全部終わりません。 画面(html)はトップから出力し、iframeがあります。 表示の最後(</html>の前)にiframe内に一覧リストを表示させるよう、 JavaScriptでリクエストを行っています。 ログを見るとトップの出力までは書かれています。 その後、CreateProcessで起動したexeが終了すると、 一覧リストは表示されます。 ログも追加されています。 ##例えばexeが5分かかるとすると5分後にログが最後まで書かれています) ##画面も5分後に一覧リストが表示されます。 何故、一覧リストの処理が待たされているのかわかりません。 ソースはこんな感じです。   ↓ iRet = CreateProcess(0, Pbuff(ここにexe名), 0, 0, TRUE, 0, 0, 0, &startUpInfo, &PInfo ); if ( iRet != TRUE ){ CgiError("xxx", "起動できませんでした", "" ) ; return(-1); }  //この後画面表示処理 何か設定とか、間違ってますでしょうか? または何か他にしなければならないことがあるでしょうか? アドバイスをお願いいたします! 因みに、CreateProcessで起動するexeは最大2時間程度の処理時間になります。 よろしくお願いします。

  • アプリケーションエラー

    「エラーが発生したためWinMgmt.exeを終了します  プログラムをもう一度開始する必要があります  エラーログを作製しています」 というメッセ-ジが15秒おきくらいに出ます 無視するか、OKを押しています。 このアプリケーションを削除してみたら出なくなったのですが、削除したままでいいのか良くないのか。 まったくの素人です。 教えてください  

  • アプリケーションエラー

    宜しくお願いします。 今、使用中のOSはWin2000です。 IE6やMediaPlayer起動中、以下のアプリケーションエラーが頻発します。 「Svcshot.exeでエラーが発生しました。エラーログを作成します。」 といった物で、このエラー後、メモリー不足になったり、webのページなどでもエラーが発生したり、ペーストができなくなったりします。このエラーが頻発するため、そのたびに再起動なんてことになります。解決策はあるでしょうか? 宜しくお願いします。