Skip to content

SendKeys

向活动窗口发送一个或多个按键,如同从键盘输入。

语法:SendKeys string [ , wait ]

string
必需 字符串表达式,指定要发送的按键。
wait
可选 Boolean,指定等待模式。如果为False(默认),按键入队后控制权立即返回给过程。如果为True,必须在接收窗口处理完按键后控制权才返回。

每个键由一个或多个字符表示。要指定单个键盘字符,使用字符本身——例如"A"表示字母A,或"ABC"表示依次输入A、B、C。

加号(+)、脱字符(^)、百分号(%)、波浪号(~)和括号( )SendKeys有特殊含义。要发送这些字符本身,请用大括号括起来:例如"{+}"表示加号。方括号[ ]SendKeys本身没有特殊含义,但必须用大括号括起来,因为其他应用程序在动态数据交换(DDE)期间可能特殊处理它们。要发送大括号字符,使用"{​{""{}​}"

要发送不对应可打印字符的键,使用下表中的代码:

代码
BACKSPACE{BACKSPACE}{BS}{BKSP}
BREAK{BREAK}
CAPS LOCK{CAPSLOCK}
DEL或DELETE{DELETE}{DEL}
下箭头{DOWN}
END{END}
ENTER{ENTER}~
ESC{ESC}
HELP{HELP}
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--F16{F1}{F16}

要将键与SHIFT、CTRL或ALT组合,请在键代码前加上以下一个或多个修饰符代码:

代码
SHIFT+
CTRL^
ALT%

要在按下一系列键时保持一个或多个修饰键按下,请将键用括号括起来。例如,"+(EC)"在按E和C时保持SHIFT按下。

要重复按键,使用{key number}形式——例如"{LEFT 42}"按LEFT 42次,或"{h 10}"输入h十次。keynumber之间的空格是必需的。

INFO

SendKeys无法向不在Windows中运行的应用程序发送按键,也不能向任何应用程序发送PRINT SCREEN键({PRTSC})。

示例

本示例使用Shell启动Windows计算器,并使用SendKeys控制它:将1到100的数字相加,取累计值,然后用ALT+F4关闭计算器。由于AppActivate会更改焦点,示例必须运行而非单步执行。

vb
Dim TaskId As Double, I As Long
TaskId = Shell("CALC.EXE", vbNormalFocus)
AppActivate TaskId

For I = 1 To 100
    SendKeys I & "{+}", True
Next I

SendKeys "=", True
SendKeys "%{F4}", True

另请参阅

twinBASIC及其LOGO版权为作者"韦恩"所有