SendKeys 类

定义

提供将键击发送到应用程序的方法。

public ref class SendKeys
public class SendKeys
type SendKeys = class
Public Class SendKeys
继承
SendKeys

示例

下面的代码示例演示如何使用 Send 方法。 若要运行该示例,请将以下代码粘贴到名为 Form1 的窗体中,其中包含名为 Button1 的按钮。 确保单击事件与此示例中的事件处理方法相关联。 按钮控件 TabIndex 的属性应设置为 0。 当示例正在运行时,双击窗体以触发按钮的单击事件。

private:
   // Clicking Button1 causes a message box to appear.
   void Button1_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      MessageBox::Show( "Click here!" );
   }

   // Use the SendKeys.Send method to raise the Button1 click event 
   // and display the message box.
   void Form1_DoubleClick( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      
      // Send the enter key; since the tab stop of Button1 is 0, this
      // will trigger the click event.
      SendKeys::Send( "{ENTER}" );
   }

// Clicking Button1 causes a message box to appear.
private void Button1_Click(System.Object sender, System.EventArgs e)
{
    MessageBox.Show("Click here!");
}

// Use the SendKeys.Send method to raise the Button1 click event 
// and display the message box.
private void Form1_DoubleClick(object sender, System.EventArgs e)
{

    // Send the enter key; since the tab stop of Button1 is 0, this
    // will trigger the click event.
    SendKeys.Send("{ENTER}");
}

' Clicking Button1 causes a message box to appear.
Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
    MessageBox.Show("Click here!")
End Sub


' Use the SendKeys.Send method to raise the Button1 click event 
' and display the message box.
Private Sub Form1_DoubleClick(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.DoubleClick

    ' Send the enter key; since the tab stop of Button1 is 0, this
    ' will trigger the click event.
    SendKeys.Send("{ENTER}")
End Sub

注解

用于 SendKeys 将击键和击键组合发送到活动应用程序。 此类无法实例化。 若要将击键发送到类,并立即继续执行程序流,请使用 Send。 若要等待击键启动的任何进程,请使用 SendWait

每个键由一个或多个字符表示。 若要指定单个键盘字符,请使用字符本身。 例如,若要表示字母 A,请将字符串“A”传递给该方法。 若要表示多个字符,请将每个附加字符追加到前面一个字符。 若要表示字母 A、B 和 C,请将参数指定为“ABC”。

加号 (+) 、 (插入符号 ^) 、百分号 (%) 、平铺 (~) ,括号 () 具有特殊含义 SendKeys。 若要指定其中一个字符,请将它括在大括号 ({}) 中。 例如,若要指定加号,请使用“{+}”。 若要指定大括号字符,请使用“{{}”和“{}}”。 括号 ([ ]) 没有特殊意义 SendKeys,但你必须将它们括在大括号中。 在其他应用程序中,括号具有特殊含义,当动态数据交换 (DDE) 发生时,这些含义可能很重要。

注意

如果你的应用程序旨在用于全球各种键盘,使用 Send 可能会产生不可预知的结果,应当避免。

若要指定在按下键(如 ENTER 或 TAB)时未显示的字符,以及表示操作而不是字符的键,请使用下表中的代码。

代码
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}
打印屏幕 {PRTSC} (保留供将来使用)
向右键 {RIGHT}
Scroll Lock {SCROLLLOCK}
Tab {TAB}
向上键 {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
小键盘加 {ADD}
小键盘减 {SUBTRACT}
小键盘乘 {MULTIPLY}
小键盘除 {DIVIDE}

若要指定键与 SHIFT、CTRL 和 ALT 键的任意组合,请在键代码前面加上以下代码中的一个或多个。

代码
SHIFT +
Ctrl ^
ALT %

若要指定应按住 SHIFT、Ctrl 和 ALT 的任何组合,同时按下其他几个键,请将这些键的代码括在括号中。 例如,若要指定在按下 E 和 C 时按住 SHIFT,请使用“+ (EC) ”。 若要指定在按下 E 时按住 SHIFT,后跟不带 SHIFT 的 C,请使用“+EC”。

若要指定重复键,请使用 {key number} 格式。 必须在键和数字之间放置空格。 例如,{LEFT 42} 表示按向左键 42 次;{h 10} 表示按 H 10 次。

备注

由于没有激活另一个应用程序的托管方法,因此可以在当前应用程序中使用此类,也可以使用本机Windows方法(例如FindWindow,以及SetForegroundWindow)强制关注其他应用程序。

备注

SendKeys 类已更新为 .NET Framework 3.0,从而可用于在 Windows Vista 上运行的应用程序。 Windows Vista 增强的安全性(称为用户帐户控件或 UAC)可避免以前的实现按预期运行。

SendKeys 类容易遭受某些开发人员不得不解决的计时问题。 更新后的实现仍然容易遇到计时问题,但速度稍微快一些,并且可能需要更改解决方法。 SendKeys 类先尝试使用以前的实现,失败后再使用新的实现。 因此, SendKeys 类在不同操作系统上的运行方式可能不同。 此外,当 SendKeys 类使用新的实现时, SendWait 方法不会等到消息被处理后才将其发送至其他进程。

如果如论使用何种操作系统,你的应用程序均依赖于一致的行为,则可通过将以下应用程序设置添加至 app.config 文件强制执行 SendKeys 类以使用新的实现。

<appSettings>

<add key="SendKeys" value="SendInput"/>

</appSettings>

若要强制执行 SendKeys 类以使用以前的实现,请改用 "JournalHook" 值。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Flush()

处理消息队列中当前的所有 Windows 消息。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
Send(String)

向活动应用程序发送击键。

SendWait(String)

向活动应用程序发送给定的键,然后等待消息被处理。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于