2009-06-22 33 views
0

私のマシンには、奇妙な動作をするコンソールアプリケーション(VB6で書かれています)があります。私はコマンドラインからそれをキックオフし、2分のジョブをプロンプトにまっすぐに戻す必要があります。これを別のマシンで実行すると、プロンプトに戻って制御を戻す前に、実行可能ファイルが残り、ジョブが終了するまで待機します。プロセスエクスプローラをチェックすると、実行可能ファイルがバックグラウンドプロセスとして実行されていることがわかります。この奇妙なバックグラウンドが期待どおりに実行されていること以外は、VBアプリケーションがバックグラウンドで実行されないようにします。

これはなぜ起こっているのでしょうか? (32ビットWindows XP Pro SP3で動作します)

答えて

1

あなたのマシンの1つでアプリケーションがコンソールアプリケーションとして認識されていないかのように聞こえます。コンソールアプリケーションは、VB6で正式にサポートされていませんでしたが、よく知られているハック(特にフリーアドインvbAdvance)があります。おそらくあなたのコンソールアプリは少し信頼できないでしょうか? WindowsがあなたのアプリケーションがコンソールアプリケーションではなくGUIであると考えるなら、それが完了するのを待つことはありません。

実用的な回避策として、単に名前を使用するのではなく、start /waitで起動してみてください。これにより、コマンドプロンプトは、GUIアプリケーションでもコンソールアプリケーションでも、プログラムが終了するのを待つよう強制されます。

+0

開始待ちはトリックをきれいにします!私はソースコードを持っていますが、VB6に嫌われたくないので、私は非常に慎重に関わっていません。 –

0

アプリケーションによって「飲み込まれている」というエラーが発生しています。ソースコードはありますか?

VB6アプリケーションのエラーは、多くの場合、一部のCOMコンポーネントがインストールおよび/または登録されていないことが原因です。

SysInternals Process Monitorをダウンロードすると、失敗したProgIDへのアクセスが表示されます(COMコンポーネントのアンインストール/未登録)。

チェックアウト:Process Monitor - Hands-On Labs and Examples

権限を確認しましたか?アプリケーションはネットワークベースのリソースにアクセスしていますか?

+0

procmonでそれを調べたところ、重大なエラーはないようです。最初のいくつかのイベントは、 "Process Start"、 "Thread Create"、実行可能ファイル(.exe)とntdll.dllの "LoadImage"を開始し、プリフェッチファイルが読み込まれた後、 \ program files \、c:\ windows)を実行してdllのロードを開始します。興味深いことに、それはまた、Googleのデスクトップと私のメディアプレーヤー(メディアの猿と呼ばれる)からのdllを読み込みます...限り、私は実際のエラーを見ることができます。 –

+0

私はまた、プログラムが正常に動作することに注意する必要があります...それはコマンドプロンプトで出力を生成するためのものではありません...私はちょうど私のプロセスの次のステップが(実行可能ファイルがバックグラウンドで実行されている間にこれらのファイルにアクセスし、潜在的にこれらのファイルを書き込むことは勝利の動きではありません) –

+0

アプリケーションはネットワークベースのリソースを使用していません。 –

3

これがあなたが書いたアプリケーションであり、ソースコードを持っているかどうかは完全にはっきりしていません。そのような場合は、デバッグに入り、デバッグを開始する必要があります。少なくとも、OutputDebugStringを使用して、何が起こっているかについての情報を潜在的な視聴者に送信してください。これをさらに進めて、私が書きましたConsole moduleを使ってアプリケーションを再配線し、vbAdvanceと一緒に再コンパイルすることを検討してください。この組み合わせにより、VB6 IDEのすべての機能をデバッグできます。何が起こっているかについてもう推測はしません。

また、あなたのアプリではない場合、私はVB6と何が関係しているのか分かりませんし、何が起きているのかを把握しようとしています。

+0

+1私の答えのコメントは、ジェイミーがソースコードを持っているが、それに少しアレルギーがあることを示しています:) – MarkJ

+0

あなたが口にキスした場合、あなたはたったのこみを得るでしょう! Sheesh ...ああ。 –

関連する問題