// Set up the security attributes struct.
SECURITY_ATTRIBUTES sa;
sa.nLength= sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
//入力ファイルのハンドル
HANDLE hInputRead,hInputWriteTmp;
CreatePipe(&hInputRead,&hInputWriteTmp,&sa,0);
// 起動するウィンドウの状態
PROCESS_INFORMATION procInfo;
// 新しいプロセスの情報
STARTUPINFO startInfo;
GetStartupInfo( &startInfo);
startInfo.dwFlags = STARTF_USESTDHANDLES;
startInfo.hStdInput = hInputRead;
//起動
bool bret;
bret = CreateProcess(
"D:\\aaa.exe", // プロセスのパス(EXEのパス)
" < D:\\bbb.in",//"",// プロセスへのコマンドライン
NULL, // ハンドル継承(プロセスへのセキュリティ)
NULL, // ハンドル継承(スレッドへのセキュリティ)
TRUE, // ハンドル継承を行うか否か
CREATE_NEW_PROCESS_GROUP,// プロセスタイプおよび優先順位
NULL, // 環境ブロックのポインタ
NULL, // プロセスのパス
&startInfo, // 起動状態
&procInfo); // プロセスの情報
//開放
CloseHandle(hInputRead);
CloseHandle(procInfo.hProcess);
CloseHandle(procInfo.hThread);