CreateProcessは、プロセスを作成するWindowsAPI・・・。
MainProcessプロジェクトとSubProcessプロジェクトを作成し、MainProcess側からCreateProcessを使ってSubProcessを実行するようにしてみる・・・。
MainProcess側は、
"MainProcess Start!"を出してから、CreateProcessで新しいプロセス生成・・・。
PROCESS_INFORMATION構造体やSTARTUPINFO構造体を用意して、CreateProcessに渡す・・・。
いろいろ設定はあるのだが、今回は最低限で・・・。
あとは、実行ファイル名の"SubProcess.exe"ぐらい・・・。
また、今回はスレッドハンドルは使わないのでCloseHandleでpi.hThreadを閉じてる・・・。
Sleepで60秒(60000ミリ秒)待って、
pi.hProcessを閉じて、"MainProcess End!"を出力・・・。
SubProcess側は、
"SubProcess Start!"を出力してから、30秒待つ・・・。
そのあと、"SubProcess End!"を出力・・・。
つまり、SubProcess側のほうが30秒先に終わる・・・。
スタートアッププロジェクトはMainProcessにして実行・・・。
MainProcess Start! SubProcess Start!
MainProcessが起動し、そのあとSubProcessが起動・・・。
SubProcessが終わる前に、タスクマネージャを見ると、
MainProcess.exeとSubProcess.exeがいる・・・。
30秒たつと、
SubProcess End!
が出る・・・。
タスクマネージャーは、
MainProcess.exeだけになってる・・・。
でMainProcess.exeも終わると、
MainProcess End! 続行するには何かキーを押してください . . .
が出る・・・。
もうMainProcess.exeもいない・・・。
Sample/MainProcess.cpp at master · bg1bgst333/Sample · GitHub
Sample/SubProcess.cpp at master · bg1bgst333/Sample · GitHub