My.Computer.Keyboard.SendKeys 方法
更新:2007 年 11 月
向活动窗口发送一个或多个击键,就像在键盘上键入一样。
' Usage
My.Computer.Keyboard.SendKeys(keys)
My.Computer.Keyboard.SendKeys(keys ,wait)
' Declaration
Public Sub SendKeys( _
ByVal keys As String _
)
' -or-
Public Sub SendKeys( _
ByVal keys As String, _
ByVal wait As Boolean _
)
参数
keys
定义要发送键的 String。wait
可选项。Boolean,它指定是否等待击键处理完毕,然后再继续运行应用程序。默认为 True。
异常
下面的情况可能会导致异常:
- 存在部分信任的情况,此时用户缺少足够的权限 (SecurityException)。
备注
My.Computer.Keyboard.SendKeys 方法提供的功能与 Send 和 SendWait 方法提供的功能类似。
如果只有在其他应用程序完成后才能继续运行您的应用程序,则可使用 wait 参数。
说明: |
---|
因为没有用于激活其他应用程序的托管方法,所以可以在当前应用程序中使用该类,手动选择要发送键的目标窗口;也可以使用 Windows API 方法(如 FindWindow 和 SetForegroundWindow)强制焦点置于其他应用程序上。有关更多信息,请参见演练:调用 Windows API。 |
keys 参数可以指定任何单键,也可以指定这些键与 Alt、Ctrl 或 Shift 形成的组合键(或这些键的任何组合)。每个键都由一个或多个字符表示,例如,a 表示字符“a”,{ENTER} 表示 Enter 键。
要将某个键与 Shift 组合,请在键代码前加 +(加号)。要将某个键与 Ctrl 组合,请在键代码前加 ^(插入符号)。要将某个键与 Alt 组合,请在键代码前加 %(百分号)。要指定重复键,请使用 {key number} 的格式。必须在 key 与 number 之间加一个空格。例如,{LEFT 42} 表示“按向左键 42 次”;{h 10} 表示“按‘h’10 次”。
下表列出可用来指定某些字符的代码,按对应的键(如 Enter 或 Tab)时,这些字符不会显示在屏幕上。
键 |
代码 |
---|---|
Backspace |
{BACKSPACE} 或 {BS} |
Break |
{BREAK} |
Caps Lock |
{CAPSLOCK} |
Clear |
{CLEAR} |
Delete |
{DELETE} 或 {DEL} |
向下键 |
{DOWN} |
End |
{END} |
Enter(数字键盘) |
{ENTER} |
Enter |
~ |
Esc |
{ESCAPE} 或 {ESC} |
Help |
{HELP} |
Home |
{HOME} |
Ins 键 |
{INSERT} |
向左键 |
{LEFT} |
Num Lock |
{NUMLOCK} |
Page Down |
{PGDN} |
Page Up |
{PGUP} |
Return |
{RETURN} |
向右键 |
{RIGHT} |
Scroll Lock |
{SCROLLLOCK} |
Tab |
{TAB} |
向上键 |
{UP} |
F1 至 F15 |
{F1} 至 {F15} |
示例
此示例使用 My.Computer.Keyboard.SendKeys 方法向 Shell 函数启动的外部应用程序 Calculator 应用程序发送击键。
Dim ProcID As Integer
' Start the Calculator application, and store the process id.
ProcID = Shell("CALC.EXE", AppWinStyle.NormalFocus)
' Activate the Calculator application.
AppActivate(ProcID)
' Send the keystrokes to the Calculator application.
My.Computer.Keyboard.SendKeys("22", True)
My.Computer.Keyboard.SendKeys("*", True)
My.Computer.Keyboard.SendKeys("44", True)
My.Computer.Keyboard.SendKeys("=", True)
' The result is 22 * 44 = 968.
如果找不到具备所请求进程标识符的应用程序,将引发 ArgumentException 异常。
对 Shell 函数的调用要求完全信任(SecurityException 类)。
要求
命名空间:Microsoft.VisualBasic.Devices
类:Keyboard
**程序集:**Visual Basic Runtime Library(位于 Microsoft.VisualBasic.dll 中)
按项目类型列出可用性
项目类型 |
可用 |
---|---|
Windows 应用程序 |
是 |
类库 |
是 |
控制台应用程序 |
是 |
Windows 控件库 |
是 |
Web 控件库 |
否 |
Windows 服务 |
是 |
网站 |
否 |
权限
以下权限可能是必需的:
权限 |
说明 |
---|---|
控制访问文件和文件夹的能力。关联的枚举:Unrestricted。 |
|
控制与用户界面和剪贴板相关的权限。关联的枚举:AllWindows。 |