QTP的DeviceReplay对象小结.docx
- 文档编号:23258178
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:20
- 大小:42.37KB
QTP的DeviceReplay对象小结.docx
《QTP的DeviceReplay对象小结.docx》由会员分享,可在线阅读,更多相关《QTP的DeviceReplay对象小结.docx(20页珍藏版)》请在冰豆网上搜索。
QTP的DeviceReplay对象小结
QTP的DeviceReplay对象小结
一.使用方法
Dimdp
Setdp=CreateObject("Mercury.DeviceReplay")'建立对象
dp.SendString“keyword”
二.局限和绕过方法
1.不能判断一个Control键是否已经被按下
说明:
DeviceReplay是一个强大的未被文档化的对象,但是有一定的局限性。
其中一个局限就是不能判断一个Control键是否已经被按下。
在输入一个大写字母之前,我们需要知道CAPS-LOCK键是否已经按下。
在使用数字键盘之前我们需要检查NUM-LOCK键是否已经被按下。
否则我们在切换键盘输入状态时可能得到的并不是我们想要的状态。
Devices.Keyboard类提供了属性,可用于获取当前的键盘状态,例如当前什么键被按下了,并且提供一个方法用于向激活的窗口发送键盘敲击事件。
几个有用的属性包括:
AltKeyDown-判断ALT键是否处于按下状态。
CapsLock- 判断CAPSLOCK键是否处于打开状态。
CtrlKeyDown-判断CTRL键是否处于按下状态。
NumLock-判断NUMLOCK键是否处于打开状态。
ScrollLock-判断SCROLLLOCK键是否处于打开状态。
ShiftKeyDown-判断SHIFT键是否处于按下状态。
例:
SetKeyboard=DotNetFactory.CreateInstance(
"Microsoft.VisualBasic.Devices.Keyboard","Microsoft.VisualBasic")
PrintCBool(Keyboard.AltKeyDown)
PrintCBool(Keyboard.CapsLock)
PrintCBool(Keyboard.CtrlKeyDown)
PrintCBool(Keyboard.NumLock)
PrintCBool(Keyboard.ScrollLock)
PrintCBool(Keyboard.ShiftKeyDown)
2.不能获取当前鼠标(光标)在屏幕的位置
说明:
DeviceReplay的另外一个局限是不能获取当前鼠标(光标)在屏幕的位置。
而System.Windows.Forms.Control这个类定义了那些拥有视觉表现的控件的基类。
通过MousePosition属性可以获取当前鼠标光标在屏幕坐标的位置。
访问MousePosition属性时,可以返回代表鼠标光标位置的Point数据。
例:
Setctlr=DotNetFactory.CreateInstance("System.Windows.Forms.Control")
Fori=1To10
Wait2
Print"1.X="&ctlr.MousePosition.X&";Y="&ctlr.MousePosition.Y
Next
三.方法
1.DragAndDrop方法
原型:
SubDragAndDrop(ByValDragXAsInteger,ByValDragYAsInteger,ByValDropXAsInteger,ByValDropYAsInteger,ByValButtonAsMouseButton)
功能:
用于执行从一点拖动到另外一点的操作。
语法:
object.DragAndDrop(dragX,dragY,dropX,dropY,Button)
输入参数:
object:
Mercury.DeviceReplay对象。
dragX:
起点坐标的X轴的值。
dragY:
起点坐标的Y轴的值。
dropX:
终点坐标的X轴的值。
dropY:
终点坐标的Y轴的值。
Button:
可能的值包括
LEFT_MOUSE_BUTTON=0
MIDDLE_MOUSE_BUTTON=1
RIGHT_MOUSE_BUTTON=2
返回值:
无
2.GetAndClearSyncFail
原型:
FunctionGetAndClearSyncFailAsLong
功能:
语法:
输入参数:
返回值:
3.KeyDown
原型:
SubKeyDown(ByValKeyAsByte)
功能:
模拟一个按键的按下并保持(相当于Win32的KEY_DOWN事件)。
语法:
object.KeyDown(key)
输入参数:
object:
Mercury.DeviceReplay对象。
key:
按键的数值码。
可查阅后面的“KeyCodes参考”。
返回值:
无
4.KeyUp
原型:
SubKeyUp(ByValKeyAsByte)
功能:
模拟通过键盘释放某个按下的按键。
语法:
object.KeyUp(key)
输入参数:
object:
Mercury.DeviceReplay对象。
key:
按键的数值码。
可查阅后面的“KeyCodes参考”。
返回值:
无
5.MouseClick
原型:
SubMouseClick(ByValxAsInteger,ByValyAsInteger,ByValButtonAsMouseButton)
功能:
在指定的屏幕位置执行鼠标左键或右键的单击操作。
语法:
object.MouseClick(x,y,Button)
输入参数:
object:
Mercury.DeviceReplay对象。
x:
屏幕坐标X轴的值。
y:
屏幕坐标Y轴的值。
Button:
可能的值包括
LEFT_MOUSE_BUTTON=0
MIDDLE_MOUSE_BUTTON=1
RIGHT_MOUSE_BUTTON=2
返回值:
无
6.MouseDblClick
原型:
SubMouseDblClick(ByValxAsInteger,ByValyAsInteger,ByValButtonAsMouseButton)
功能:
在指定的屏幕位置中执行鼠标左键或右键的双击事件。
语法:
object.MouseDblClick(x,y,Button)
输入参数:
object:
Mercury.DeviceReplay对象。
x:
屏幕坐标X轴的值。
y:
屏幕坐标Y轴的值。
Button:
可能的值包括
LEFT_MOUSE_BUTTON=0
MIDDLE_MOUSE_BUTTON=1
RIGHT_MOUSE_BUTTON=2
返回值:
无
7.MouseDown
原型:
SubMouseDown(ByValxAsInteger,ByValyAsInteger,ByValButtonAsMouseButton)
功能:
在屏幕指定位置按下鼠标左键或右键,并保持按下状态。
语法:
object.MouseDown(x,y,Button)
输入参数:
object:
Mercury.DeviceReplay对象。
x:
屏幕坐标X轴的值。
y:
屏幕坐标Y轴的值。
Button:
可能的值包括
LEFT_MOUSE_BUTTON=0
MIDDLE_MOUSE_BUTTON=1
RIGHT_MOUSE_BUTTON=2
返回值:
无
8.MouseMove
原型:
SubMouseMove(ByValxAsInteger,ByValyAsInteger)
功能:
用于模拟鼠标移动。
语法:
object.MouseMove(x,y,Button)
输入参数:
object:
Mercury.DeviceReplay对象。
x:
屏幕坐标X轴的值。
y:
屏幕坐标Y轴的值。
返回值:
9.MouseUp
原型:
SubMouseUp(ByValxAsInteger,ByValyAsInteger,ByValButtonAsMouseButton)
功能:
用于释放之前执行的MouseDown方法所按下的鼠标按键。
语法:
object.MouseUp(x,y)
输入参数:
object:
Mercury.DeviceReplay对象。
x:
屏幕坐标X轴的值。
y:
屏幕坐标Y轴的值。
Button:
可能的值包括
LEFT_MOUSE_BUTTON=0
MIDDLE_MOUSE_BUTTON=1
RIGHT_MOUSE_BUTTON=2
返回值:
无
10.PressKey
原型:
SubPressKey(ByValKeyAsByte)
功能:
模拟通过键盘按下一个按键并立即释放。
语法:
object.PressKey(key)
输入参数:
object:
Mercury.DeviceReplay对象。
key:
按键的数值码。
可查阅后面的“KeyCodes参考”。
返回值:
无
11.PressNKeys
原型:
SubPressNKeys(ByValKeyAsByte,ByValNAsInteger)
功能:
模拟通过键盘多次按下一个按键并立即释放。
语法:
object.PressNKeys(key,N)
输入参数:
object:
Mercury.DeviceReplay对象。
key:
按键的数值码。
可查阅后面的“KeyCodes参考”。
N:
重复的次数。
返回值:
无
12.SendString
原型:
SubSendString(ByValstrAsString)
功能:
向激活的窗口发送一个或多个键盘按键,就像敲击键盘一样。
语法:
object.SendString(str)
输入参数:
object:
Mercury.DeviceReplay对象。
str:
敲击的字符串。
返回值:
无
13.SetDropSyncTimeout
原型:
SubSetDropSyncTimeout(ByValnDropSyncTimeoutAsInteger)
功能:
语法:
输入参数:
返回值:
14.SetSynchronizationTimeout
原型:
SubSetSynchronizationTimeout(ByValnSyncTimeoutAsInteger,ByValis_secAsLong)
功能:
设置一个新的同步超时的时间值。
语法:
object.SetSynchronizationTimeout(nSyncTimeout,is_sec)
输入参数:
object:
Mercury.DeviceReplay对象。
nSyncTimeout:
同步超时的时间值。
is_sec:
指定设置的时间值是否以秒为单位。
返回值:
无
四.常量
1.LEFT_MOUSE_BUTTON
原型:
ConstLEFT_MOUSE_BUTTON=0
2.MIDDLE_MOUSE_BUTTON
原型:
ConstMIDDLE_MOUSE_BUTTON=1
3.RIGHT_MOUSE_BUTTON
原型:
ConstRIGHT_MOUSE_BUTTON=2
五.附录
KeyCodes参考
常量
#
描述
VK_ESCAPE
1
主要用于取消命令操作,或者从一个处理过程中退出。
VK_1
2
数字键1,与VK_SHIFT键组合将输入某个特殊字符(取决于键盘布局)。
VK_2
3
数字键2,与VK_SHIFT键组合将输入某个特殊字符(取决于键盘布局)
VK_3
4
数字键3,与VK_SHIFT键组合将输入某个特殊字符(取决于键盘布局)。
VK_4
5
数字键4,与VK_SHIFT键组合将输入某个特殊字符(取决于键盘布局)
VK_5
6
数字键5,与VK_SHIFT键组合将输入某个特殊字符(取决于键盘布局)。
VK_6
7
数字键6,与VK_SHIFT键组合将输入某个特殊字符(取决于键盘布局)。
VK_7
8
数字键7,与VK_SHIFT键组合将输入某个特殊字符(取决于键盘布局)。
VK_8
9
数字键8,与VK_SHIFT键组合将输入某个特殊字符(取决于键盘布局)。
VK_9
10
数字键9,与VK_SHIFT键组合将输入某个特殊字符(取决于键盘布局)。
VK_0
11
数字键0,与VK_SHIFT键组合将输入某个特殊字符(取决于键盘布局)。
VK_MINUS
12
减号(-)或下划线(_),(取决于键盘布局)。
VK_EQUAL
13
等号(=)或加号(+),(取决于键盘布局)。
VK_BACKSPACE
14
用于删除光标左边的字符,可通过组合单击和拖拽操作来高亮显示文本,然后单击BACKSPACE键来删除所选文本。
VK_TAB
15
TAB按键可用于在文档中设置TAB位置,移动光标到指定位置,与SHIFT键组合可以跳转到前一个TAB位置。
VK_Q
16
与SHIFT按键组合或按下CAPS-LOCK表示大写字母Q。
VK_W
17
与SHIFT按键组合或按下CAPS-LOCK表示大写字母W。
VK_E
18
与SHIFT按键组合或按下CAPS-LOCK表示大写字母E。
VK_R
19
与SHIFT按键组合或按下CAPS-LOCK表示大写字母R。
VK_T
20
与SHIFT按键组合或按下CAPS-LOCK表示大写字母T。
VK_Y
21
与SHIFT按键组合或按下CAPS-LOCK表示大写字母Y。
VK_U
22
与SHIFT按键组合或按下CAPS-LOCK表示大写字母U。
VK_I
23
与SHIFT按键组合或按下CAPS-LOCK表示大写字母I。
VK_O
24
与SHIFT按键组合或按下CAPS-LOCK表示大写字母O。
VK_P
25
与SHIFT按键组合或按下CAPS-LOCK表示大写字母P。
VK_OBRACKET
26
左中括号[或左大括号{,取决于键盘布局。
VK_CBRACKET
27
右中括号[或右大括号{,取决于键盘布局。
VK_RETURN
28
回车键用于把光标设置到下一行的开头。
也被用于完成一个命令并告诉计算机执行下一条命令。
VK_CONTROL
29
CTRL键,用于与其它按键组合来执行特定的命令,例如CRL/ALT/DEL执行系统重启命令。
VK_A
30
与SHIFT按键组合或按下CAPS-LOCK表示大写字母A。
VK_S
31
与SHIFT按键组合或按下CAPS-LOCK表示大写字母S。
VK_D
32
与SHIFT按键组合或按下CAPS-LOCK表示大写字母D。
VK_F
33
与SHIFT按键组合或按下CAPS-LOCK表示大写字母F。
VK_G
34
与SHIFT按键组合或按下CAPS-LOCK表示大写字母G。
VK_H
35
与SHIFT按键组合或按下CAPS-LOCK表示大写字母H。
VK_J
36
与SHIFT按键组合或按下CAPS-LOCK表示大写字母J。
VK_K
37
与SHIFT按键组合或按下CAPS-LOCK表示大写字母K。
VK_L
38
与SHIFT按键组合或按下CAPS-LOCK表示大写字母L。
VK_SEMICOLON
39
分号(;)或冒号(:
),取决于键盘布局。
VK_SINGLE_QUOTE
40
单引号(‘)或双引号(“),取决于键盘布局。
VK_APOSTROPHE
41
波浪号(~)或(`),取决于键盘布局。
VK_SHIFT
42
把小写字母换成大写字母,把数字换成特殊字符。
VK_PIPE
43
斜线(\)或竖线(|),取决于键盘布局。
VK_Z
44
与SHIFT按键组合或按下CAPS-LOCK表示大写字母Z。
VK_X
45
与SHIFT按键组合或按下CAPS-LOCK表示大写字母X。
VK_C
46
与SHIFT按键组合或按下CAPS-LOCK表示大写字母C。
VK_V
47
与SHIFT按键组合或按下CAPS-LOCK表示大写字母V。
VK_B
48
与SHIFT按键组合或按下CAPS-LOCK表示大写字母B。
VK_N
49
与SHIFT按键组合或按下CAPS-LOCK表示大写字母N。
VK_M
50
与SHIFT按键组合或按下CAPS-LOCK表示大写字母M。
VK_COMMA
51
逗号(,)或左尖括号(<),取决于键盘布局。
VK_DOT
52
点号(.)或右尖括号(>),取决于键盘布局。
VK_SLASH
53
反斜杠号(/)或问号(?
),取决于键盘布局。
VK_RSHIFT
54
把小写字母换成大写字母,把数字换成特殊字符。
VK_MULTIPLY
55
乘号(*)
VK_MENU
56
用于与其它键组合输入关键字。
也用于组合数字键盘上的按键来输入ASCII码。
VK_ALT
56
Alt按键的值也是56.
VK_SPACE
57
空格键
VK_CAPITAL
58
CAPSLOCK键
VK_F1
59
在DOS时代,F1通常用于调出帮助菜单,显示帮助信息。
在Windows操作系统中也作为显示帮助信息的热键。
VK_F2
60
在Windows中可用于重命名、高亮显示文件夹或文件并输入新的名字。
VK_F3
61
在Windows中可用于查找文件。
VK_F4
62
在IE中可以按F4打开地址栏,组合ALT和F4将关闭窗口。
VK_F5
63
刷新按钮。
VK_F6
64
把光标移动到程序的其它可停留的位置。
VK_F7
65
在Windows中F7没有任何功能,在某些程序中可能会用上,可以打开程序的帮助文档查看F7的功能。
VK_F8
66
在计算机启动过程中可以使用F8来进入安全模式。
VK_F9
67
在Windows中F9没有任何功能,在某些程序中可能会用上,可以打开程序的帮助文档查看F7的功能。
VK_F10
68
在很多程序中F10被用于激活菜单栏,可以使用F10来定位到第一个菜单选择项,然后用方向键来移动并选择菜单。
组合SHIFT键与F10将打开快捷菜单,相当于右键弹出菜单。
VK_NUMLOCK
69
允许数字键盘中的数字按键可用,而不是光标控制键可用。
按下一次NUMLOCK键,则激活NUMLOCK,并且键盘板上的灯会亮;再按一次NUMLOCK键则回到正常模式。
VK_SCROLL
70
在某些程序中能控制光标控制键。
很多应用程序忽略这个设置。
按下一次ScrollLock键将激活ScrollLock模式,并且键盘板上相应的灯会亮;再按一次ScrollLock键则回到正常模式。
VK_HOME
71
把光标移动到当前行的开头。
VK_NUMPAD7
71
只有VK_NUMLOCK被按下时才生效。
VK_UP
72
向上键
VK_NUMPAD8
72
只有VK_NUMLOCK被按下时才生效。
VK_PRIOR
73
把光标移动到上一页。
VK_NUMPAD9
73
只有VK_NUMLOCK被按下时才生效。
VK_SUBTRACT
74
减号键。
VK_LEFT
75
向左键。
VK_NUMPAD4
75
只有VK_NUMLOCK被按下时才生效。
VK_CLEAR
76
VK_NUMPAD5
76
只有VK_NUMLOCK被按下时才生效。
VK_RIGHT
77
向右键。
VK_NUMPAD6
77
只有VK_NUMLOCK被按下时才生效。
VK_ADD
78
加号键。
VK_END
79
移动光标到当前行的最后。
VK_NUMPAD1
79
只有VK_NUMLOCK被按下时才生效。
VK_DOWN
80
向下键。
VK_NUMPAD2
80
只有VK_NUMLOCK被按下时才生效。
VK_NEXT
81
移动光标到下一页。
VK_NUMPAD3
81
只有VK_NUMLOCK被按下时才生效。
VK_INSERT
82
在一行文本中插入字符,每插入一个字符,剩下的文字向右移动一个光标位置。
VK_NUMPAD0
82
只有VK_NUMLOCK被按下时才生效。
VK_DELETE
83
在一行文本中删除一个字符,每删除一个字符,剩下的文字向左移动一个光标位置。
VK_SNAPSHOT
84
打印屏幕。
VK_BACKSLASH
86
斜杠号(\)。
VK_F11
87
在IE中按下F11会把窗口打开到全屏状态,并且把工具栏隐藏以便查看更多的信息,再次按下F11则回到正常状态。
VK_F12
88
在Windows中F12没有任何功能,在某些程序中可能会用上,可以打开程序的帮助文档查看F7的功能。
VK_NUMPAD5
89
VK_ZOOM
98
VK_HELP
99
VK_F13
100
VK_F14
101
VK_F15
102
VK_F16
103
VK_F17
104
VK_F18
105
VK_F19
106
VK_F20
107
VK_F21
108
VK_F22
109
VK_F23
110
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QTP DeviceReplay 对象 小结