Member 11768554 Ответов: 1

Как запустить другую программу в открытом окне


How to Emb an another program in a open window? Now I have a try, but still have some problem, 
1,how do I know when the loading program load success
2,when sleep is short, loading program will open but not embed to specified window


Что я уже пробовал:

Я использовал является CreateProcess &амп; FindWindow &амп; SetWindowLong &амп; setparent осуществляет &амп; setwindowpos и нам библиотеки и функции

1 Ответов

Рейтинг:
1

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);". он будет ждать бесконечно, хотя другая программа откроется успешно. Когда я закрываю программу загрузки, она может перейти к следующей строке.