2009-07-03 5 views
1

プロセスの戻り値を取得するにはどうすればよいですか?基本的に私は** ShellExecute()**の.NETプロセスをDLL(C++で)からです。プロセスはそのタスクを実行しますが、今は成功したか失敗したかを知りたいのです。どのようにWinAPIまたはMFCでそれを行うには?プロセスの戻り値

答えて

2

代わりにShellExecuteExを使用すると、起動されたプロセスのハンドルを取得できます。 GetExitCodeProcessを使用して終了コードを取得できるはずです。その中

(私はあなたの代わりに明示的にプロセスを作成するシェルの動作を取得するために故意にShellExecuteを使用している疑いがあるとして、私は、MSaltersから同様のものにもかかわらず、ここでは、この答えを残してきた。)

5

CreateProcess()を使用します。プロセスハンドルを保持し、プロセスハンドルが通知されるとGetExitCodeProcess()を呼び出します。

0

のShellExecute()ネイティブは16ビットの呼び出しですので、スレッド/プロセス/メモリアドレス(使用可能なメモリスペースが見つかった場合)とそのフラグを消去できますが、フィードバック/コールバックを提供することは意図されていません(血まみれのフラグ、WinAPI(32ビット)は今よりもはるかにシンプルです)。 完全なフィードバックを提供するには、純粋な32ビット関数で拡張バージョンまたはCreateProcess()関数を試すことができます。 Unfourtinately私はあなたにフラグ/ Lparametersと他のAPIパラメータについての詳細な情報を与えることはできません。

さらに、主にすべての実行機能/プロシージャ/メソッドはブール値を返すので、常に[if..then]ステートメントを返却プロバイダとして開始することができます。

Opps、私はこれを書いていたが、すでに3つの答えがなされていた。