Как я могу использовать WScript.Shell SendKeys для отправки нажатий клавиш на цифровой клавиатуре? - PullRequest
3 голосов
/ 03 ноября 2008

Я пытаюсь использовать метод WScript.Shell SendKeys для эмуляции отправки нажатия клавиши с цифровой клавиатуры.

У меня есть приложение, которое я пишу для автоматического тестирования с использованием QTP. Это приложение, основанное на веб-браузере, и ввод осуществляется в приложение Java на веб-странице. Ввод допускает только нажатия клавиш с цифровой клавиатуры и клавиши ввода.

Пока я использую этот код:

Dim strInputKey
strInputKey = "{ENTER}"
Set objWsh = CreateObject("WScript.Shell")
Browser("Launch Browser").Page("Test Application").WebElement("Item ID").Click
objWsh.SendKeys strInputKey

Это прекрасно работает для отправки клавиши ввода, но я не могу понять, есть ли способ отправить числовые клавиши. Любая помощь будет принята с благодарностью.

Я не уверен, есть ли какие-либо недокументированные способы достижения этого. Я прочитал http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx, но это не очень подробно.

Заранее спасибо,

  • Brent

Ответы [ 2 ]

3 голосов
/ 08 июля 2010

У меня нет представителя, чтобы комментировать вышеуказанный ответ, который сказал objWsh.SendKeys chr (79) и chr (80) и chr (81)

но я не думаю, что это правильно

objWsh.SendKeys chr (79) и chr (80) и chr (81)
Для начала он отправляет буквы O, P, Q И он хочет цифры, как 1234567890

и ссылка идет на коды сканирования клавиатуры ... Я думаю, они предназначены для того, чтобы знать, какая клавиша на клавиатуре была нажата. Они отличаются от кодов ASCII.
79,80,81 - коды сканирования клавиатуры для некоторых чисел на цифровой клавиатуре / цифровой клавиатуре.

Chr, тем не менее, использует коды ASCII. не коды сканирования клавиатуры.

Кроме того, здесь просто указывается цифра, так как она не выполняется нажатием клавиши, она не указывает и не требует указания, какая клавиша использовалась, поскольку клавиша не использовалась.

Для отправки некоторых номеров (с цифровой клавиатуры) это аналогично отправке ключей из верхнего ряда. Вы просто хотите отправить несколько номеров.

Если он хочет знать только то, как использовать sendkeys для отправки цифр, тогда, очевидно.

objWsh.SendKeys 12345 или же ул = "12345" objWsh.SendKeys str

Но если спрашивающий не понимал, что objWsh.SendKeys 12345 сделает это, то, возможно, спрашивающий просто запутался. Я думаю, по зеленой галочке он проголосовал за ответ, похожий на objWsh.SendKeys "OPQ".

Я знаю, что это старый вопрос, но ради того, чтобы иметь правильные вопросы и ответы ..

3 голосов
/ 04 ноября 2008

Вам потребуется использовать коды клавиш для цифровой клавиатуры.

Вот их список: http://www.empirisoft.com/directrt/help/_helpcontents.htm?directrt_key_codes.htm

Таким образом, чтобы отправить «123», вам нужно сделать:

objWsh.SendKeys chr(79) & chr(80) & chr(81) 
...