#include #include int wmain(int argc, wchar_t* argv[]) { // 外部プログラムのパス wchar_t* programPath = L"C:\\Windows\\notepad.exe"; // STARTUPINFO構造体を初期化する STARTUPINFO si = { 0 }; si.cb = sizeof(STARTUPINFO); // プロセス情報を格納するPROCESS_INFORMATION構造体 PROCESS_INFORMATION pi = { 0 }; // 外部プログラムを起動する BOOL success = CreateProcessW( programPath, // アプリケーション名(NULLを指定すると、コマンドラインに指定されたプログラムを起動する) L"", // コマンドライン(起動するプログラムに渡す引数を指定する) NULL, // セキュリティ属性 NULL, // セキュリティ属性 FALSE, // ハンドルの継承オプション CREATE_NEW_CONSOLE, // プロセス作成フラグ(新しいコンソールを割り当てる) NULL, // 環境変数 NULL, // カレントディレクトリ &si, // STARTUPINFO構造体 &pi // PROCESS_INFORMATION構造体 ); if (success) { // プロセスが起動された wprintf(L"Process started successfully!\n"); // プロセスが終了するまで待機する WaitForSingleObject(pi.hProcess, INFINITE); // プロセスが終了した wprintf(L"Process exited!\n"); // ハンドルを閉じる CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } else { // プロセスの起動に失敗した wprintf(L"Failed to start process! Error code: %d\n", GetLastError()); } return 0; }