エミュレータの操作、およびエミュレータ画面のフィールド情報を参照するためのオブジェクトです。
メソッド名 | 機能 |
---|---|
Contains | エミュレータ画面上に指定文字列が含まれるかを判定 |
FindField | Fieldオブジェクトの取得 |
GetCursorCol | カーソル位置の桁位置取得 |
GetCursorPos | カーソル位置のアドレス取得 |
GetCursorRow | カーソル位置の行位置取得 |
GetField | Fieldオブジェクトの取得 |
GetFields | Fieldsオブジェクトの取得 |
GetText | 指定範囲の文字列の取得 |
GetTextArrays | 矩形範囲からの文字配列の取得 |
SetCursor | カーソル位置の設定 |
SetText | キー入力 |
プロパティ名 | 設定 | 参照 | 機能 |
---|---|---|---|
TextCodeType | ○ | ○ | エミュレータ画面から取得する文字列に含まれるリモートフォントをコード値で取得するかを指定 |
エミュレータ画面上に指定文字列が存在するかを判定
エミュレータ画面上の指定した矩形範囲に、指定の文字列が含まれるフィールドが存在するかを判定します。
●呼び出し形式
Contains(text, row1, col1, row2, col2)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
text | 検索する文字列 | 省略できません |
row1 | 開始行位置(1~24) | 1 |
col1 | 開始桁位置(1~80) | 1 |
row2 | 終了行位置(1~24) | 24 |
col2 | 終了桁位置(1~80) | 80 |
●リターン値
関数の呼び出しに成功するとtrueを返します。一致する文字列が見つからなかった場合やエラーが発生した場合はfalseを返します。リターン値がfalseの場合はgetError/GetError関数を使ってエラー番号を調べることができます。
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 if (!dspemu.Screen.Contains("TSSX", 1, 5, 24, 5)) { // 矩形範囲のフィールド検索 // 指定文字列を含むフィールドが見つかりませんでした }
fieldオブジェクトの取得
エミュレータ画面上のフィールドより検索文字列が含まれるフィールドのFieldオブジェクトを取得します。対象の文字列が複数存在する場合は、最初に見つかった文字列のオブジェクトを返します。
●呼び出し形式
FindField(text, row1, col1, row2, col2)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
text | 検索する文字列 | 省略時はカーソル位置のFieldオブジェクトを取得、 |
row1 | 開始行位置(1~24) | 1 |
col1 | 開始桁位置(1~80) | 1 |
row2 | 終了行位置(1~24) | 24 |
col2 | 終了桁位置(1~80) | 80 |
●リターン値
関数の呼び出しに成功すると取得したFieldオブジェクトを返します。一致する文字列が見つからなかった場合やエラーが発生した場合はnullを返します。リターン値がnullの場合はgetError/GetError関数を使ってエラー番号を調べることができます。
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var field = dspemu.Screen.FindField("ユーザID", 1, 10, 24, 20); // 文字列"ユーザID"が含まれるFieldオブジェクトを取得 if (field == null) { Console.WriteLine("指定文字列を含むフィールドが見つかりませんでした"); }
カーソル位置の桁位置取得
現在のエミュレータ画面のカーソル位置の桁位置を取得します。
●呼び出し形式
GetCursorCol()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると取得した桁位置を返します。カーソル位置がエミュレータ画面の範囲外にある場合、およびエラー発生時は-1を返します。
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var col = dspemu.Screen.GetCursorCol(); // 現在のカーソル位置の桁位置を取得
カーソル位置のアドレス取得
現在のエミュレータ画面のカーソル位置のアドレスを取得します。
●呼び出し形式
GetCursorPos()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると取得したアドレスを返します。カーソル位置がエミュレータ画面の範囲外にある場合は-1を返します。
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var cursorAddr = dspemu.Screen.GetCursorPos(); // 現在のカーソル位置のアドレスを取得 if(cursorAddr != -1){ Console.WriteLine("現在のカーソル位置は、行:" + dspemu.Row(cursorAddr) + "、桁:" + dspemu.Col(cursorAddr) + "です"); }
カーソル位置の行位置取得
現在のエミュレータ画面のカーソル位置の行位置を取得します。
●呼び出し形式
GetCursorRow()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると取得した行位置を返します。カーソル位置がエミュレータ画面の範囲外にある場合、およびエラー発生時は-1を返します。
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var row = dspemu.Screen.GetCursorRow(); // 現在のカーソル位置の行位置を取得
Fieldオブジェクトの取得
指定した位置のFieldオブジェクトを取得します。
●呼び出し形式
GetField(row, col)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
row | エミュレータ画面上の行位置(1~24) | 省略できません |
col | エミュレータ画面上の桁位置(1~80) | 省略できません |
●リターン値
関数の呼び出しに成功すると指定位置のFieldオブジェクトを返します。エラーが発生した場合はnullを返します。エラーの詳細は、getErrorメソッドにより取得できます。
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var field = dspemu.Screen.GetField(1, 1); // 1行1桁目のFieldオブジェクトを取得
Fieldsオブジェクトの取得
指定したセレクターに一致するFieldオブジェクトのリストを保持するFieldsオブジェクトを取得します。
●呼び出し形式
GetFields(selector)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
selector | エミュレータ画面上のフィールドから抽出する条件を指定 | すべてのフィールド("*") |
●selectorの値
[文字列指定]
指定された文字列を含むフィールドのリストを保持するFieldsオブジェクトを取得します。
[フィールド属性指定]
指定されたフィールド属性を含むフィールドのリストを保持するFieldsオブジェクトを取得します。
属性 | 属性値 | 説明 |
---|---|---|
attr | 'blink' | ブリンクフィールド |
'numeric' | 数字フィールド | |
'protect' | 保護フィールド | |
'unprotect' | 非保護フィールド | |
'reverse' | 反転フィールド | |
'underscore’ | 下線フィールド | |
'visible' | 可視フィールド | |
'kana' | かなフィールド | |
'lightpen' | ライトペン検知可能フィールド | |
'hilight' | 高輝度フィールド | |
'nihongo' | 日本語フィールド | |
'escape' | 脱出要求フィールド | |
'complete' | 完全入力フィールド | |
'trigger' | トリガーフィールド | |
'autoenter' | オートエンターフィールド | |
color | 'Default' | 背景色(初期値) |
'Blue' | 青 | |
'Red' | 赤 | |
'Magenta' | マゼンタ | |
'Green' | 緑 | |
'Cyan' | シアン | |
'Yellow' | 黄 | |
'White' | 白 | |
name | フィールド名 | 指定したフィールド名 |
[範囲指定]
指定された範囲のフィールド属性を含むフィールドのリストを保持するFieldsオブジェクトを取得します。範囲はアドレス、または行桁位置での指定が可能です。
複数のセレクターを指定することも可能です。この場合、Fieldsオブジェクトは指定したセレクターのOR条件で取得されます。セレクターを複数指定する場合はカンマで区切ってください。
●リターン値
関数の呼び出しに成功すると取得したFieldsオブジェクトを返します。一致した文字列が見つからなかった場合や、エラーが発生した場合はLengthが0 のFieldsオブジェクトを返します。リターン値でlengthプロパティが0のFieldsオブジェクトが返された場合は、エラーの詳細をGetErrorメソッドにより取得できます。
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 // 文字列「担当」を含むFieldsオブジェクトを取得 var fields = dspemu.Screen.GetFields("担当"); // すべてのFieldsオブジェクトを取得 var fields = dspemu.Screen.GetFields("*"); // 保護フィールドのFieldsオブジェクトを取得 var fields = dspemu.Screen.GetFields("{attr: 'protect'}"); // アドレス(0~1919)範囲のFieldsオブジェクトを取得 var fields = dspemu.Screen.GetFields("{start: 0, end: 1919}"); // 指定行桁範囲のFieldsオブジェクトを取得 var fields = dspemu.Screen.GetFields("{row1: 1, col1: 1, row2: 24, col2: 80}"); // 矩形行桁範囲のFieldsオブジェクトを取得 var fields = dspemu.Screen.GetFields("{row: 1, col: 1}, {row: 24, col: 10}"); // 複数のセレクターを指定してFieldsオブジェクトを取得 var fields = dspemu.Screen.GetFields("担当", "{attr: 'protect'}", "{row: 10, col: 1},{row: 20, col: 80}");
指定範囲の文字列の取得
エミュレータ画面より指定した範囲の文字列を取得します。指定範囲内に含まれるフィールドアトリビュート位置は空白文字に置き換えます。
●呼び出し形式
GetText(row1, col1, row2, col2)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
row1 | 指定範囲の開始行位置 | 1 |
col1 | 指定範囲の開始桁位置 | 1 |
row1 | 指定範囲の終了桁位置 | 24 |
col2 | 指定範囲の終了桁位置 | 80 |
リモートフォントをコード値で取得する場合は、次の関連プロパティをあらかじめ設定してください。
プロパティ | 説明 | 省略時の初期値 |
---|---|---|
TextCodeType | エミュレータ画面から取得する文字列に含まれるリモートフォントをコード値で取得するか指定します。 | ""空文字 |
参考
TextCodeTypeプロパティに'mixed'を指定した場合、指定範囲に含まれる「[」はエスケープされ「[[」として取得されます。
●リターン値
関数の呼び出しに成功すると取得した文字列を返します。エラーが発生した場合はnullを返します。リターン値がnullの場合はGetError関数を使ってエラー番号を調べることができます。
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 dspemu.Screen.TextCodeType = 'mixed'; // リモートフォントをコード値で取得 var text = dspemu.Screen.GetText(1, 1, 1, 80); // 指定範囲の文字列を取得
矩形範囲からの文字配列の取得
指定位置が含まれるフィールドの矩形範囲より2次元配列の文字列データを取得します。指定位置がフィールドの途中の場合、開始位置はその位置が含まれるフィールドの先頭位置に、終了位置はその位置が含まれるフィールドの末尾位置に補正されます。
●呼び出し形式
GetTextArrays(row1, col1, row2, col2)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
row1 | 指定範囲の開始行位置 | 1 |
col1 | 指定範囲の開始桁位置 | 1 |
row1 | 指定範囲の終了桁位置 | 24 |
col2 | 指定範囲の終了桁位置 | 80 |
リモートフォントをコード値で取得する場合は、次の関連プロパティをあらかじめ設定してください。
プロパティ | 説明 | 省略時の初期値 |
---|---|---|
TextCodeType | エミュレータ画面から取得する文字列に含まれるリモートフォントをコード値で取得するか指定します。 | ""空文字 |
参考
TextCodeTypeプロパティに'mixed'を指定した場合、指定範囲に含まれる「[」はエスケープされ「[[」として取得されます。
●リターン値
関数の呼び出しに成功すると指定範囲のフィールド文字列をテーブル文字列として返します。エラーが発生した場合はnullを返します。リターン値がnullの場合はgetError/GetError関数を使ってエラー番号を調べることができます。
参考
GetTextArrayメソッドで取得するテーブル文字列には、アトリビュート属性のみのフィールドは含まれません。
●取得データの形式
本メソッドにより取得されるデータは、文字列データの2次元配列の形式となります。指定された範囲に存在するフィールドがエミュレータ画面上で行が変わると、次の要素の配列とみなされます。
例1)
フィールド1~3が同じ行、フィールド4~5が次行に存在する場合
フィールド1 | フィールド2 | フィールド3 |
フィールド4 | フィールド5 | フィールド6 |
取得データの配列は次のようになります。
[ [フィールド1の文字列, フィールド2の文字列, フィールド3の文字列],
[フィールド4の文字列, フィールド5の文字列, フィールド6の文字列] ]
例2)
行ごとのフィールド数が異なる場合
フィールド1 | ||
フィールド2 | フィールド3 | フィールド4 |
フィールド5 | フィールド6 |
取得データの配列は次のようになります。
[ [フィールド1の文字列],
[フィールド2の文字列, フィールド3の文字列, フィールド4の文字列],
[フィールド5の文字列, フィールド6の文字列] ]
例3)
フィールドが行をまたいでいる場合
フィールド1 | ||
フィールド1の続き | フィールド2 | フィールド3 |
フィールド3の続き | フィールド4 | フィールド5 |
フィールド6 | フィールド7 |
取得データの配列は次のようになります。
[ [フィールド1の文字列],
[フィールド1の続きの文字列, フィールド2の文字列, フィールド3の文字列],
[フィールド3の続きの文字列, フィールド4の文字列, フィールド5の文字列]
[フィールド6の文字列, フィールド7の文字列] ]
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var array = dspemu.Screen.GetTextArrays(2, 1, 24, 80); // 指定範囲の文字配列を取得
カーソル位置の設定
カーソル位置を指定位置へ移動します。
●呼び出し形式
SetCursor(addr) または
SetCursor(row, col)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
addr | アドレス位置を指定(0~1919) | 省略できません |
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
row | 行位置を指定(1~24) | 省略できません |
col | 桁位置を指定(1~80) | 省略できません |
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 if (dspemu.Screen.Contains('SYSTEM READY')) { // 5行2桁目にカーソルを移動 dspemu.Screen.SetCursor(5, 2); }
キー入力
キー入力をエミュレートします。キーボードロック状態の場合は、キー入力可能になるのを待ってから入力を行います。最大待ち時間は、keyUnlockTimeパラメータで指定された時間だけ待ちます。入力キーに特殊キーやJEFコードを含める時は[ENTER]のようにカッコ[]で囲みます。カッコ内は1つの項目だけ指定可能です。左カッコ[を入力するときは左カッコを重ねて記述します。
注意
1つのSetText文のパラメータで指定できる特殊キーは、1つのみです。2つ以上の特殊キーを指定しないでください。
●呼び出し形式
SetText(text, row, col, keyUnlockTime)
●パラメータ
パラメータ | 説明 | 省略時の初期値 |
---|---|---|
text | 入力する文字列 | 省略できません |
row | 入力開始行位置(1~24、-1) | -1(カーソル位置) |
col | 入力開始桁位置(1~80、-1) | -1(カーソル位置) |
keyUnlockTime | 指定文字列入力時のキーアンロックタイム | macroオブジェクトのSetKeyUnlockTimeによる設定値 |
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、GetErrorメソッドにより取得できます。
参考
メソッド呼び出し時に入力禁止状態だった場合は、RESETキーによる解除後に指定された文字列を入力します。また、指定されたすべての文字入力が正常に行われた結果、入力禁止状態となった場合もRESETキーにより解除されます。
入力禁止状態を解除した場合は、リターン値はfalseを返します。エラーの詳細コードは28(キー入力禁止を解除しました)を返します。
●C#を用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成
// 画面更新後イベント登録
if (dspemu.Screen.Contains('SYSTEM READY')) {
if (dspemu.Macro.Type('LOGON TSS[ENTER]')) {
// 入力禁止状態の確認
if (dspemu.GetInputStatus() >= 3) {
// RESETキーをカーソル位置にキーアンロックタイム100ミリ秒で入力
dspemu.Screen.SetText('[RESET]', -1, -1, 100);
}
}
}