ページの先頭行へ戻る
WSMGR ソフトウェア開発キット V9 使用手引書
FUJITSU Software

8.3.3 画面情報の取得/貼り付け

ディスプレイ端末画面との書式付き入出力インタフェースです。

文字列の取得/貼り付け、画面属性情報の取得を行う事ができます。


各メソッドとアプリケーション間でディスプレイ端末の画面データの受け渡しを行う場合、ディスプレイ端末の画面データを1文字列として扱います。

アプリケーションはディスプレイ端末の画面情報←→文字列の受け渡しについて書式指定できます。

8.3.3.1 矩形フラグRectFlagプロパティ

構文

object. RectFlag [=TRUE/FALSE ]

データ型

整数

アクセス方法

参照/設定

設定値範囲

TRUE:矩形複写

FALSE:行複写

初期値

FALSE

対象エミュレータ

「GetScreen、CopyScreen、~Async(画面情報の取得)」「PutScreen、PasteScreen、~Async(画面情報の貼り付け)」メソッドの複写動作(行複写/矩形複写)の指定です。

値は設定、参照する事が可能です。

初期値は「FALSE」です。


「RectFlag」プロパティの指定により画面情報の取得、貼り付けメソッドの複写範囲が変化します。(文中の複写開始、終了位置は画面情報の取得、貼り付けメソッドの引数として指定します)

■画面情報取得時の複写範囲(「GetScreenCopyScreen、~Async」メソッド)

行複写を指定した場合には、ディスプレイ端末画面の右端と左端が複写の折り返し位置となり、複写の開始位置から終了位置までの画面情報を複写します。


矩形複写を指定した場合には、複写の開始位置と終了位置で表される矩形内の画面情報を複写します。

■画面情報貼り付け時の複写範囲(「PutScreenPasteScreen、~Async」メソッド)

行複写を指定した場合には、ディスプレイ端末画面の右端と左端が複写の折り返し位置となり、複写の開始位置から複写を開始します。


矩形複写を指定した場合には、複写の開始位置と終了位置で表される矩形内で複写を行います。

8.3.3.2 複写モードCopyModeプロパティ

構文

object. CopyMode [=mode ]

データ型

整数

アクセス方法

参照/設定

設定値範囲

0~6

初期値

0:「CX_TEXT_ALL」

対象エミュレータ

「GetScreen、CopyScreen、~Async(画面情報の取得)」メソッドによりディスプレイ端末の画面情報を複写する情報種別(文字/フィールド内文字/属性)の指定です。

値は設定、参照する事が可能であり、ホスト接続中にも変更が可能です。

初期値は「CX_TEXT_ALL」です。


「CopyMode」プロパティの指定によって、複写処理は次のように変化します。(文中の複写範囲とは画面情報の取得メソッドの引数として指定する複写開始位置から複写終了位置を、「RectFlag(矩形フラグ)」プロパティの複写動作指定に従って仕切った範囲です)

■全文字データ複写CX_TEXT_ALL

複写範囲内の全文字データを複写します。


NULL、制御コードは空白に置き換えます。

1バイト文字は「CodeConvType(1バイトコード変換種別)」プロパティで指定するコード変換種別で変換し、変換エラーを起こす文字は’-’ハイフンに置き換えます。


フィールドアトリビュート位置と、改行位置は「CopyFormat(取得フォーマット)」プロパティで指定する書式に従って変換します。(文字、制御コードの挿入/置き換え等)

