
まずは下のC++のソースをご覧ください。
------------------------------------------------
PROCESS_INFORMATION ProcessInfo;
STARTUPINFO StartupInfo = { 0 };
printf ("Start of Proc\n");
CreateProcess ( NULL, "c:\proc01.exe", NULL, NULL, FALSE,
0, NULL, NULL, &StartupInfo, &ProcessInfo)
printf ("End of Proc\n");
------------------------------------------------
この処理でCreateProcessで指定された"c:\proc01.exe"が起動されて
終了した時に、下のprintf()関数が実行されるのようにしたいのですが、
そのような処理をするAPI関数、またはC++関数をご存知ないでしょうか?
No.2ベストアンサー
- 回答日時:
WaitForSingleObject(...)を使ってみてください。
CreateProcess()の最後の引数であるProcessInfo構造体のhProcessを
WaitForSingleObject()に渡してやります。
例:
以下は、StartupInfoおよびProcessInfoが正常に確保・初期化されていることが
前提です。確保・初期化されていなければ希望の動作はしません。
...
printf ("Start of Proc\n");
CreateProcess ( NULL, "c:\proc01.exe", NULL, NULL, FALSE,
0, NULL, NULL, &StartupInfo, &ProcessInfo);
// proc01.exe起動待ち
// proc01.exeがシグナル状態になるのを待ちます
// 状況によっては省略化
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
// proc01.exe終了待ち
// 上の逆で、proc01.exeが非シグナル状態になるのを待ちます
while(1)
{
if(WaitForSingleObject(ProcessInfo.hProcess, 1)!=WAIT_OBJECT_0)
break;
}
printf ("End of Proc\n");
...
各関数の詳細は、VC++オンラインヘルプ(MSDN)で確認してください。
PS
FindWindow(...)を使う手もあります。
No.3
- 回答日時:
ありますよ。
僕の極秘ノート(笑)によれば、
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
です。たぶんあっていますが今確認が取れません。
ついでに言えばウインドウの再描画もされませんよ。
No.1
- 回答日時:
終了されたか調べるのではなくて終了するまで待つんじゃないでしょうか?
VBで出来るんでCでも大丈夫だと思いますけど。
CreateProcessの引数で待ちみたいなのって無いのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
batファイルで立ち上げたaplを...
-
VB.NETでDOSコマンドの複数実行
-
バッチファイル 特定ウインドウ...
-
keytool.exeを起動するには
-
ExcelVBAにてアプリをタスクマ...
-
vbsのショートカット作成で、引...
-
∈ BIOSのアップデ-トとブ...
-
バッチへ値を返す
-
c#でコマンドプロンプトを実行...
-
EXCELをバッチコマンドで...
-
64bitのwindowsサーバーで32bit...
-
【VB.NET】コマンドプロンプト...
-
VBで作成した実行形式の戻り値...
-
コマンドプロンプト画面で動作...
-
コマンドプロンプトの窓の起動...
-
バッチファイルからftpを実行時...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
バッチでテキストファイルから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルで立ち上げたaplを...
-
VB.NETでDOSコマンドの複数実行
-
ExcelVBAにてアプリをタスクマ...
-
バッチファイル 特定ウインドウ...
-
EXCELをバッチコマンドで...
-
gccがコマンドプロンプト上で使...
-
バッチへ値を返す
-
c#でコマンドプロンプトを実行...
-
Shiftキーを押しながら起動
-
UWSCについて
-
複数の処理の終了を待ちたい
-
ASPからのEXEファイル起動
-
VBAからキャッシュを削除する方...
-
プログラムを実行すると、なぜ...
-
RUNASコマンドを使って、自動的...
-
バッチファイルからftpを実行時...
-
ショートカットの作成とコピー
-
ショートカットのリンク先が参...
-
コマンドプロンプト画面で動作...
-
VBSでコマンドプロンプトのカレ...
おすすめ情報