SendKeys クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
キーストロークをアプリケーションに送信するメソッドを指定します。
public ref class SendKeys
public class SendKeys
type SendKeys = class
Public Class SendKeys
- 継承
-
SendKeys
例
次のコード例は、Send メソッドの使用方法を示します。 この例を実行するには、Button1 というボタンを含む Form1 というフォームに次のコードを貼り付けます。 この例では、クリック イベントがイベント処理メソッドに関連付けられていることを確認します。 ボタン コントロールの 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します。
各キーは、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} |
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 キーの任意の組み合わせと組み合わせてキーを指定するには、キー コードの前に 1 つ以上の次のコードを付けます。
Key | コード |
---|---|
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
のアプリケーションに強制的に集中させる) を使用できます。
注意
.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"
を使用します。
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
Flush() |
メッセージ キューに現在ある Windows メッセージをすべて処理します。 |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
Send(String) |
キーストロークをアクティブなアプリケーションに送信します。 |
SendWait(String) |
特定のキーをアクティブなアプリケーションに送信し、メッセージが処理されるまで待機します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |