SendKeys SendKeys SendKeys SendKeys Class

定義

キーストロークをアプリケーションに送信するメソッドを指定します。Provides methods for sending keystrokes to an application.

public ref class SendKeys
public class SendKeys
type SendKeys = class
Public Class SendKeys
継承
SendKeysSendKeysSendKeysSendKeys

次のコード例は、Send メソッドの使用方法を示します。The following code example demonstrates how to use the Send method. この例を実行するには、Button1 というボタンを含む Form1 という名前のフォームに次のコードを貼り付けます。To run the example, paste the following code in a form called Form1 containing a button called Button1. この例では、click イベントがイベント処理メソッドに関連付けられていることを確認します。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. この例が実行されている場合は、フォームをダブルクリックして、ボタンの click イベントをトリガーします。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

注釈

アクティブSendKeysなアプリケーションにキーストロークとキーストロークの組み合わせを送信するには、を使用します。Use SendKeys to send keystrokes and keystroke combinations to the active application. このクラスはインスタンス化できません。This class cannot be instantiated. クラスにキーストロークを送信し、プログラムのフローをすぐに続行するにはSend、を使用します。To send a keystroke to a class and immediately continue with the flow of your program, use Send. キーストロークによって開始されたプロセスをSendWait待機するには、を使用します。To wait for any processes started by the keystroke, use SendWait.

各キーは、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.

ENTER や TAB、文字ではなくアクションを表すキーなど、キーを押したときに表示されない文字を指定するには、次の表のコードを使用します。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}、{BS}、または {BKSP}{BACKSPACE}, {BS}, or {BKSP}
BREAK {BREAK}
キャップス ロックですCAPS LOCK {CAPSLOCK}{CAPSLOCK}
DEL または DELETEDEL or DELETE {DELETE} または {DEL}{DELETE} or {DEL}
DOWN ARROW ダウン{DOWN}
EndEND {END}{END}
EnterENTER {ENTER} または ~{ENTER} or ~
ESCESC {ESC}{ESC}
ヘルプHELP {HELP}{HELP}
ホームHOME 出張{HOME}
INS または INSERTINS or INSERT {INSERT} または {INS}{INSERT} or {INS}
LEFT ARROW {LEFT}{LEFT}
NUMLOCKNUM LOCK {NUMLOCK}{NUMLOCK}
PageDownPAGE DOWN {PGDN}{PGDN}
PageUpPAGE UP {PGUP}{PGUP}
印刷画面PRINT SCREEN {PRTSC}(将来使用するために予約されています){PRTSC} (reserved for future use)
RIGHT ARROW {RIGHT}{RIGHT}
スクロールロックSCROLL 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 +
+CTRL ^
押し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. たとえば、E と C が押されている間に SHIFT キーを押したままにするように指定するには、"+ (EC)" を使用します。For example, to specify to hold down SHIFT while E and C are pressed, use "+(EC)". E が押されている間に shift キーを押したまま shift キーを押したままにする場合は、"+ EC" を使用します。To specify to hold down SHIFT while E is pressed, followed by C without SHIFT, use "+EC".

繰り返しキーを指定するには、{key number} という形式を使用します。To specify repeating keys, use the form {key number}. キーと数値の間にスペースを入れる必要があります。You must put a space between key and number. たとえば、{LEFT 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.

注意

別のアプリケーションをアクティブ化するマネージメソッドがないため、現在のアプリケーション内でこのクラスを使用するか、 FindWindowSetForegroundWindowなどのネイティブ Windows メソッドを使用して、他のアプリケーションにフォーカスを移すことができます。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.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
Flush() Flush() Flush() Flush()

メッセージ キューに現在ある Windows メッセージをすべて処理します。Processes all the Windows messages currently in the message queue.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
Send(String) Send(String) Send(String) Send(String)

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

SendWait(String) SendWait(String) SendWait(String) SendWait(String)

特定のキーをアクティブなアプリケーションに送信し、メッセージが処理されるまで待機します。Sends the given keys to the active application, and then waits for the messages to be processed.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象