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 方法提供的功能与 SendSendWait 方法提供的功能类似。

如果只有在其他应用程序完成后才能继续运行您的应用程序,则可使用 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 服务

网站

权限

以下权限可能是必需的:

权限

说明

FileIOPermission

控制访问文件和文件夹的能力。关联的枚举:Unrestricted

UIPermission

控制与用户界面和剪贴板相关的权限。关联的枚举:AllWindows

有关更多信息,请参见代码访问安全性请求权限

请参见

任务

演练:调用 Windows API

参考

My.Computer.Keyboard 对象

Send

SendWait

Keyboard.SendKeys