ммм, я почти уверен, что вы можете использовать идентификатор процесса spawner из любого процесса. Я бы перебрал все процессы, нашел бы, чей родительский идентификатор совпадает с процессом, который вы породили, и дождался его смерти.
в качестве альтернативы (я имею в виду, это довольно взломать), что делает процесс дочерний ребенок? Есть ли другой способ определить, когда он закончил делать то, что должен был сделать?
хакерский способ получить идентификатор родительского процесса
http://www.codeguru.com/cpp/w-p/win32/article.php/c1437
берет дескриптор и, используя метод из кода выше, возвращает родительский идентификатор.
http://msdn.microsoft.com/en-us/library/ms684280(VS.85).aspx
OpenProcess берет идентификатор, получает дескриптор (если вам повезет)
http://msdn.microsoft.com/en-us/library/ms684320(VS.85).aspx
GetProcessId берет дескриптор, получает его идентификатор.
http://msdn.microsoft.com/en-us/library/ms683215(VS.85).aspx
GetExitCodeProcess принимает дескриптор, возвращает, завершен ли процесс или нет.
http://msdn.microsoft.com/en-us/library/ms683189(VS.85).aspx
так что воздержитесь от использования скрытых вызовов nt, о которых вам прямо сказано не делать, вам в основном придется создать свой процесс, получить его идентификатор, затем спамить весь процесс, открывая их и проверяя их родительские идентификаторы по идентификатору процесса вы создали, если не нашли, то все готово, если вы это сделаете, спамите его с помощью GetExitCodeProcess до тех пор, пока оно не будет сделано.
Я не проверял ничего из этого, но похоже, что это можно сделать. хотя, если это ЛУЧШИЙ способ сделать это, мне, возможно, придется потерять всякую веру в окна ...