Skif_off
|
Posted: Fri Mar 08, 2019 10:57 Post subject: |
|
|
Flasher wrote: | 2 сотни с потолка взято, я так понимаю? |
Ты "грубо говоря" забыл зацепить.
Flasher wrote: | Ничего подобного. Это вполне может значить, что она не успела получить PID. |
Т.е. процесс создан, во всю рисует окно, а у тебя PID всё ещё не получен? Загугли описание CreateProcess, оно везде одинаковое:
Quote: | Return Value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. ...
Note that the function returns before the process has finished initialization. |
Flasher wrote: | WinWaitActive годится, т.к. ждёт активации, а не уже активного окна. И модальность тут за уши притягивать смысла нет, т.к. закрывался активный экземпляр. Плюс мне было на чём проверять, это не чьи-то домыслы, а подтверждено на практике. |
Годится, если активным не успело вылезти окно другой копии, модальность тут - пример причины, когда это происходит без участия и желания пользователя.
Ну а на моей практике с двумя и более копиями (не только тестов, но просто использования) неприлично часто бывало, что не то окно закрыто или не то активировано. Ты ведь не думаешь, что от нечего делать у себя получаю PID родительской копии TC вместо поиска активного окна?
P.S. К слову, с COM-объектами могут быть сюрпризы в WinPE. |
|