SendKeys.Send(String) SendKeys.Send(String) SendKeys.Send(String) SendKeys.Send(String) Method

Definition

キーストロークをアクティブなアプリケーションに送信します。 Sends keystrokes to the active application.

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 String String String

送信するキーストロークの文字列。 The string of keystrokes to send.

Exceptions

キーストロークの送信先となるアクティブなアプリケーションはありません。 There is not an active application to send keystrokes to.

keys が有効なキーストロークを表していません。 keys does not represent valid keystrokes

Examples

次のコード例は、使用する方法を示します、Sendメソッド。例を実行するには、次のコードを貼り付け Form1 という名前のフォームに Button1 というボタンを配置します。The following code example demonstrates how to use the Send method.To run the example, paste the following code in a form called Form1 containing a button called Button1. この例ではイベント処理メソッドに関連付けられているクリック イベントを確認します。Ensure the click events are associated with their event-handling methods in this example. ボタン コントロールのTabIndexプロパティを 0 に設定する必要があります。The button control's TabIndex property should be set to 0. 例が実行されている場合は、ボタンのクリックをトリガーするフォームをダブルクリックしてイベント。When the example is running, double-click the form to trigger the button's click event.

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

Remarks

各キーは、1 つまたは複数の文字で表されます。Each key is represented by one or more characters. 1 つのキーボード文字を指定するには、文字そのものを使用します。To specify a single keyboard character, use the character itself. たとえば、文字 A を表す、文字列"A"でメソッドに渡します。For example, to represent the letter A, pass in the string "A" to the method. 1 つ以上の文字を表現するには、前に各追加の文字を追加します。To represent more than one character, append each additional character to the one preceding it. 文字 A、B、C を表現するには、"ABC"として、パラメーターを指定します。To represent the letters A, B, and C, specify the parameter as "ABC".

プラス記号 (+)、キャレット (^)、パーセント記号 (%)、チルダ (~)、およびかっこ () は、特別な意味を持つSendKeysします。The plus sign (+), caret (^), percent sign (%), tilde (~), and parentheses () have special meanings to SendKeys. これらの文字のいずれかを指定する中かっこで囲みます ({})。To specify one of these characters, enclose it within braces ({}). たとえば、プラス記号を指定するには、「{+}」を使用します。For example, to specify the plus sign, use "{+}". 中かっこ文字を指定するには、次のように使用します。"{{}"と"{}}"。To specify brace characters, use "{{}" and "{}}". 角かっこ () に特別な意味があるないSendKeys、中かっこで囲む必要がありますが、します。Brackets ([ ]) have no special meaning to SendKeys, but you must enclose them in braces. 他のアプリケーションでは角かっこは可能性のある重要なダイナミック データ エクス (チェンジ DDE) が発生したときに特別な意味になります。In other applications, brackets do have a special meaning that might be significant when dynamic data exchange (DDE) occurs.

注意事項

アプリケーションが国際対応し、さまざまなキーボードの使用を想定している場合は、 Send の使用により予期しない結果になる可能性があるため、回避する必要があります。If your application is intended for international use with a variety of keyboards, the use of Send could yield unpredictable results and should be avoided.

」と入力やタブ文字ではなく、動作を表すキーなどのキーを押すと表示されていない文字を指定するには、次の表に、コードを使用します。To specify characters that aren't displayed when you press a key, such as ENTER or TAB, and keys that represent actions rather than characters, use the codes in the following table.

キーKey コードCode
BACKSPACE キーBACKSPACE {BACKSPACE} {BS} または {BKSP}{BACKSPACE}, {BS}, or {BKSP}
BREAKBREAK {0} を中断しました{BREAK}
キャップス ロックですCAPS LOCK {CAPSLOCK}{CAPSLOCK}
DEL または削除DEL or DELETE {削除} または {DEL}{DELETE} or {DEL}
DOWN ARROW {ダウン}{DOWN}
EndEND {END}{END}
EnterENTER {0} に入力} または ~{ENTER}or ~
EscESC {ESC}{ESC}
ヘルプHELP {HELP}{HELP}
ホームHOME {0} ホーム}{HOME}
アドイン、または INSERTINS or INSERT {0} を挿入} または {INS}{INSERT} or {INS}
LEFT ARROW {LEFT}{LEFT}
NUM LOCKNUM LOCK {NUMLOCK}{NUMLOCK}
PAGE DOWNPAGE DOWN {PGDN}{PGDN}
PAGE UPPAGE UP {PGUP}{PGUP}
画面を印刷します。PRINT SCREEN {PRTSC}(将来使用するために予約されています){PRTSC} (reserved for future use)
RIGHT ARROW {RIGHT}{RIGHT}
SCROLL LOCKSCROLL LOCK {SCROLLLOCK}{SCROLLLOCK}
TabTAB {TAB}{TAB}
UP ARROW {UP}{UP}
F1F1 {F1}{F1}
F2F2 {F2}{F2}
F3F3 {F3}{F3}
F4F4 {F4}{F4}
F5F5 {F5}{F5}
F6F6 {F6}{F6}
F7F7 {F7}{F7}
F8F8 {F8}{F8}
F9F9 {F9}{F9}
F10F10 {F10}{F10}
F11F11 {F11}{F11}
F12F12 {F12}{F12}
F13F13 {F13}{F13}
F14F14 {F14}{F14}
F15F15 {F15}{F15}
F16F16 {F16}{F16}
キーパッドを追加します。Keypad add {ADD}{ADD}
テンキーを減算します。Keypad subtract {減算}{SUBTRACT}
テンキーを乗算します。Keypad multiply {乗算}{MULTIPLY}
テンキーの除算Keypad divide {DIVIDE}{DIVIDE}

