QTP 利用 VBS 的 SendKeys 模拟键盘操作
(2011-05-11 16:33:56)
转载▼
标签:
分类: QTP 笔记
杂谈
先说一下使用方法
Set wshShell = CreateObject(“WScript.Shell”)
wshShell.Sendkeys string
下面着重说一下 string 的值应该怎么写
1. 基本键:一般来说,要发送的按键指令都可以直接用该按键字符本身来表示,例如要发送字母“a”,使用
wshShell.Sendkeys “a”,如果要发送字符串“happy”,可以使用 WshShell.SendKeys “happy”。
2. 特殊功能键:对于需要与 Shift、Ctrl、Alt 三个控制键组合的按键,SendKeys 使用特殊字符来表示:Shift —
+;Ctrl — ^;Alt — %
如要发送的组合按键是同时按下 Ctrl+E,您只需这样写 WshShell.SendKeys “^e”
如果要发送的组合按键是按住 Ctrl 键的同时按下 E 与 C 两个键,这时应使用小括号把字母键括起来,书写格式
为 WshShell.SendKeys “^(ec)”,这里要注意它与 WshShell.SendKeys “^ec”的区别,后者表示组合按键
是同时按住 Ctrl 和 E 键,然后松开 Ctrl 键,单独按下“C”字母键。
由于“+”、“^”这些字符用来表示特殊的控制按键了,如何表示这些按键呢?只要用大括号括住这些字符即
可。例如,要发送加号“+”,可使用 WshShell.SendKeys “{+}”。
另外对于一些不会生成字符的控制功能按键,也同样需要使用大括号括起来按键的名称,例如
wshShell.SendKeys “{Tab}” ‘模拟 tab 键
wshShell.SendKeys “{Enter}” ‘模拟回车键
WshShell.SendKeys “{DOWN}” ‘模拟向下的方向键
如果需要发送多个重复的单字母按键,不必重复输入该字母,SendKeys 允许使用简化格式进行描述,使用格式
为”{按键数字}”。例如要发送 10 个字母“x”,则输入 WshShell.SendKeys “{x 10}”即可
PS:那个有 window 图标键相当于按下 ctrl+esc
大家可以模拟按下这两个键来代替按下 window 键。
比如打开运行窗口,详细代码如下:
Set WshShell=CreateObject("WScript.Shell")
WshShell.Sendkeys "^{ESC}R"
举例:
'=======================定时保存功能==========================================
Dim WshShell, autoSaveTime,TXTFileName
AutoSaveTime=10
Set WshShell=CreateObject("WScript.Shell")
TXTFileName=InputBox("请输入你要创建的文件名(不能用中文和纯数字)")
WshShell.Run "notepad"
wait 2
WshShell.AppActivate "无标题 - 记事本"
WshShell.SendKeys "^s"
wait 2
WshShell.SendKeys TXTFileName
WshShell.SendKeys "%s"
wait AutoSaveTime
While WshShell.AppActivate(TXTFileName)=true
WshShell.SendKeys "^s"
wait AutoSaveTime
Wend
Set WshShell = Nothing
WScript.Quit
'=======================定时保存功能==========================================
'=================== 定时关机==================
Dim WshShell
Set WshShell=CreateObject("WScript.Shell")
wait 2
WshShell.Run "shutdown -r -t 120" '120 秒后关机
wait 30
WshShell.Run "shutdown -a" ‘取消关机
'=================== 定时关机==================
from:http://www.threes.cn/?p=613