Keyboard.SendKeys 方法

定义

向活动窗口发送一个或多个键击,就像在键盘键入一样。

重载

SendKeys(String)

向活动窗口发送一个或多个键击,就像在键盘键入一样。

SendKeys(String, Boolean)

向活动窗口发送一个或多个键击,就像在键盘键入一样。

SendKeys(String)

向活动窗口发送一个或多个键击,就像在键盘键入一样。

public:
 void SendKeys(System::String ^ keys);
public void SendKeys (string keys);
member this.SendKeys : string -> unit
Public Sub SendKeys (keys As String)

参数

keys
String

一个 String,定义要发送的键。

例外

存在部分信任的情况,此时用户缺少足够的权限。

示例

此示例使用 My.Computer.Keyboard.SendKeys 方法将击键发送到由 Shell 方法启动的外部应用程序记事本应用程序。

Dim ProcID As Integer
' Start the Notepad application, and store the process id.
ProcID = Shell("NOTEPAD.EXE", AppWinStyle.NormalFocus)
' Activate the Notepad application.
AppActivate(ProcID)
' Send the keystrokes to the Notepad application.
My.Computer.Keyboard.SendKeys("I ", True)
My.Computer.Keyboard.SendKeys("♥", True)
My.Computer.Keyboard.SendKeys(" Visual Basic!", True)
' The sentence I ♥ Visual Basic! is printed on Notepad.

如果找不到具有请求的进程标识符的应用程序,则会引发 ArgumentException 异常。

Shell调用 方法需要完全信任 (SecurityException 类) 。

注解

方法 My.Computer.Keyboard.SendKeys 提供的功能类似于 SendSendWait 方法。

如果另一个应用程序必须完成,然后应用程序才能继续,则 wait 参数非常有用。

注意

由于没有用于激活其他应用程序的托管方法,因此可以在当前应用程序中使用此类,手动选择要向其发送密钥的窗口,或使用 Windows API 方法(如 FindWindowSetForegroundWindow)强制将焦点放在其他应用程序上。 有关详细信息,请参阅演练:调用 Windows API

参数 keys 可以指定任何单个键或与 ALT、CTRL 或 SHIFT (组合的任何键,或者这些键的任意组合) 。 每个键由一个或多个字符表示,例如 a 字符“a”或 {ENTER} ENTER 键。

若要将键与 SHIFT 组合在一起,请在键代码前面加上 + (加号) 。 若要将键与 CTRL 结合使用,请在键代码前面加上 ^ (插入点) 。 若要将键与 Alt 组合在一起,请在键代码前面加上 % (百分号) 。 若要指定重复键,请使用表单 {键号}。 必须在 数字之间放置空格。 例如, {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 ~
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}

可用性(按项目类型)

项目类型 可用
Windows 应用程序
类库
控制台应用程序
Windows 控件库
Web 控件库
Windows 服务
网站

另请参阅

适用于

SendKeys(String, Boolean)

向活动窗口发送一个或多个键击,就像在键盘键入一样。

public:
 void SendKeys(System::String ^ keys, bool wait);
public void SendKeys (string keys, bool wait);
member this.SendKeys : string * bool -> unit
Public Sub SendKeys (keys As String, wait As Boolean)

参数

keys
String

一个 String,定义要发送的键。

wait
Boolean

可选。 一个 Boolean 值,指定在应用程序继续之前是否等待键击处理完成。 默认值为 True

例外

存在部分信任的情况,此时用户缺少足够的权限。

示例

此示例使用 My.Computer.Keyboard.SendKeys 方法将击键发送到由 Shell 方法启动的外部应用程序记事本应用程序。

Dim ProcID As Integer
' Start the Notepad application, and store the process id.
ProcID = Shell("NOTEPAD.EXE", AppWinStyle.NormalFocus)
' Activate the Notepad application.
AppActivate(ProcID)
' Send the keystrokes to the Notepad application.
My.Computer.Keyboard.SendKeys("I ", True)
My.Computer.Keyboard.SendKeys("♥", True)
My.Computer.Keyboard.SendKeys(" Visual Basic!", True)
' The sentence I ♥ Visual Basic! is printed on Notepad.

如果找不到具有请求的进程标识符的应用程序,则会引发 ArgumentException 异常。

Shell调用 方法需要完全信任 (SecurityException 类) 。

注解

方法 My.Computer.Keyboard.SendKeys 提供的功能类似于 SendSendWait 方法。

如果另一个应用程序必须完成,然后应用程序才能继续,则 wait 参数非常有用。

注意

由于没有用于激活其他应用程序的托管方法,因此可以在当前应用程序中使用此类,手动选择要向其发送密钥的窗口,或使用 Windows API 方法(如 FindWindowSetForegroundWindow)强制将焦点放在其他应用程序上。 有关详细信息,请参阅演练:调用 Windows API

参数 keys 可以指定任何单个键或与 ALT、CTRL 或 SHIFT (组合的任何键,或者这些键的任意组合) 。 每个键由一个或多个字符表示,例如 a 字符“a”或 {ENTER} ENTER 键。

若要将键与 SHIFT 组合在一起,请在键代码前面加上 + (加号) 。 若要将键与 CTRL 结合使用,请在键代码前面加上 ^ (插入点) 。 若要将键与 Alt 组合在一起,请在键代码前面加上 % (百分号) 。 若要指定重复键,请使用表单 {键号}。 必须在 数字之间放置空格。 例如, {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 ~
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}

可用性(按项目类型)

项目类型 可用
Windows 应用程序
类库
控制台应用程序
Windows 控件库
Web 控件库
Windows 服务
网站

另请参阅

适用于