エミュレータの操作、およびエミュレータ画面のフィールド情報を参照するためのオブジェクトです。
メソッド名  | 機能  | |
|---|---|---|
JavaScript  | VB/C#  | |
bind  | -  | 画面更新時のイベント登録  | 
contains  | Contains  | エミュレータ画面上に指定文字列が含まれるかを判定  | 
findField  | FindField  | fieldオブジェクトの取得  | 
getCursorCol  | GetCursorCol  | カーソル位置の桁位置取得  | 
getCursorPos  | GetCursorPos  | カーソル位置のアドレス取得  | 
getCursorRow  | GetCursorRow  | カーソル位置の行位置取得  | 
getField  | GetField  | fieldオブジェクトの取得  | 
getFields  | GetFields  | fieldsオブジェクトの取得  | 
getText  | GetText  | 指定範囲の文字列の取得  | 
getTextArrays  | GetTextArrays  | 矩形範囲からの文字配列の取得  | 
update  | -  | 画面更新の制御  | 
オブジェクト名  | 機能  | 初期値  | |
|---|---|---|---|
JavaScript  | VB/C#  | ||
event  | -  | イベントの発生時にbindメソッドで登録したコールバック関数に渡されるオブジェクト  | -  | 
プロパティ名  | 設定  | 参照  | 機能  | |
|---|---|---|---|---|
JavaScript  | VB/C#  | |||
textCodeType  | TextCodeType  | ○  | ○  | エミュレータ画面から取得する文字列に含まれるリモートフォントをコード値で取得するかを指定  | 
エミュレータ画面更新時のイベント登録
エミュレータ画面で指定したイベントが発生した際に呼び出されるコールバック関数を登録します。
●呼び出し形式
bind(type, [name], func)
●パラメータ
パラメータ  | 説明  | 省略時の初期値  | 
|---|---|---|
type  | コールバック関数を登録するイベント名を示す文字列  | 省略できません  | 
name  | イベント名  | 空文字('')  | 
func  | コールバック関数を指定  | null  | 
ポイント
changeイベントを複数登録する場合、nameパラメータでイベント名を指定してください。
イベントの実行順序は登録順です。コールバック関数の戻り値にfalseを指定した場合、後続のコールバック関数は実行されません。
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu();  // インスタンスの作成
dspemu.screen.bind("change", onChange);             // コールバック関数の登録
dspemu.screen.bind("change", 'event2', onChange2);  // コールバック関数の登録
function onChange(e) {
    if (!e.byHost) {
        // キー入力などエコーバック時はコールバック関数を実行しない
        return false;
    }
}
function onChange2(e) {
    if (dspemu.screen.contains('SYSTEM READY')) {
        // 画面一致時の処理
        return false;
    }
}
エミュレータ画面上に指定文字列が存在するかを判定
エミュレータ画面上の指定した矩形範囲に、指定の文字列が含まれるフィールドが存在するかを判定します。
●呼び出し形式
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関数を使ってエラー番号を調べることができます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu();  // インスタンスの作成
if (!dspemu.screen.contains("TSSX", 1, 5, 24, 5)) { // 矩形範囲のフィールド検索
    dspemu.macro.MsgBox("指定文字列を含むフィールドが見つかりませんでした");
}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関数を使ってエラー番号を調べることができます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu();  // インスタンスの作成
var field = dspemu.screen.findField("ユーザID", 1, 10, 24, 20);  // 文字列"ユーザID"が含まれるFieldオブジェクトを取得
if (field == null) {
    dspemu.macro.MsgBox("指定文字列を含むフィールドが見つかりませんでした");
}カーソル位置の桁位置取得
現在のエミュレータ画面のカーソル位置の桁位置を取得します。
●呼び出し形式
getCursorCol()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると取得した桁位置を返します。カーソル位置がエミュレータ画面の範囲外にある場合、およびエラー発生時は-1を返します。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var col = dspemu.screen.getCursorCol(); // 現在のカーソル位置の桁位置を取得
カーソル位置のアドレス取得
現在のエミュレータ画面のカーソル位置のアドレスを取得します。
●呼び出し形式
getCursorPos()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると取得したアドレスを返します。カーソル位置がエミュレータ画面の範囲外にある場合は-1を返します。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu();  // インスタンスの作成
var cursorAddr = dspemu.screen.getCursorPos();  // 現在のカーソル位置のアドレスを取得
if(cursorAddr != -1){
    dspemu.macro.MsgBox("現在のカーソル位置は、行:" + dspemu.row(cursorAddr) + "、桁:" + dspemu.col(cursorAddr) + "です");
}カーソル位置の行位置取得
現在のエミュレータ画面のカーソル位置の行位置を取得します。
●呼び出し形式
getCursorRow()
●パラメータ
ありません
●リターン値
関数の呼び出しに成功すると取得した行位置を返します。カーソル位置がエミュレータ画面の範囲外にある場合、およびエラー発生時は-1を返します。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var row = dspemu.screen.getCursorRow(); // 現在のカーソル位置の行位置を取得
fieldオブジェクトの取得
指定した位置のfieldオブジェクトを取得します。
●呼び出し形式
getField(row, col)
●パラメータ
パラメータ  | 説明  | 省略時の初期値  | 
|---|---|---|
row  | エミュレータ画面上の行位置(1~24)  | 省略できません  | 
col  | エミュレータ画面上の桁位置(1~80)  | 省略できません  | 
●リターン値
関数の呼び出しに成功すると指定位置のfieldオブジェクトを返します。エラーが発生した場合はnullを返します。エラーの詳細は、getErrorメソッドにより取得できます。
●JavaScriptを用いて記述した例
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'  | 白  | |
style  | 'assist'  | 入力候補フィールド  | 
'select'  | リストボックス表示フィールド  | |
'button'  | ボタン表示フィールド  | |
'link'  | リンクボタン表示フィールド  | |
'calendar'  | カレンダー表示フィールド  | |
'check'  | チェックボックス表示フィールド  | |
'radio'  | ラジオボタン表示フィールド  | |
'hide'  | 非表示フィールド  | |
name  | フィールド名  | 指定したフィールド名  | 
[範囲指定]
指定された範囲のフィールド属性を含むフィールドのリストを保持するfieldsオブジェクトを取得します。範囲はアドレス、または行桁位置での指定が可能です。
複数のセレクターを指定することも可能です。この場合、fieldsオブジェクトは指定したセレクターのOR条件で取得されます。セレクターを複数指定する場合はカンマで区切ってください。
●リターン値
関数の呼び出しに成功すると取得したfieldsオブジェクトを返します。一致した文字列が見つからなかった場合や、エラーが発生した場合はlengthが0 のfieldsオブジェクトを返します。リターン値でlengthプロパティが0のfieldsオブジェクトが返された場合は、エラーの詳細をgetErrorメソッドにより取得できます。
●JavaScriptを用いて記述した例
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  | エミュレータ画面から取得する文字列に含まれるリモートフォントをコード値で取得するか指定します。  | ""空文字  | 
参考
textCodeType/TextCodeTypeプロパティに'mixed'を指定した場合、指定範囲に含まれる「[」はエスケープされ「[[」として取得されます。
●リターン値
関数の呼び出しに成功すると取得した文字列を返します。エラーが発生した場合はnullを返します。リターン値がnullの場合はgetError/GetError関数を使ってエラー番号を調べることができます。
●JavaScriptを用いて記述した例
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  | エミュレータ画面から取得する文字列に含まれるリモートフォントをコード値で取得するか指定します。  | ""空文字  | 
参考
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の文字列] ]
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 var array = dspemu.screen.getTextArrays(2, 1, 24, 80); // 指定範囲の文字配列を取得
エミュレータ画面の更新制御
エミュレータ画面の更新を制御します。
●呼び出し形式
update(flag)
●パラメータ
パラメータ  | 説明  | 省略時の初期値  | 
|---|---|---|
flag  | true:エミュレータ画面の更新を開始  | true  | 
参考
画面更新を停止してもscreenオブジェクトのchangeイベントは実行されます。
●リターン値
関数の呼び出しに成功するとtrueを返します。エラーが発生した場合はfalseを返します。エラーの詳細は、getErrorメソッドにより取得できます。
●JavaScriptを用いて記述した例
var dspemu = new WsmgrDspemu(); // インスタンスの作成 dspemu.screen.update(false); // 画面更新の停止