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 без результата.

Надеюсь, что все ясно, в противном случае, пожалуйста, дайте мне знать.

0 ответов

Другие вопросы по тегам