Garth J Lancaster
Учитывая, что вы не показываете нам никакого кода, это немного догадка для нас о том, как вам помочь. Короче говоря, если вы используете
PROCESS_INFORMATION processInformation = {0};
в своем вызове CreateProcess вы можете затем
WaitForSingleObject( processInformation.hProcess, INFINITE );
DWORD exitCode;
BOOL result = GetExitCodeProcess(processInformation.hProcess, &exitCode);
Member 11768554
BOOL fsuccess=CreateProcess(NULL,//lpApplicationName
pathexe, //lpCommanderLine
NULL, / / lpProcessAttributes
NULL, / / lpThreadAttributes
FALSE, / / bInheritHandles
NORMAL_PRIORITY_CLASS, / / dwCreationFlags
NULL, / / lpEnvironment
NULL, //lpCurrentDirectory
& sinfo, / / lpStartupInfo
& pinfo); / / lpProcessInformation
// дождитесь окончания работы Блокнота
if (fsuccess)
{
HANDLE hProcess=pinfo.hProcess;
CloseHandle (pinfo.hThread);/ / закрыть поток сразу
если (bWait)
{
DWORD dw = WaitForSingleObject(hProcess, INFINITE);
if (dw !=WAIT_FAILED)
{
DWORD dwExitCode;
GetExitCodeProcess(hProcess, & amp; dwExitCode);
if (dwExitCode= = STILL_ACTIVE) AfxMessageBox ("IDS_NOTEPAD_ALIVE");
}
}
CloseHandle(pinfo. hProcess);
}
когда я отлаживаю "DWORD dw = WaitForSingleObject(hProcess, INFINITE);". он будет ждать бесконечно, хотя другая программа откроется успешно. Когда я закрываю программу загрузки, она может перейти к следующей строке.