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





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