Question and Answer Database FAQ1378C.txt C++Builder WinExec() and CreateProcess() Category :Windows API Platform :All Product :C++Builder 1.x Question: I am updating my code for Win32 and changing my WinExec() calls to CreateProcess() and having trouble. There is so much more to setup. Can you supply an example? Answer: void CreateChildProcessAndWaitUntilDone(const AnsiString& strCmdLine) { PROCESS_INFORMATION piProcInfo; STARTUPINFO siStartInfo; // Set up members of STARTUPINFO structure. siStartInfo.cb = sizeof(STARTUPINFO); siStartInfo.lpReserved = NULL; siStartInfo.lpReserved2 = NULL; siStartInfo.cbReserved2 = 0; siStartInfo.lpDesktop = NULL; siStartInfo.dwFlags = 0; // Create the child process. CreateProcess( NULL, strCmdLine.c_str(), NULL, // process security attributes NULL, // primary thread security attributes 0, // handles are inherited 0, // creation flags NULL, // use parent's environment NULL, // use parent's current directory &siStartInfo, // STARTUPINFO pointer &piProcInfo); // receives PROCESS_INFORMATION // Wait for the processs to finish DWORD rc = WaitForSingleObject( piProcInfo.hProcess, // process handle INFINITE); } 7/2/98 10:32:32 AM
Article originally contributed by Borland Staff