【BAT】VBS中 “SendKeys” 作用
SendKeys
是 Visual Basic
中的一个编程语句,可将一个或多个按键消息发送到活动窗口,如同用键盘进行输入一样。发送某些特殊字符时须用一对大括号(“{}”)围起来
,某些特殊按键要使用专用代码,也可设置为各类组合键。
语法
SendKeys string[, wait]
参数意义
-
string
部分必需的,字符串表达式,指定要发送的按键消息。 -
Wait
可选的,指定等待方式的值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程;如果为 True,则按键消息必须在控件返回到过程之前加以处理。说明每个按键由一个或多个字符表示。
用法
-
1)
为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 “A” 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用 “ABC” 作为 string。 -
2)
对 SendKeys 来说,加号+ 、插入符^ 、百分号% 、上划线~ 及圆括号( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号{}当中。例如,要指定正号,可用 {+} 表示。为了指定大括号字符,请使用 {{} 及 {}}。方括号 [ ] 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。 -
3)
为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键,请使用下列代码:
按键 | 代码 |
---|---|
BACKSPACE | {BACKSPACE}, {BS}或{BKSP} |
BREAK | {BREAK} |
CAPS LOCK | {CAPSLOCK} |
DEL or DELETE | {DELETE} 或 {DEL} |
ENTER | {ENTER}或 ~ |
ESC | {ESC} |
NUM LOCK | {NUMLOCK} |
SCROLL LOCK | {SCROLLLOCK} |
UP ARROW | {UP} |
DOWN ARROW | {DOWN} |
LEFT ARROW | {LEFT} |
RIGHT ARROW | {RIGHT} |
END | {END} |
HOME | {HOME} |
INS or INSERT | {INSERT} 或 {INS} |
PAGE DOWN | {PGDN} |
PAGE UP | {PGUP} |
PRINT SCREEN | {PRTSC} |
WIN | ^{ESC} |
TAB | {TAB} |
HELP | {HELP} |
F1 | {F1} |
F2 | {F2} |
F3 | {F3} |
F4 | {F4} |
F5 | {F5} |
F6 | {F6} |
F7 | {F7} |
F8 | {F8} |
F9 | {F9} |
F10 | {F10} |
F11 | {F11} |
F12 | {F12} |
注意:如果要输出空格可以这样编写程序:“sendkeys(" “)”
- 4)为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:
按键 | 代码 |
---|---|
SHIFT | + |
CTRL | ^ |
ALT | % |
- 5)为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 “+(EC)”。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 “+EC”。
- 6)为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。
注意:
SendKeys 不能将按键消息发送到这样一个应用程序——这个应用程序并没有被设计成在 Microsoft Windows 中运行。
Sendkeys 也无法将PRINT SCREEN 按键发送到任何应用程序。
示例
set WshShell = WScript.CreateObject("WScript.Shell") '调用
WScript.Sleep 100 '延时0.1秒
WshShell.SendKeys "ABCD" '顺序发送ABCD四个键
初学者实例:
Private Sub Command1_Click() ‘command1的单击(click)事件过程
SendKeys("{ENTER}") '发送回车键
End Sub ’事件结束