Проблема с sendkeys в .NET - PullRequest
1 голос
/ 21 мая 2010

У меня есть приложение для Windows, в котором я использую клавиши отправки для перехода из одного окна в другое. Моя последовательность клавиш отправки аналогична активации другого окна в моем приложении и отправке нажатий клавиш в это окно. Но отправляемые мной нажатия клавиш обновляются в том же окне, где я активирую другое окно.

Но после нескольких нажатий клавиш он переходит в другое окно. Похоже, проблема синхронизации с отправкой ключей. Есть ли способ указать, что операция текущего ключа отправки завершена, перед отправкой следующего ключа отправки.

Ответы [ 2 ]

2 голосов
/ 21 мая 2010

Я нашел sendkeys просто ненадежным. Попробуйте вместо этого симулятор ввода .

0 голосов
/ 21 мая 2010

Вы пытались использовать SendKeys.SendWait . Это будет ждать, пока ключ не будет отправлен, и действие обработано, прежде чем активировать.

Поскольку окна находятся в вашем собственном приложении, почему бы не предоставить набор функций для выполнения действий вместо использования SendKeys. Функции могут создавать окно после того, как окна созданы и активны, которые вы можете обнаружить, обработав событие Активировано , затем вы можете использовать SendKeys для отправки нажатий клавиш в новое окно, если вам действительно нужно, в противном случае снова есть функции в классе окна, которые вы можете вызывать для выполнения операций, которые будут вызывать нажатия клавиш. Возможно, вы могли бы определить общий интерфейс , который реализован в ваших окнах для облегчения этого взаимодействия.

...