Читаем описание функции:
Код:
DWORD WINAPI WaitForSingleObject(
__in HANDLE hHandle,
__in DWORD dwMilliseconds
);
Второй параметр - время ожидания. Соответсвенно, ставишь какое-то разумное значение и цикл его.
Получится что-то типа:
Код:
While WaitForSingleObject(PI.hProcess,10) <> WAIT_OBJECT_0 Do
begin
// Здесь выводишь что-то свое.
end;
Функцию WaitForInputIdle не смотрел, но скорее всего:
1. работает точно также
2. Она вообще по логике не нужно, т.к. достаточно реализовывать ожидание по хэндлу процесса.
Да, внутри цикла не выводи ничего, что может тормознуть очередь сообщений, типа ShowMessge и т.п.