Главная страница | назад





Article #16378: C++Builder WinExec() and CreateProcess()

 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

Last Modified: 01-SEP-99