С помошью CreateProcess запускаеш сторонию программу. Получаеш Хэндл процесса. Затем вешаеш свой поток в спячку через функцию WaitForSingleObject. Объектом данной функции будет Хэндл сторонего процесса. Как только твой поток проснулся, можеш выключать компьютер. Добавлено @ 20:13 Вот код на С++ из книги Рихтера
| Цитата | Если Вы хотите создать новый процесс, заставить его выполнить какис-либо операции и дождаться их результатов, напишите примерно такой код
|
| Код | PROCESS_INFORMATION pi; DWORD dwExitCode;
// порождаем дочерний процесс BOOL fSuccess = CreateProcess(..., &pi};
if (fSuccess) {
// закрывайте описатель потока, как только необходимость в нем отпадает! CloseHandle(pi.hThread);
// приостанавливаем выполнение родительского процесса, // пока не завершится дочерний процесс WaitForSingleObject(pi.hProcess, INFINlTI);
// дочерний процесс завершился; получаем код его завершения GetExitCodeProcess(pi.hProcess, &dwExitCode);
// закрывайте описатель процесса, как только необходимость в нем отпадает! CloseHandle(pi.hProcess);
}
|
|