2011-01-15 6 views
-1

Я пишу какое-то программное обеспечение в C# с вызовами win32, которое ищет окно под заголовком. Когда появится окно, мое программное обеспечение отправляет на него различные сообщения Windows, чтобы автоматизировать повторяющиеся действия, которые я не хочу делать самостоятельно вручную. Я обнаружил, что несколько раз сообщения WM, которые отправляются, как представляется, не обрабатываются приложением. Моя нынешняя теория заключается в том, что мое программное обеспечение обнаруживает окно и начинает отправлять сообщения Windows до того, как будет создан цикл сообщений приложений.Дождитесь цикла сообщений

Есть ли способ подождать, пока цикл сообщений не будет запущен?

ответ

1

Process.WaitForInputIdle() может быть одним решением.

Причины компонент Процесс ждать неопределенно долго для связанного процесса, чтобы войти в состояние ожидания. Эта перегрузка применяется только к процессам с пользовательским интерфейсом и, следовательно, цикл сообщений.

+0

WaitForInputIdle ожидает только один раз, при первом вызове. Если вы впоследствии используете его, он сразу же возвращает успех. Я дам ему шанс, но не уверен, что это сработает. – Jeremy

0

Вывести сообщение в окне Никогда не обрабатывается? Вы заблокированы UIPI?

+0

Не блокируется и никогда не обрабатывается. – Jeremy

Смежные вопросы