質問

マシン上で奇妙な動作をするコンソールアプリケーション(VB6で記述)があります。コマンドラインから開始し、2分間のジョブがプロンプトに戻ります-別のマシンでこれを実行すると、実行可能ファイルはジョブが終了するまで待機してから、制御をプロンプトに戻します。プロセスエクスプローラーをチェックすると、実行可能ファイルがバックグラウンドプロセスとして実行されており、この奇妙なバックグラウンド以外が期待どおりに実行されていることがわかります。

これがなぜ起こるのか、考えたことはありますか? (32ビットWindows XP Pro SP3で実行します。)

役に立ちましたか?

解決

このアプリは、マシンの1つでコンソールアプリとして認識されていないように聞こえます。コンソールアプリはVB6で公式にサポートされていませんでしたが、コンソールアプリを作成するための有名なハックがいくつかあります(特に無料のアドイン vbAdvance )。おそらくあなたのコンソールアプリは少し信頼できませんか?アプリがコンソールアプリではなくGUIであるとWindowsが判断した場合、アプリが終了するまで待機しません。

実用的な回避策として: start / wait で起動してみてください。単にexenameを使用するのではなく。これにより、コマンドプロンプトは、プログラムがGUIアプリであろうとコンソールアプリであろうと、プログラムの終了を待機させます。

他のヒント

これがあなたが書いたソースコードを持っているアプリケーションであるかどうかは完全に不明です。その場合は、取得してデバッグを開始する必要があります。少なくとも、 OutputDebugString を使用して、何が起こっているかに関する情報を送信します。潜在的な視聴者の任意の数に。さらに一歩進んで、コンソールモジュールを使用してアプリを再配線し、< href = "http://vb.mvps.org/tools/vbAdvance" rel = "nofollow noreferrer"> vbAdvance を再コンパイルします。この組み合わせにより、VB6 IDEの全機能を使用してデバッグできます。何が起こっているのか推測する必要はもうありません。

それから、もしそれがあなたのアプリでなければ、VB6がそれとどう関係しているかわからないので、何が起きているのか理解しようと頑張ってください。

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

VB6アプリのエラーは、インストールまたは登録されていないCOMコンポーネントが原因であることがよくあります。

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

チェックアウト:プロセスモニター-ハンズオンラボとサンプル

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top