Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations GregLocock on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

C++ Threads

Status
Not open for further replies.

Striker

Computer
May 23, 2001
143
How can I pause the execution of a parent process until the child process is completed? My dilemna is I want to execute an external program via ShellExecute and have the calling process wait until it is done before proceeding. The external program is called using a list of files generated in a listbox control and if I do not wait until the ShellExecute command is completed, my system gets bogged down with multiple instances of the external program.
 
Replies continue below

Recommended for you

static STARTUPINFO si; static PROCESS_INFORMATION pi;

memset(&si,0,sizeof(si));
memset(&pi,0,sizeof(pi));
si.cb = sizeof(si);
si.wShowWindow=uCmdShow;

CreateProcess(
NULL, // pointer to name of executable module
lpCmdLine, // pointer to command line string
NULL, // pointer to process security attributes
NULL, // pointer to thread security attributes
FALSE, // handle inheritance flag
NULL, // creation flags
NULL, // pointer to new environment block
NULL, // pointer to current directory name
&si, // pointer to STARTUPINFO
&pi // pointer to PROCESS_INFORMATION
);

WaitForInputIdle(pi.hProcess, 6000);
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor