Как я могу дождаться, когда дочерний процесс, запущенный через функцию CreateProcess, будет запущен? Я думаю о функции WaitForInputIdle, но он возвращается раньше, чем дочернее приложение рисует все окна.
По пути решить эту проблему, вы создаете канал в родительском. После вилки родительский текст читает из канала, и ребенок записывает некоторые данные, чтобы сообщить, что он готов к продолжению.
Если у вас есть код для дочернего процесса, один из способов - создать именованное событие в родительском процессе и подождать этого события. В дочернем процессе вы открываете событие и сигнализируете об этом, когда дочерний процесс решает, что он действительно запущен.
Если вы собираетесь создавать множество процессов, вам понадобится соглашение об именах для событий, чтобы каждая родительская/дочерняя пара имела собственное событие. Одно из решений этого - назвать событие с GUID, а затем передать этот GUID в дочерний процесс в командной строке.