如何使用WScript.Shell SendKeys发送数字键盘击键?

时间:2008-11-03 15:41:43

标签: vbscript automated-tests qtp wsh

我正在尝试使用WScript.Shell SendKeys方法来模拟从数字键盘发送按键。

我有一个应用程序,我正在编写使用QTP的自动化测试。它是一个基于Web浏览器的应用程序,输入到网页中的Java App中。输入仅接受来自数字键盘和输入键的按键。

到目前为止,我正在使用此代码:

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

这适用于发送Enter键,但我无法弄清楚是否有办法发送数字键。任何帮助将不胜感激。

我不确定是否有任何未记录的方法来实现这一点。我看过http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx,但没有详细说明。

提前致谢,

  • 布伦特

2 个答案:

答案 0 :(得分:3)

您需要使用数字键盘的密钥代码。

以下是它们的列表: http://www.empirisoft.com/directrt/help/_helpcontents.htm?directrt_key_codes.htm

所以要发送“123”,你需要这样做:

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

答案 1 :(得分:3)

我没有代表对上述答案发表评论 objWsh.SendKeys chr(79)& chr(80)&字符(81)

但我不认为这是正确的

objWsh.SendKeys chr(79)& chr(80)&字符(81)
首先,它发送字母O,P,Q 他想要数字,比如1234567890

并且链接转到键盘扫描码。我想这些是为了知道键盘上的键被按下了。它们与ascii代码不同。
79,80,81是数字键盘/小键盘上某些数字的键盘扫描码。

但是,使用ascii代码。不是键盘扫描码。

此外,仅指定一个数字,因为它不是通过按键来完成的,所以它没有指定并且不需要指定,这是使用了密钥,因为没有使用密钥。

要发送密钥,一些数字(来自数字键盘)与从顶行发送密钥相同。你只想发一些数字。

如果他想知道的是如何使用sendkeys发送数字,那么显然。

objWsh.SendKeys 12345 要么 STR = “12345” objWsh.SendKeys str

但如果提问者没有意识到objWsh.SendKeys 12345会这样做,那么也许提问者只会感到困惑。我猜从绿色标记中,他投了一个像objWsh.SendKeys“OPQ”的答案。

我知道这是一个老问题,但为了正确的问题和答案..