■フィールド(CX_TEXT_FIELD)/入力フィールド文字複写(CX_TEXT_INPUTFIELD

複写範囲内に存在する複写対象フィールド内の文字データのみを複写します。


NULL、制御コード、および複写対象フィールド内の文字の前後にある空白は削除します。

1バイト文字は「CodeConvType(1バイトコード変換種別)」プロパティで指定するコード変換種別で変換し、変換エラーを起こす文字は’-’ハイフンに置き換えます。


フィールドアトリビュート位置と、改行位置は「CopyFormat(取得フォーマット)」プロパティで指定する書式に従って変換します。(文字、制御コードの挿入/置き換え等)

<フィールド内文字の前後にある空白の削除例>

[□□□□□□AAAAA]─前に空白がある場合───→“AAAAA”

[AAAAA□□□□□□]─後ろに空白がある場合──→“AAAAA”

[□□AAA□□AA□□]─前後と間に空白がある場合→“AAA□□AA”

(“[ ]”はフィールド、□は空白を表します)

■属性情報(CX_ATTR1CX_ATTR4)

複写範囲内の属性情報を複写します。

属性情報の複写は「GetScreen、~Async(画面情報の取得)」メソッドでのみ指定可能です。


属性情報はビットの組み合わせで表します。

そのため、「CopyFormat(取得フォーマット)」プロパティを使用したアトリビュート位置、改行位置に対する文字変換/挿入は行いません。

属性情報は複写範囲内の各行をそのままつなげた連続したデータとして複写します。

属性情報を表すビット値については「8.7.1 ディスプレイ端末の属性情報フォーマット」を参照してください。


「CopyMode」へ設定する値には次のものがあります。

情報種別

複写動作

定義名

文字

指定範囲内の全データ

CX_TEXT_ALL

0

フィールド内の文字のみ

CX_TEXT_FIELD

1

入力フィールド内の文字のみ

CX_TEXT_INPUTFIELD

2

属性:フィールド論理属性

指定範囲内の全データ複写

CX_ATTR1

3

属性:フィールド表示属性

CX_ATTR2

4

8.3.3.3 取得フォーマットCopyFormatプロパティ

構文

object. CopyFormat [=format ]

データ型

文字列

アクセス方法

参照/設定

設定値範囲

80バイト以内の文字列

初期値

“[][0D0A]”(FA位置→削除、改行位置→CR+LFコード)

対象エミュレータ

「GetScreen、CopyScreen、~Async(画面情報の取得)」メソッドによってディスプレイ端末画面の文字を取得する際、フィールドアトリビュート位置と改行位置(画面右端、または複写矩形の右端)に対して文字や制御コードを設定することができます。

書式指定は文字の取得時のみ有効です。

「CopyMode(複写モード)」プロパティで属性情報の取得を指定した場合、書式指定は使用しません。

書式は80バイト以内の文字列で指定します。

値は設定、参照する事が可能です。

初期値は“[] [0D0A]”(FA位置→削除、改行位置→CR+LFコード)です。


記述形式([ ]内のパラメータは省略可能です。改行は空白文字区切りを意味します。)

[FA置換え文字
[改行置換え文字]]

■FA置換え文字

複写範囲内に存在するフィールドアトリビュート位置を、指定する文字や制御コードに置き換えます。


制御コードを指定する場合には“[0D0A]”の様にカッコ[]で囲みます。

空白を指定する場合には“[ ]”の様にカッコ[]で囲みます。

制御コードと文字の混在“ABCD[0D0A]アイウ[09]”等も可能です。

カッコ記号のみ指定する場合には“[[”の様にカッコを重ねて書きます。

指定は省略可能であり、何も囲まないカッコ“[]”を記述した場合も省略を意味します。

指定を省略した場合、フィールドアトリビュート位置の1バイトは、文字変換されず削除されます。

■改行置換え文字

複写範囲の改行位置へ、指定する文字や制御コードを挿入します。


制御コードを指定する場合には“[0D0A]”の様にカッコ[]で囲みます。

空白を指定する場合には“[ ]”の様にカッコ[]で囲みます。

制御コードと文字の混在“ABCD[0D0A]アイウ[09]”等も可能です。

カッコ記号のみ指定する場合には“[[”の様にカッコを重ねて書きます。


指定は省略可能であり、何も囲まないカッコ“[]”を記述した場合も省略を意味します。

指定を省略した場合、改行位置には何も挿入されず、複写範囲内の各行は連続した文字列として格納されます。


<フィールドアトリビュート位置へ’@’、改行位置へCR/LFコードを指定した場合>

CopyFormat=@ 0D0A

8.3.3.4 貼り付けフォーマットPasteFormatプロパティ

構文

object. PasteFormat [=format ]

データ型

文字列

アクセス方法

参照/設定

設定値範囲

80バイト以内の文字列

初期値

“[0D0A] [RETURN]”(CR+LFコード→改行キー)

対象エミュレータ

「PutScreen、PasteScreen、~Async(画面情報の貼り付け)」メソッドによりディスプレイ端末画面へ文字を貼り付ける際、貼り付け元の文字列中にセパレータを設定し、セパレータに対して任意の文字やエミュレータキーを割り当てることができます。

書式は80バイト以内の文字列で指定します。

値は設定、参照する事が可能です。

初期値は“[0D0A] [RETURN]”(CR+LFコード→改行キー)です。


記述形式([ ]内のパラメータは省略可能です。改行は空白文字区切りを意味します。)

[区切り文字
 区切り置換え文字]

■区切り文字

貼り付け元の文字列中の文字や制御コードを区切り文字として設定します。

セパレータは貼り付け時に「区切り置換え文字」の指定に従って文字やエミュレータキー等に置き換えられます。


制御コードを指定する場合には“[0D0A]”の様にカッコ[]で囲みます。

空白を指定する場合には“[ ]”の様にカッコ[]で囲みます。

制御コードと文字の混在“ABCD[0D0A]アイウ[09]”等も可能です。

カッコ記号のみ指定する場合には“[[”の様にカッコを重ねて書きます。


「区切り置換え文字」と共に省略が可能です。

省略時には貼り付け文字列をそのまま複写します。

■区切り置換え文字

区切り文字を置き換える文字やエミュレータキー等を指定します。


エミュレータキー、ホスト漢字コードを指定する場合には、「SendKeys、~Async(キー入力)」メソッドで扱う文字ベースの記述(“[TAB]”、“[41A1]”の様に‘[’と‘]’で囲まれた文字列)で記述します。

空白を指定する場合には“[ ]”の様にカッコ[]で囲みます。

文字との混在“ABCD[TAB]アイウ[41A1]”も可能です。

区切り文字を削除する場合にはカッコのみ“[]”を記述します。

なお、「SendKeys、~Async(キー入力)」メソッドと同様に貼り付け最中にキーボードロック状態が発生する場合(プログラム・アテンション・キーを指定、フィールド脱出によるアテンションの発生 等)、後に続く文字の貼り付けは保証されません。

■追加指定

‘|’で区切る事により「区切り文字」と「区切り置換え文字」の条件を複数指定する事が可能です。

「PastFormat」プロパティにカッコ記号のみ指定する場合には“[[”の様に重ねて書きます。

「PastFormat」プロパティに‘|’記号のみ指定する場合には“||”の様に重ねて書きます。

CR/LFコードを区切りに、区切り動作をタブキー動作に指定した例>

PasteFormat =[0D0A] [TAB]


<タブコードを区切りに、区切り動作を削除に指定した例>

PasteFormat =[09] []


<タブコード→削除、 追加指定でCR/LFコード→タブキー動作 に指定した例>

PasteFormat =[09] []|[0D0A] [TAB]

8.3.3.5 画面情報ScreenDataプロパティ

構文

object. ScreenData

データ型

バイト型

アクセス方法

参照

初期値

なし

対象エミュレータ

「GetScreen、~Async(複写)」メソッドにより複写したディスプレイ端末の画面情報が格納されます。

値は参照のみ可能であり、ホスト接続中の間有効です。


格納されるデータサイズは、「GetScreen、~Async(複写)」メソッドの引数で指定する複写矩形と、「CopyMode(複写方法)」、「CopyFormat(取得フォーマット)」プロパティで指定するデータ種別、複写方法、取得フォーマットに依存します。

8.3.3.6 複写GetScreen、GetScreenAsyncメソッド

構文

object. GetScreen ( [row1,column1 [,row2,column2]] )

object. GetScreenAsync ( [row1,column1 [,row2,column2]] )

引数

引数は次のものです。

項目

内容

row1

整数

複写元の開始行位置を指定します。

column1

整数

複写元の開始桁位置を指定します。

row2

整数

複写元の終了行位置を指定します。

column2

整数

複写元の終了桁位置を指定します。

二重発行動作

キャンセル

復帰値

0:正常/その他の値:異常

対象エミュレータ

関連プロパティ

WaitTime,WaitStatusTime,CodeConvType,DspemuRow,DspemuColumn, RectFlag,CopyMode,CopyFormat,ScreenData

ディスプレイ端末の画面の文字または属性情報を「ScreenData(画面情報)」プロパティへ複写します。


メソッドの処理にはプロパティの「WaitTime(処理の応答待ち時間)」「WaitStatusTime(ホスト状態の監視時間)」指定値が使用され、「キー入力可能」状態を待ち合わせてディスプレイ端末の画面情報を「ScreenData(画面情報)」プロパティへ複写します。

タイムアウトが発生した場合には、その時点の画面情報を複写します。


複写の範囲は引数「row1、column1、row2、column2」で指定する範囲内で「RectFlag(矩形フラグ)」プロパティに従って行います。

「row1、column1」は合わせて省略が可能です。省略された場合には、1行1桁目を開始位置とします。

「row2、column2」は合わせて省略が可能です。省略された場合には、最終行、最終桁を終了位置とします。

引数「row1、column1、row2、column2」の指定有効範囲は1行、1桁から「DspemuRow、DspemuColumn(画面サイズ・行、桁)」プロパティが表すディスプレイ端末の最大行、桁までとなります。

引数の指定を省略した場合には、それぞれの最小、最大値を省略値として使用します。(全て省略した場合には全画面)


文字と属性情報のどちらを複写するかは、「CopyMode(複写方法)」プロパティの指定により決定します。

8.3.3.7 複写完了通知ResultGetScreenイベント

構文

object_ ResultGetScreen ( result )

引数

引数は次のものです。

項目

内容

result

整数

GetScreenAsyncメソッドの処理結果

復帰値

意味を持ちません。

対象エミュレータ

「GetScreenAsync(複写)」メソッドによる文字/属性情報の複写処理の完了時に発生します。

イベントの引数として、複写結果が通知されます。

8.3.3.8 クリップボードへの複写CopyScreen、CopyScreenAsyncメソッド

構文

object. CopyScreen ( [row1,column1 [,row2,column2]] )

object. CopyScreenAsync ( [row1,column1 [,row2,column2]] )

引数

引数は次のものです。

項目

内容

row1

整数

複写元の開始行位置を指定します。

column1

整数

複写元の開始桁位置を指定します。

row2

整数

複写元の終了行位置を指定します。

column2

整数

複写元の終了桁位置を指定します。

二重発行動作

キャンセル

復帰値

0:正常/その他の値:異常

対象エミュレータ

関連プロパティ

WaitTime,WaitStatusTime,CodeConvType,DspemuRow,DspemuColumn, RectFlag,CopyMode,CopyFormat,

ディスプレイ端末の画面の文字をクリップボードへ複写します。

メソッドの動作は「GetScreen、~Async(複写)」メソッドと同様ですが、属性情報の複写はできません。

「CopyMode(複写方法)」で属性情報を指定した場合、メソッドは失敗します。


メソッドの処理にはプロパティの「WaitTime(処理の応答待ち時間)」「WaitStatusTime(ホスト状態の監視時間)」指定値が使用され、「キー入力可能」状態を待ち合わせてディスプレイ端末画面の文字をクリップボードへ複写します。

タイムアウトが発生した場合には、その時点の画面情報を複写します。


複写の範囲は引数「row1、column1、row2、column2」で指定する範囲内で「RectFlag(矩形フラグ)」プロパティに従って行います。

「row1、column1」は合わせて省略が可能です。省略された場合には、1行1桁目を開始位置とします。

「row2、column2」は合わせて省略が可能です。省略された場合には、最終行、最終桁を終了位置とします。

引数「row1、column1、row2、column2」の指定有効範囲は1行、1桁から「DspemuRow、DspemuColumn(画面サイズ・行、桁)」プロパティが表すディスプレイ端末の最大行、桁までとなります。

引数の指定を省略した場合には、それぞれの最小、最大値を省略値として使用します。(全て省略した場合には全画面)


複写文字は、「CopyMode(複写方法)」、「CopyFormat(取得フォーマット)」プロパティにより指定される複写方法と取得フォーマットで複写します。


ホスト→パソコン間の1バイト文字は、「CodeConvType(1バイトコード変換種別)」プロパティで指定する変換種別でコード変換を行います。

8.3.3.9 クリップボードへの複写完了通知ResultCopyScreenイベント

構文

object_ ResultCopyScreen ( result )

引数

引数は次のものです。

項目

内容

result

整数

CopyScreenAsyncメソッドの処理結果

復帰値

意味を持ちません。

対象エミュレータ

「CopyScreenAsync(クリップボードへの複写)」メソッドによるクリップボードへの複写処理完了時に発生します。

イベントの引数として、複写結果が通知されます。

8.3.3.10 貼り付けPutScreen、PutScreenAsyncメソッド

構文

object. PutScreen ( string [,row1,column1 [,row2,column2]] )

object. PutScreenAsync ( string [,row1,column1 [,row2,column2]] )

引数

引数は次のものです。

項目

内容

string

文字列

ディスプレイ端末へ貼り付ける文字列

row1

整数

貼り付け先の開始行位置を指定します。

column1

整数

貼り付け先の開始桁位置を指定します。

row2

整数

貼り付け先の終了行位置を指定します。

column2

整数

貼り付け先の終了桁位置を指定します。

二重発行動作

キャンセル

復帰値

0:正常/その他の値:異常

対象エミュレータ

関連プロパティ

WaitTime,WaitStatusTime,CodeConvType,DspemuRow,DspemuColumn, RectFlag,PasteFormat

ディスプレイ端末へ文字情報の貼り付けを行います。文字情報の貼り付け処理は「PasteFormat(貼り付けフォーマット)」に従って行われるキー入力エミュレーション機能です。


メソッドの処理にはプロパティの「WaitTime(処理の応答待ち時間)」「WaitStatusTime(ホスト状態の監視時間)」指定値が使用され、「キー入力可能」状態を待ち合わせて引数「str(貼り付け文字列)」の入力を開始します。タイムアウトが発生した場合には、貼り付けは行いません。


貼り付けの範囲は引数「row1、column1、row2、column2」で指定する範囲内で「RectFlag(矩形フラグ)」プロパティに従って行います。

「row1、column1」は合わせて省略が可能です。省略された場合には、1行1桁目を開始位置とします。

「row2、column2」は合わせて省略が可能です。省略された場合には、最終行、最終桁を終了位置とします。

引数「row1、column1、row2、column2」の指定有効範囲は1行、1桁から「DspemuRow、DspemuColumn(画面サイズ・行、桁)」プロパティが表すディスプレイ端末の最大行、桁までとなります。

引数の指定を省略した場合には、それぞれの最小、最大値を省略値として使用します。(全て省略した場合には全画面)

複写文字数が貼り付け範囲の文字数を超えている場合には範囲内で切り捨てられます。


引数「string」は、「PasteFormat(貼り付けフォーマット)」プロパティの指定に従ってフォーマット(分割、置き換え)した後、ディスプレイ端末へ入力されます。


パソコン→ホスト間の1バイト文字は、「CodeConvType(1バイトコード変換種別)」プロパティで指定する変換種別でコード変換を行います。

なお、文字列の入力開始後はキーボードロック状態の監視を行いません。

そのため、入力中にキーボードロック状態が発生する場合(プログラム・アテンション・キーを文字列の途中に指定、フィールド脱出によるアテンションの発生 等)、その後に続く文字の入力が正常に行われない場合があります。

8.3.3.11 貼り付け完了通知ResultPutScreenイベント

構文

object_ ResultPutScreen ( result )

引数

引数は次のものです。

項目

内容

result

整数

PutScreenAsyncメソッドの処理結果

復帰値

意味を持ちません。

対象エミュレータ

「PutScreenAsync(貼り付け)」メソッドによる文字情報の貼り付け処理の完了時に発生します。

イベントの引数として、貼り付け結果が通知されます。

8.3.3.12 クリップボードからの貼り付けPasteScreen、PasteScreenAsyncメソッド

構文

object. PasteScreen ( [row1,column1 [,row2,column2 ]] )

object. PasteScreenAsync ( [row1,column1 [,row2,column2]] )

引数

引数は次のものです。

項目

内容

string

文字列

ディスプレイ端末へ貼り付ける文字列

row1

整数

貼り付け先の開始行位置を指定します。

column1

整数

貼り付け先の開始桁位置を指定します。

row2

整数

貼り付け先の終了行位置を指定します。

column2

整数

貼り付け先の終了桁位置を指定します。

二重発行動作

キャンセル

復帰値

0:正常/その他の値:異常

対象エミュレータ

関連プロパティ

WaitTime,WaitStatusTime,CodeConvType,DspemuRow,DspemuColumn, RectFlag,PasteFormat

ディスプレイ端末へクリップボードにある文字列の貼り付けを行います。文字の貼り付けとは「PasteFormat(貼り付けフォーマット)」に従って行われるキー入力エミュレーション機能です。


メソッドの処理にはプロパティの「WaitTime(処理の応答待ち時間)」「WaitStatusTime(ホスト状態の監視時間)」指定値が使用され、「キー入力可能」状態を待ち合わせてクリップボードからの文字入力を開始します。

タイムアウトが発生した場合には、貼り付けは行いません。


貼り付けの範囲は引数「row1、column1、row2、column2」で指定する範囲内で「RectFlag(矩形フラグ)」プロパティに従って行います。

「row1、column1」は合わせて省略が可能です。省略された場合には、1行1桁目を開始位置とします。

「row2、column2」は合わせて省略が可能です。省略された場合には、最終行、最終桁を終了位置とします。

引数「row1、column1、row2、column2」の指定有効範囲は1行、1桁から「DspemuRow、DspemuColumn(画面サイズ・行、桁)」プロパティが表すディスプレイ端末の最大行、桁までとなります。

引数の指定を省略した場合には、それぞれの最小、最大値を省略値として使用します。(全て省略した場合には全画面)

複写文字数が貼り付け範囲の文字数を超えている場合には範囲内で切り捨てられます。


貼り付ける文字は、「PasteFormat(貼り付けフォーマット)」プロパティの指定に従ってフォーマット(分割、置き換え)した後、ディスプレイ端末へ入力されます。

パソコン→ホスト間の1バイト文字は、「CodeConvType(1バイトコード変換種別)」プロパティで指定する変換種別でコード変換を行います。

なお、文字列の入力開始後はキーボードロック状態の監視を行いません。

そのため、入力中にキーボードロック状態が発生する場合(プログラム・アテンション・キーを文字列の途中に指定、フィールド脱出によるアテンションの発生 等)、その後に続く文字の入力が正常に行われない場合があります。

8.3.3.13 クリップボードからの貼り付け完了通知ResultPasteScreenイベント

構文

object_ ResultPasteScreen ( result )

引数

引数は次のものです。

項目

内容

result

整数

PasteScreenAsyncメソッドの処理結果

復帰値

意味をもちません

対象エミュレータ

「PasteScreenAsync(クリップボードからの貼り付け)」メソッドによるクリップボードからの文字貼り付け処理完了時に発生します。イベントの引数として、貼り付け結果が通知されます。