今天写QTP脚本,发现QTP对右键单击选择列表的操作不能识别,经过网上搜索资料,采用WshShell的方式,可以实现右键选择的操作。WshShell是通过模拟键盘,向激活窗口发送键值实现相应操作。
Window("XX系统").WinObject("对象B").Click 132, 83, micRightBtn '右键单击出菜单
Window("XX系统").WinObject("对象B").WinMenu("MenuC").Select "可编辑(E)" '在弹出菜单中选择功能
上述代码在回放时过不去, 可以改为:
Dim WshShell
Window("XX系统").WinObject("对象B").Click 132, 83, micRightBtn
Set WshShell = CreateObject("WScript.Shell")
For i=1 to items
WshShell.SendKeys "{DOWN}" '模拟键盘操作
Next
wait 1
WshShell.SendKeys "{ENTER}" '模拟键盘操作
上述代码在弹出菜单后可以实现向下移动选项,并选择功能, items是移动的次数
附: WshShell键值表
键 参数
退格键 {BACKSPACE}、{BS}或{BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL或DELETE{DELETE}或{DEL}
下箭头 {DOWN}
END {END}
ENTER {ENTER}或~
ESC {ESC}
HOME {HOME}
INS或INSERT{INSERT}或{INS}
左箭头 {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN{PRTSC}
右箭头 {RIGHT}
SCROLL LOCK{SCROLLLOCK}
TAB {TAB}
上箭头 {UP}
F1、F2、F3...{F1}、{F2}、{F3}
为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:
键 代码
SHIFT +
CTRL ^
ALT %
为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。
为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。注意 不能用 SendKeys 将按键消息发送到这样一个应用程序——这个应用程序并没有被设计成在 Microsoft Windows 中运行。
注意:Sendkeys 也无法将 PRINT SCREEN 按键发送到任何应用程序。