Я работаю над библиотекой автоматического тестирования и хочу имитировать ввод с помощью мыши и клавиатуры с помощью SendInput Win32 API. Этот API позволяет передавать несколько элементов ввода за один вызов API. В Интернете есть ряд других примеров и подобных библиотек, использующих SendInput. Многие из них передают одну операцию ввода для каждого вызова API. Есть ли какие-либо преимущества в пакетном вводе или использовании одного ввода для каждого вызова SendInput? Документация, похоже, не предлагает руководства, или, возможно, я неправильно ее читаю.
Рекомендации по использованию API SendInput
Ответы (1)
Я знаю, что нет никакой реальной пользы от одной техники по сравнению с другой. В любом случае обычная потенциальная проблема с SendInput заключается в том, что фокус ввода может меняться между тем, когда вы отправляете ввод, и тем, когда ввод принимается целевым приложением. Классический пример - модальное диалоговое окно, которое появляется асинхронно, чтобы предупредить пользователя о некоторой проблеме, и в конечном итоге крадет фокус и впитывает оставшийся ввод, который должен был пойти в другом месте. В этом сценарии нет разницы между последовательной серией SendInputs и одиночным SendInput.
(Я почти уверен, что внутри SendInput в любом случае просто перебирает переданные ему входы ...)
person
BrendanMcK
schedule
07.01.2013
BlockInput()
. - person JimEvans   schedule 07.01.2013