SHIFT、ctrl キー、および alt の各キーの任意の組み合わせと組み合わせてキーを指定するには、次のコードの 1 つ以上のキー コードを前になります。To specify keys combined with any combination of the SHIFT, CTRL, and ALT keys, precede the key code with one or more of the following codes.

キーKey コードCode
SHIFT キーSHIFT +
CTRL キーCTRL ^
ALT キーALT %

その他のいくつかのキーが押されたときに shift キーを押し、CTRL、ALT の任意の組み合わせ保持することを指定するには、かっこでこれらのキー コードを囲みます。To specify that any combination of SHIFT, CTRL, and ALT should be held down while several other keys are pressed, enclose the code for those keys in parentheses. たとえばを指定すると、電子メールおよび C が押されたときに、shift キーを押し、次のように使用します。"+ (EC)"。For example, to specify to hold down SHIFT while E and C are pressed, use "+(EC)". 次に、shift キーを押さず C、E が押されたときに shift キーを保持するために指定するには使用「+ EC」。To specify to hold down SHIFT while E is pressed, followed by C without SHIFT, use "+EC".

繰り返しのキーを指定するには、キー {number} フォームを使用します。To specify repeating keys, use the form {key number}. キーと値の間にスペースを挿入する必要があります。You must put a space between key and number. たとえば、{左 42} は、42 回; 左矢印キーを押します{h 10} は、H 10 回のキーを押してを意味します。For example, {LEFT 42} means press the LEFT ARROW key 42 times; {h 10} means press H 10 times.

注意

別のアプリケーションをアクティブ化するマネージ メソッドがないため、現在のアプリケーション内でこのクラスを使用するかなど、ネイティブの Windows メソッドを使用FindWindowSetForegroundWindow、他のアプリケーションにフォーカスを設定します。Because there is no managed method to activate another application, you can either use this class within the current application or use native Windows methods, such as FindWindow and SetForegroundWindow, to force focus on other applications.

注意

.NET Framework 3.0 の SendKeys クラスが更新され、Windows Vista で実行されるアプリケーションで使用できるようになりました。The SendKeys class has been updated for the .NET Framework 3.0 to enable its use in applications that run on Windows Vista. Windows Vista の強化されたセキュリティ、(ユーザー アカウント制御または UAC と呼ばれます) により、前の実装は想定どおり機能できません。The enhanced security of Windows Vista (known as User Account Control or UAC) prevents the previous implementation from working as expected.

SendKeys クラスはタイミングの問題が発生する可能性があり、一部の開発者は回避策を取る必要がありました。The SendKeys class is susceptible to timing issues, which some developers have had to work around. 更新された実装は、引き続きタイミングの問題が発生する可能性がありますが、速度が少し向上し、回避策の変更が必要となる可能性があります。The updated implementation is still susceptible to timing issues, but is slightly faster and may require changes to the workarounds. SendKeys クラスは、最初に前の実装を使用しようとし、失敗した場合に、新しい実装を使用します。The SendKeys class tries to use the previous implementation first, and if that fails, uses the new implementation. その結果、 SendKeys クラスが別のオペレーティング システムと異なる動作を取る可能性があります。As a result, the SendKeys class may behave differently on different operating systems. さらに、 SendKeys クラスは、新しい実装を使用した場合、 SendWait メソッドが別のプロセスに送信されたときにメッセージの処理を待機しません。Additionally, when the SendKeys class uses the new implementation, the SendWait method will not wait for messages to be processed when they are sent to another process.

アプリケーションが、オペレーティング システムに関係なく一貫した動作に依存する場合、app.config ファイルに次のアプリケーション設定を追加することで、 SendKeys クラスが新しい実装を使用するよう強制することができます。If your application relies on consistent behavior regardless of the operating system, you can force the SendKeys class to use the new implementation by adding the following application setting to your app.config file.

<appSettings>

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

</appSettings>

SendKeys クラスが前の実装を使用するよう強制するには、代わりに値 "JournalHook" を使用します。To force the SendKeys class to use the previous implementation, use the value "JournalHook" instead.

Security

SecurityPermission
このメソッドを呼び出すアンマネージ コード。 for unmanaged code to call this method. 関連付けられた列挙体。 UnmanagedCode Associated enumeration: UnmanagedCode

Applies to