SendKeys.Send(String) メソッド

定義

キーストロークをアクティブなアプリケーションに送信します。

public:
 static void Send(System::String ^ keys);
public static void Send (string keys);
static member Send : string -> unit
Public Shared Sub Send (keys As String)

パラメーター

keys
String

送信するキーストロークの文字列。

例外

キーストロークの送信先となるアクティブなアプリケーションはありません。

keys は有効なキーストロークを表していません。

次のコード例は、このメソッドの使用方法を Send 示しています。この例を実行するには、Button1 というボタンを含む Form1 というフォームに次のコードを貼り付けます。 この例では、Click イベントがイベント処理メソッドに関連付けられていることを確認します。 ボタン コントロールの 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

注釈

各キーは、1 つ以上の文字で表されます。 1 つのキーボード文字を指定するには、文字自体を使用します。 たとえば、文字 A を表すには、文字列 "A" をメソッドに渡します。 複数の文字を表すには、その前の文字に各追加文字を追加します。 文字 A、B、C を表すには、パラメーターを "ABC" として指定します。

プラス記号 (+)、キャレット (^)、パーセント記号 (%)、チルダ (~)、かっこ () には特別な意味があります SendKeys。 これらの文字のいずれかを指定するには、中かっこ ({}) で囲みます。 たとえば、正符号を指定するには、"{+}" を使用します。 中かっこ文字を指定するには、"{{}" と "}" を{}使用します。 角かっこ ([ ]) には特別な意味 SendKeysはありませんが、中かっこで囲む必要があります。 他のアプリケーションでは、動的データ交換 (DDE) が発生した場合に大きな意味を持つ可能性がある特別な意味があります。

注意事項

アプリケーションが国際対応し、さまざまなキーボードの使用を想定している場合は、 Send の使用により予期しない結果になる可能性があるため、回避する必要があります。

Enter キーや Tab キーなど、キーを押したときに表示されない文字と、文字ではなくアクションを表すキーを指定するには、次の表のコードを使用します。

Key コード
BackSpace {BACKSPACE}、{BS}、または {BKSP}
BREAK {BREAK}
CapsLock {CAPSLOCK}
DEL または DELETE {DELETE} または {DEL}
下方向キー {DOWN}
End {END}
Enter {ENTER}または ~
Esc {ESC}
HELP {HELP}
ホーム {HOME}
INS または INSERT {INSERT} または {INS}
{LEFT}
NUM LOCK {NUMLOCK}
PageDown {PGDN}
PageUp {PGUP}
印刷画面 {PRTSC}(将来の使用のために予約済み)
{RIGHT}
スクロール ロック {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 キーの任意の組み合わせと組み合わせてキーを指定するには、キー コードの前に次のコードの 1 つ以上を指定します。

Key コード
Shift +
CTRL ^
Alt %

Shift、Ctrl、Alt の任意の組み合わせを押しながら他のいくつかのキーを押すように指定するには、それらのキーのコードをかっこで囲みます。 たとえば、E キーと C キーを押しながら Shift キーを押す場合は、"+(EC)" を使用します。 E キーを押しながら Shift キーを押し続け、その後に C キーを押したまま Shift キーを押す場合は、"+EC" を使用します。

繰り返しキーを指定するには、{key number} という形式を使用します。 キーと数値の間にスペースを入れる必要があります。 たとえば、{LEFT 42} は左方向キーを 42 回押します。{h 10} は H を 10 回押すという意味です。

注意

別のアプリケーションをアクティブ化するマネージド メソッドがないため、現在のアプリケーション内でこのクラスを使用するか、ネイティブ Windows メソッド (たとえば、他のアプリケーションに強制的に集中させる) FindWindow SetForegroundWindowを使用できます。

注意

.NET Framework 3.0 の SendKeys クラスが更新され、Windows Vista で実行されるアプリケーションで使用できるようになりました。 Windows Vista の強化されたセキュリティ、(ユーザー アカウント制御または UAC と呼ばれます) により、前の実装は想定どおり機能できません。

SendKeys クラスはタイミングの問題が発生する可能性があり、一部の開発者は回避策を取る必要がありました。 更新された実装は、引き続きタイミングの問題が発生する可能性がありますが、速度が少し向上し、回避策の変更が必要となる可能性があります。 SendKeys クラスは、最初に前の実装を使用しようとし、失敗した場合に、新しい実装を使用します。 その結果、 SendKeys クラスが別のオペレーティング システムと異なる動作を取る可能性があります。 さらに、 SendKeys クラスは、新しい実装を使用した場合、 SendWait メソッドが別のプロセスに送信されたときにメッセージの処理を待機しません。

アプリケーションが、オペレーティング システムに関係なく一貫した動作に依存する場合、app.config ファイルに次のアプリケーション設定を追加することで、 SendKeys クラスが新しい実装を使用するよう強制することができます。

<appSettings>

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

</appSettings>

SendKeys クラスが前の実装を使用するよう強制するには、代わりに値 "JournalHook" を使用します。

適用対象