InputSimulator WindowsInput: ожидание завершения Keyboard.TextEntry
Я хотел бы что-то вроде SendKeys.SendWait("some_text")
Однако, похоже, sendKeys
pinvoke не работает должным образом на моей ОС, поэтому я изменил на SendInput
библиотека, как рекомендуется во многих местах, используя библиотеку InputSimulator.
Так что мне нужно ввести где-нибудь текст, подождать пару секунд, пока целевое приложение не найдет этот текст, и нажать клавишу "Вниз", чтобы выбрать первый результат.
Я использую что-то похожее на это:
// Clear text Input
sim.Keyboard.KeyPress(VirtualKeyCode.HOME);
sim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.SHIFT, VirtualKeyCode.END);
sim.Keyboard.KeyPress(VirtualKeyCode.DELETE);
// Introducing new text
if (!sMessage.Equals(""))
{
sim.Keyboard.TextEntry(sMessage);
sim.Keyboard.Sleep(3000);
sim.Keyboard.KeyPress(VirtualKeyCode.DOWN);
}
Что происходит на экране, так это то, что через 3 секунды вводится текст, нажимается клавиша "Вниз" до окончания ввода текста. Поэтому я выбираю первый результат до завершения поиска.
Мне нужен способ ожидания ввода текста, подождать еще 2/3 секунды, чтобы поиск мог быть завершен, и, наконец, выбрать первый результат.
Как я мог справиться с этим? Я также попытался создать и инкапсулировать каждую инструкцию с Tasks.WaitAll без результата.
Надеюсь, что все ясно, в противном случае, пожалуйста, дайте мне знать.