My.Computer.Keyboard.SendKeys メソッド
更新 : 2007 年 11 月
キーボードで入力しているかのように、1 つ以上のキーストロークをアクティブなウィンドウに送信します。
' Usage
My.Computer.Keyboard.SendKeys(keys)
My.Computer.Keyboard.SendKeys(keys ,wait)
' Declaration
Public Sub SendKeys( _
ByVal keys As String _
)
' -or-
Public Sub SendKeys( _
ByVal keys As String, _
ByVal wait As Boolean _
)
パラメータ
keys
送信するキーを定義する String です。wait
省略可能です。キーストロークが処理されるまで待ってから、アプリケーションが実行を継続するかどうかを指定する Boolean です。既定では True です。
例外
例外を引き起こす可能性のある状態を次に示します。
- ユーザーが部分的に信頼されており、必要なアクセス許可を持っていません (SecurityException)。
解説
My.Computer.Keyboard.SendKeys メソッドは、Send メソッドおよび SendWait メソッドと同様の機能を提供します。
wait 引数は、他のアプリケーションが終了しなければ自分のアプリケーションを継続できないようにする場合に便利です。
メモ : |
---|
他のアプリケーションをアクティブにするためのマネージ メソッドはありません。このクラスを現在のアプリケーションで使用して、キーを送信するウィンドウを手動で選択するか、FindWindow や SetForegroundWindow などの Windows API メソッドを使用して、他のアプリケーションにフォーカスを移してください。詳細については、「チュートリアル : Windows API の呼び出し」を参照してください。 |
keys 引数には単一のキー、またはキーと Alt、Ctrl、Shift との組み合わせ (またはこれらのキーの組み合わせ) を指定できます。各キーは 1 つ以上の文字で表現されます。たとえば、a は "a" の文字を表現し、{ENTER} であれば Enter キーを表現します。
キーと Shift を組み合わせるには、キー コードの前に + (正符号) を付けます。キーと Ctrl を組み合わせるには、キー コードの前に ^ (キャレット) を付けます。キーと Alt を組み合わせるには、キー コードの前に % (パーセント記号) を付けます。キーの繰り返しを指定するには、{key number} の形式を使用します。key と number の間には、空白を入れる必要があります。たとえば、{LEFT 42} は "← キーを 42 回押す" という意味になり、{h 10} は "'h' を 10 回押す" という意味になります。
キーを押しても表示されない文字 (Eneter や Tab など) を指定する際に使うコードを、次の表に示します。
キー |
コード |
---|---|
BackSpace |
{BACKSPACE} または {BS} |
Break |
{BREAK} |
CapsLock |
{CAPSLOCK} |
Clear |
{CLEAR} |
Delete |
{DELETE} または {DEL} |
↓ |
{DOWN} |
End |
{END} |
Enter (テンキー) |
{ENTER} |
Enter |
~ |
Esc |
{ESCAPE} または {ESC} |
Help |
{HELP} |
Home |
{HOME} |
Ins |
{INSERT} |
← |
{LEFT} |
NumLock |
{NUMLOCK} |
PageDown |
{PGDN} |
PageUp |
{PGUP} |
Return |
{RETURN} |
→ |
{RIGHT} |
ScrollLock |
{SCROLLLOCK} |
Tab |
{TAB} |
↑ |
{UP} |
F1 ~ F15 |
{F1} ~ {F15} |
使用例
次の例は My.Computer.Keyboard.SendKeys メソッドを使用して、Shell 関数を使って起動した外部の電卓アプリケーションにキーストロークを送信します。
Dim ProcID As Integer
' Start the Calculator application, and store the process id.
ProcID = Shell("CALC.EXE", AppWinStyle.NormalFocus)
' Activate the Calculator application.
AppActivate(ProcID)
' Send the keystrokes to the Calculator application.
My.Computer.Keyboard.SendKeys("22", True)
My.Computer.Keyboard.SendKeys("*", True)
My.Computer.Keyboard.SendKeys("44", True)
My.Computer.Keyboard.SendKeys("=", True)
' The result is 22 * 44 = 968.
要求されたプロセスの識別子を持つアプリケーションが見つからない場合は、ArgumentException 例外が発生します。
Shell 関数の呼び出しは、完全に信頼されている必要があります (SecurityException クラス)。
必要条件
名前空間 : Microsoft.VisualBasic.Devices
クラス : Keyboard
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll 内)
使用可能なプロジェクトの種類
プロジェクトの種類 |
使用可/不可 |
---|---|
Windows アプリケーション |
可 |
クラス ライブラリ |
可 |
コンソール アプリケーション |
可 |
Windows コントロール ライブラリ |
可 |
Web コントロール ライブラリ |
不可 |
Windows サービス |
可 |
Web サイト |
不可 |
アクセス許可
次のアクセス許可が必要になる可能性があります。
アクセス許可 |
説明 |
---|---|
ファイルとフォルダへのアクセス許可を制御します。関連する列挙値 : Unrestricted。 |
|
ユーザー インターフェイスとクリップボードに関連するアクセス許可を制御します。関連する列挙値 : AllWindows。 |
詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。