Как узнать, полностью ли загружен процесс - PullRequest
1 голос
/ 07 января 2012

В моем текущем проекте мне нужно отправить ключи процессу, который я запустил (хотя я не имею никакого контроля в этом процессе, он сторонний).Теперь, чтобы выполнить эти команды, процесс, EA Origin, должен находиться на главном экране (то есть полностью загруженным после входа в систему).

Теперь я не знаю, как я мог обнаружить, когда эта точкаБыл достигнут.Я пытался дождаться простоя ввода, но простоя ввода задолго до момента, когда я могу отправить ключи.

Есть ли какой-то другой метод, который я мог бы использовать, чтобы обнаружить, когда программа достигла этого состояния?Я подумал, что, может быть, я смогу определить (если), когда приложение сигнализирует о себе, но я не уверен, как я могу найти, если оно вообще сигнализирует, или что он сигнализирует, чтобы его прослушать.

Любая помощьс благодарностью!

Ответы [ 2 ]

1 голос
/ 05 июня 2015

Есть ли в приложении какой-либо визуальный индикатор, например, текст конкретной метки, который появляется, когда он готов принять ввод? Если это так, вы можете использовать API доступа к окнам (через P / Invoke), чтобы следить за этим и использовать его как триггер. Также может быть возможно использовать API для наблюдения, когда фактический элемент управления вводом получает фокус. Вы даже можете использовать API вместо SendKeys, чтобы получить более надежное взаимодействие.

1 голос
/ 07 января 2012

Если главное окно имеет отдельный заголовок, вы можете многократно перечислять окна и ждать, пока не появится главное окно процесса.

Кстати, у меня был некоторый неудачный опыт работы с ключами отправки (иногда ключи не проходили), и я обнаружил, что сочетание Отправить ключ с чтением пользовательского интерфейса процесса (опять же - enum windows) работает лучше всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...