--- メインプロセス(始まり) --- // ヘッダファイルのインクルード #include // 標準WindowsAPI #include // TCHAR型 #include // 標準入出力 // _tmain関数の定義 int _tmain(int argc, TCHAR* argv[]) { // main関数のTCHAR版. // 変数の宣言・初期化 PROCESS_INFORMATION pi; // プロセス情報pi STARTUPINFO si = { 0 }; // スタートアップ情報siは0で初期化. TCHAR tszArg[256] = { 0 }; // コマンドライン引数tszArgは0で初期化. // スタートアップ情報の初期化. si.cb = sizeof(STARTUPINFO); // si.cbにSTARTUPINFOのサイズをセット. _tcscpy_s(tszArg, _T("SubProcess.exe")); // tszArgに"SubProcess.exe"をセット. // "MainProcess Start!"と出力. _tprintf(_T("MainProcess Start!\n")); // "MainProcess Start!"と出力. // 新しいプロセスの生成. CreateProcess(NULL, tszArg, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi); // CreateProcessで新しいプロセス"SubProcess.exe"を実行.(第1引数はフルパスでないといけないが, そこをNULLにして第2引数を使えば, 相対パスでも実行できる.) // 生成された新しいプロセスのスレッドハンドルは使わないので閉じる. CloseHandle(pi.hThread); // CloseHandleでpi.hThreadを閉じる. // 60秒休止 Sleep(60000); // Sleepで60000ミリ秒休止. // 新しいプロセスのプロセスハンドルを閉じる.(新しいプロセスは30秒で終わるので, 既に終わっている状態.) CloseHandle(pi.hProcess); // CloseHandlでpi.hProcessを閉じる. // "MainProcess End!"と出力. _tprintf(_T("MainProcess End!\n")); // "MainProcess End!"と出力. // プログラムの終了 return 0; } --- メインプロセス(終わり) --- --- サブプロセス(始まり) --- // ヘッダファイルのインクルード #include // 標準WindowsAPI #include // TCHAR型 #include // 標準入出力 // _tmain関数の定義 int _tmain(int argc, TCHAR* argv[]) { // main関数のTCHAR版. // "SubProcess Start!"と出力. _tprintf(_T("SubProcess Start!\n")); // "SubProcess Start!"と出力. // 30秒休止 Sleep(30000); // Sleepで30000ミリ秒休止. // "SubProcess End!"と出力. _tprintf(_T("SubProcess End!\n")); // "SubProcess End!"と出力. // プログラムの終了 return 0; } --- サブプロセス(終わり) ---