アプリケーションからディスプレイ端末へのキー入力エミュレーションと、オペレータによるディスプレイ端末へのキー入力の横取りを行うインタフェースです。
構文 | object. SendKeys ( str [,row,column] ) | ||
引数 | 引数は次のものです。 | ||
項目 | 型 | 内容 | |
str | 文字列 | ホストへ送信する文字列を指定します。 | |
row | 整数 | 入力開始の行位置を指定します。 | |
column | 整数 | 入力開始の桁位置を指定します。 | |
二重発行動作 | キャンセル | ||
復帰値 | 0:正常/その他の値:異常 | ||
対象エミュレータ | |||
関連プロパティ | WaitTime,WaitStatusTime,CodeConvType |
ディスプレイ端末に対するキー入力をエミュレーションします。
メソッドの処理にはプロパティの「WaitTime(メソッド応答待ち時間)」「WaitStatusTime(ホスト状態監視時間)」指定値が使用され、「キー入力可能」状態を待ち合わせてキー送信処理を開始します。
引数「str」は「CodeConvType(1バイト系コード変換種別)」プロパティに従ってコード変換されます。
入力はメソッドの引数「row、column」の指定位置から開始します。
引数「row」「column」は合わせて省略が可能です。
「row、column」の省略時には現在のカーソル位置から入力を開始します。
入力の際には、実際の入力と同様にカーソルも移動します。
引数「str(送信文字列)」には、文字列だけではなく、エミュレータキーとホスト漢字コードを記述することができます。
引数「str(送信文字列)」にエミュレータキーやホスト漢字コードを記述する場合には“[ENTER]”や“[41A1]”のようにカッコ[]で囲みます。
カッコ内には1つの項目のみ指定可能です。
カッコ記号のみ入力する場合には“[[”のようにカッコを重ねて書きます。
なお、この記述形式は、入力系メソッド(SendKeys、PutScreen、PasteScreen)で同様に使用します。
「カーソル制御キー」は以下のように記述します。
エミュレータキー | 記述形式 |
---|---|
→ | [RIGHT] |
← | [LEFT] |
↑ | [UP] |
↓ | [DOWN] |
→→ | [RIGHT2] |
←← | [LEFT2] |
TABキー | [TAB] |
BACK TABキー | [BACKTAB] |
右寄せTAB | [PACKRIGHT1] |
改行キー | [RETURN] |
前行キー | [PREV] |
HOMEキー | [HOME] |
INSERT MODEキー | [INSERT] |
DELETEキー | [DELETE] |
ERASE INPUTキー | [ERASEINPUT] |
ERASE EOFキー | [ERASEEOF] |
+入力キー | [+ENTER] |
右寄せ+入力キー | [PACKRIGHT2] |
「プログラム・アテンション・キー」は以下のように記述します。
エミュレータキー | 記述形式 |
---|---|
CLEARキー | [CLEAR] |
ENTERキー | [ENTER] |
PF1キー ~PF24キー | [PF1]~[PF24] |
PA1キー ~PA3キー | [PA1]~[PA3] |
「ローカルコピーキー」は以下のように記述します。
エミュレータキー | 記述形式 |
---|---|
PRINTキー | [PRINT] |
DEVICE CANCELキー | [DEVCAN] |
「その他のエミュレータキー」は以下のように記述します。
エミュレータキー | 記述形式 |
---|---|
RESETキー | [RESET] |
CURSOR SELECTキー | [CURSORSEL] |
DUPキー | [DUPLICATE] |
FIELD MARKキー | [FIELDMARK] |
SYSREQキー | [SYSREQ] |
ATTNキー | [ATTN] |
TESTキー | [TEST] |
「拡張機能キー」は以下のように記述します。
エミュレータキー | 記述形式 |
---|---|
エミュレータの終了 | [EEND1] |
強制終了 | [EEND2] |
上記以外のエミュレータキーはサポートしません。
「拡張機能キー」のエミュレータ終了キー([EEND1]、[EEND2])に対するエミュレータの動作は、ホスト接続時の接続パス状態によって異なります。(「ConnectXの基本動作」中の「9.2.4 ホスト接続/切断」を参照)
●未使用の接続パスへ接続した場合
ホスト切断の権利はアプリケーションが持っているため、エミュレータ終了キーによる終了動作は行われません(エミュレータ終了キーを送信した場合、キーは無視されます)。
アプリケーションからの「Close(ホスト切断)」メソッドによってエミュレータも終了します。
●エミュレータが使用中の接続パスへ乗り入れた場合
パス切断の権利はエミュレータが持っています。
エミュレータ終了キーを送信した場合、エミュレータの終了と共にパスは切断されます。
また、乗り入れていたアプリケーションはホスト切断状態となります。
なお、文字列の入力開始後はキーボードロック状態の監視を行いません。
そのため、入力中にキーボードロック状態が発生する場合(プログラム・アテンション・キーを文字列の途中に指定、フィールド脱出によるアテンションの発生 等)、その後に続く文字の入力が正常に行われない場合があります。
<プログラム・アテンション・キー+文字列を指定した例(誤)>
SendKeys (“LOGON TSS[ENTER] ID/PASSWORD[ENTER]”) ↑下線付き部分の文字列入力が保証されません。
上記のような文字列を送信する場合には、次のように文字列を分けて送信してください。
<プログラム・アテンション・キー+文字列を分割した例(正)>
SendKeys (“LOGON TSS[ENTER]”) SendKeys (“ID/PASSWORD[ENTER]”)