RBF Analyzer User's Guide ご利用ガイド RBF Ver. 1.1.6 系 |
Newest Version: Update: |
Currently Details site is in Japanese. If you want to display in another language, Please use the translation function of your browser. |
■ Menu ・用語の説明 ・RBF Analyzer の起動方法 API Method 引数の調査方法 ・FindWindowHnd() ・SetWindowSizeAdjust() ・KeyboardTyping() ・UIAuto() ・GetWindowPixcel() ・MouseClick() ・Javaアプリ画面制御について ・外国語OSについて |
この度は、RBF Application Analyzer のご利用誠にありがとうございます。
本ソフトウェアへの機能やAPI等のリクエストは、積極的に取り入れて行きたいと考えております。 |
■ 用語の説明
本ソフトウェアで使用される用語を説明します。
■ RBF Analyzer の起動方法 本ソフトウェアをインストール、または起動されますとデスクトップ画面下にあるタスクバーにRBFアイコンが表示されます。 表示されてない場合、^ をクリックしてRBFアイコンをタスクバーにドラッグ&ドロップして移動させて下さい。 RBFアイコンをクリックしますとRBFランチャー画面が表示されます。 RBFランチャーの RBF Application Analyzer タイトルアイコンをクリックしますと、RBF Analyzer が起動され画面が表示されます。 ■ RBF Analyzer 画面 RBF Analyzer が起動され画面が表示されます。 下記の画面は、UI操作したいウィンドウ画面が選択された時の画面です。 ■ FindWindowHnd() 引数の調査方法 終端RBFホストのウィンドウを制御したい場合、目的のウィンドウのウィンドウハンドルを取得する必要があります。 FindWindowHnd()メソッドは、そのウィンドウハンドルを取得するAPIメソッドです。
一般的にウィンドウクラス名は、ウィンドウ画面毎に必ず固定ですが、テキスト名は、表示するウィンドウ画面の内容により 変更される場合があります。 その場合は、テキスト名にワイルドカード文字を指定して目的のウィンドウ画面を検索します。 例えば、Microsoft Edge のウィンドウ画面である場合 トップクラス名 : "Chrome_WidgetWin_1" トップテキスト名: "<ホームページタイトル名>" + "- 個人 - Microsoft Edge" Robowiser Framework サイトの表示であれば、ワイルドカード文字を指定して トップクラス名 : "Chrome_WidgetWin_1" トップテキスト名: "Robowiser Framework*" とすることで、目的のウィンドウハンドルを取得します。 FindWindowHnd()に引数を設定するデータが実際に取得できるかどうかを RBF Analyzer で検証します。 ボタンをクリックするのと FindWindowHnd()に引数を設定した検索と同じ実行となりますので 目的のウィンドウ画面が検索できる引数の文字パターンを RBF Analyzer でシミュレーションします。 子クラス名と子テキスト名を空欄にしますと、トップ(親)ウィンドウのみが検索の対象となります。 目的のウィンドウの検索に成功しますと、マウスカーソルが検索されたウィンドウの中心に移動してウィンドウ画面が 赤い枠に囲まれて約2秒表示されます。 マウスカーソルが中心に移動された状態で、マウスカーソルを2秒以上動かさないと元の位置に戻ります。 目的のウィンドウの検索に失敗しますと、ウィンドウが見つかりませんなどのポップアップウィンドウが表示されます。 マウスカーソルの ドラッグ & ドロップ でウィンドウ画面が 選択できないウィンドウ画面を選択する方法 スタートボタンをクリックして表示されるスタートメニュー画面などのポップアップ系のウィンドウ画面のウィンドウハンドル を取得する引数を調べたい場合の RBF Analyzer の操作方法は2通りあります。 最初に、取得したウィンドウ情報(ウィンドウハンドル)が実際に表示されているかを同期させる [表示画面同期]
のチェックを外して下さい。 2通りの操作方法
1.[経過時間後に取得] で指定された秒数後のマウスカーソル配下のウィンドウ画面の情報を取得する方法 ボタンをクリックしますと RBF Analyzer 画面が非表示になり、指定された時間経過後の マウスカーソル配下のウィンドウ情報を取得して RBF Analyzer 画面が表示されます。 2.[検索サイクル時間] で指定された秒数後のマウスカーソル配下のウィンドウ画面の情報を取得する方法 ボタンをクリックしますと指定された検索サイクル時間後のマウスカーソル配下のウィンドウ情報を サイクル時間の間隔で取得し続けます。 RBF Analyzer 画面にマウスカーソルを移動しますとマウスカーソル配下のウィンドウ情報の取得は一時停止します。 取得したウィンドウ情報をマウスカーソル移動中にサイクル時間になり更新されたく無い場合に有効です。 停止する場合は、 ボタンをクリックします。 ■ SetWindowSizeAdjust() 引数の調査方法 終端RBFホストのウィンドウ画面でUI操作するウィンドウ画面をデスクトップ画面内に全て表示させる為にウィンドウ画面の 表示座標、及び幅と高さを調整する SetWindowSizeAdjust() メソッドに設定する引数を調べる場合の RBF Analyzer の 操作の説明です。
例えば、実際に Microsoft Edge のウィンドウ画面である場合は、下記のように表示されます。 RBF API SetWindowSizeAdjust() メソッドの引数には screen_x = 601 screen_y = 99 width_x = 921 hight_y = 820 を設定します。 RBF Analyzer 画面の表示 HDL は、取得したウィンドウハンドルの16進表示を示します。 [補足] 上記の画面に表示されいる実行ファイル情報は、ウィンドウ画面を表示しているフルパスの実行ファイル名です。 ウィンドウ画面を表示している実行ファイルが不明な場合でも RBF Analyzer 画面で取得する事ができます。 ■ KeyboardTyping() 引数の調査方法 終端RBFホストのウィンドウ画面でキーボード入力させる KeyboardTyping()メソッド 引数の仮想キーコードの文字列データを事前に シミュレーション(確認)したい場合の RBF Analyzer の操作の説明です。
表示されている Keycode Send 入力ボックスの右のコピーアイコン をクリックしますと、クリップボードにコピーされますので、 プログラムソースにある KeyboardTyping() メソッドの引数 key_stroke に設定します。 ■ UIAuto() 引数の調査方法 終端RBFホストのウィンドウ画面でUI操作する UI Auto() メソッドの引数を取得する操作の説明です。
Inner ID は、アプリやHTML(CGI)の開発者が内部でオブジェクト等を識別される為に割り付けてられているIDですので 一般的に Inner ID は、必ず固定ですが、Text、Value、変更される場合があります。 その場合は、Text、Value、ワイルドカード文字を指定して目的のオブジェクト要素を検索します。 例えば、ブラウザのウィンドウ画面である場合 CTRL Type:Hyperlink 50005 (0xC355) Text : "Robowiser for User's Guide" → ブラウザで表示される文字 Value : "https://www.robowiser.com/userguide/" → クリックすると移動先のURL Inner ID : "" Robowiser Framework サイトの表示であれば、ワイルドカード文字を指定して Text : "Robowiser*" Value : "https://www.robowiser.com/userguide/*" とすることで、目的のオブジェクト要素を取得します。 このように固定となる文字列の箇所を見出す必要があります。 【Invoke機能が 無効であるオブジェクト要素について】 オブジェクト要素のコントロールタイプで下記のコントロールタイプが、現時点での Windows の仕様より Invoke に対応しております。 UIA_BUTTON_CONTROLTYPEID (50000) UIA_HYPERLINK_CONTROLTYPEID (50005) UIA_LISTITEM_CONTROLTYPEID (50007) UIA_MENUITEM_CONTROLTYPEID (50011) UIA_TREEITEM_CONTROLTYPEID (50024) UIA_SPLITBUTTON_CONTROLTYPEID (50031) UIA_HEADER_CONTROLTYPEID (50034) Invokeが、無効である場合は、 ボタンの文字が 赤色に変化します。 Invoke機能が無効の場合で、[Exec Invoke] ボタンをクリックしますとオブジェクト要素の四角形の 中心座標をマウスによりクリックが実行されます。 実際にマウスでクリックできるのに Invokeが無効である為、マウスでクリックするようにしたものです。 Invokeが無効である場合は、Invokeでなくマウスでクリックされる点に注意ください。 ※RBF API uiauto() も同じアクションとなります。 但し、Invokeでなくマウスでクリックされた場合で、コントロールタイプがマウスクリックに対応していない 場合はクリックによるアクションは起こりません。 【注意】 Invokeでは、画面に表示されていない場合でもクリックと同じアクションを行えますが、ボタンの文字が 赤色である場合は、必ず画面にオブジェクト要素が表示されていることが必要となりますので注意ください。 尚、Invokeが無効の場合、オブジェクト要素のプロパティに invoke=false が設定されます。 【参考】 実際に動作するサンプルプログラムで UIAuto()メソッドが使われている 07_02 と 07_03 もご参照ください。 UIAuto() メソッドの引数 scan_area UIAuto() メソッドの引数 scan_area と同じ指定は、RBF Analyzer のリスト表示の上に表示されている
で指定します。 [表示エリア走査]:ウィンドウ画面内に表示されているオブジェクト要素を走査 [全エリア走査] :ウィンドウ画面以外で表示されていないオブジェクト要素も走査 アプリが ブラウザ Microsoft Edge である場合は、上記の画面のように [全エリア走査] を選択して [表示画面同期] の チェックボックスにチェックします。 チェックするとオブジェク要素リストのオブジェクト要素を指定した時に元のウィンドウハンドルが存在しているかを確認 します。ウィンドウハンドルが無効である場合、エラーメッセージが表示されオブジェクト要素のリスト表示がクリアーさ れます。 ブラウザがIEである場合、表示に変化されていなくとも ウィンドウハンドルが突然変更されてしまう現象が発生しており 旧RBF Analyzerでは、検知機能がありませんでした。ウィンドウハンドルの変化に気が付かないと開発に影響します。 現時点では、Microsoft Edge で IEで発生していたウィンドウハンドルが変更される現象は発生しておりませんが、 ウィンドウハンドルが突然変更されてしまう可能性があるアプリの場合は、チェックします。 また Microsoft Edge の場合で [全エリア走査]を選択する理由は、画面表示枠外のオブジェクト要素が検索でき Invoke することができる為です。Google Chrome である場合は、画面表示枠外のオブジェクト要素は検索できません。 この為、[全エリア走査] と指定しても機能しません。(現時点) このようにオブジェクト要素(UI Tree DBへのオブジェクト要素登録内容)は、アプリに依存した特性が存在します。 オブジェクト要素 検索のポイント 検索条件 1: CTRL Type 2: Text 3: Value 4: Inner ID 5: "2~4 の文字列のパターンマッチ" 6: View No. (通常は、1となるように検索します) 上記の条件を駆使してターゲットのオブジェクト要素を検索できように RBF Analyzer で絞り込みます。 Text、Value、InnerID の文字列が全て空文字("") のオブジェクト要素を検索するには 検索条件 1: Tree Index のみの検索となります。 UIAuto() メソッドの引数 scan_order RBF Analyzer の表示で 各テキストボックスの左側にあるチェックボックスが UIAuto() メソッドの引数 scan_order の指定と同じ指定となります。 オブジェクト要素の検索実行 オブジェクト要素の検索の実行は、 ボタンをクリックすると 指定された条件で検索します。 検索の処理を中止したい場合は、リスト表示の上の ボタンをクリックすると中止します。 検索中は、下記の画面で検索状況をお知らせします。 表示の項目名と説明
■ 検索されたオブジェクト要素総数とは UI Tree DB をルートから検索して登録されているオブジェクト要素数です。 ■ 有効なオブジェクト要素総数とは オブジェクト要素が正しい座標を持っていない、及び 検索条件 [表示エリア検索]、[全エリア検索]の条件に適合したオブジェクト要素 など UI 操作で有効なオブジェクト要素数が表示されます。 オブジェクト要素のリスト表示されている数と同じです。 ■ オブジェクト要素の検索成功 目的のオブジェクト要素の検索に成功しますと、オブジェクト要素が赤い枠に囲まれて約2秒表示されます。 さらにオブジェクト要素は、フォーカスされます。 UIAuto()メソッド 引数 method = SET_FOCUS と同じ処理となります。 にチェックされている場合は、 マウスカーソルが検索されたオブジェクト要素の中心に移動します。 この時、マウスカーソルを2秒以上動かさないと元の位置に戻ります。 ■ オブジェクト要素の検索失敗 失敗しますと赤枠で囲まれません。リスト表示の上の検索カウンターの背景色が赤になります。 オブジェクト要素リスト表示の項目名と説明
検索条件が決まりましたら、表示されているテキスト名の左のコピーアイコン をクリックしますと、 クリップボードにコピーされますので、プログラムソースにある UIAuto() の引数に設定します。 コントロールタイプ Invoke アクションの検証 UIAuto()メソッド 引数 method = EXEC_INVOKE と同じ実行をさせるには、 ボタンをクリックします。 オブジェクト要素の検索に失敗しますとリスト表示の上の検索カウンターの背景色が赤色になります。 オブジェクト要素の検索に成功しますとオブジェクト要素のコントロールタイプに関連付けられたアクションが 実行されます。 オブジェクト要素のコントロールタイプに関連付けられたアクションが無い場合は、エラーメッセージが表示さ れます。 [補足] アプリが出力するウィンドウ画面(ブラウザ画面含む)のコントロールタイプに Invoke しても反応しなく正常終了 する場合があります。これは Invoke のアクションの割り付けがアプリケーション(開発者含む)に依存する為です。 この場合、目的のオブジェクト要素をフォーカスして、MouseClick()、または KeyboardTyping() メソッドで操作 します。 コントロールタイプ Value 文字の設定 アクションの検証 UIAuto()メソッド 引数 method = SET_VALUE と同じ実行させるには、 に Value に設定する文字を入力して をクリックします。 何も入力されていない場合でも 空の文字 として設定されます。 オブジェクト要素の検索に失敗しますとリスト表示の上の検索カウンターの背景色が赤になります。 オブジェクト要素の検索に成功しますと入力された文字が Value に設定されます。 オブジェクト要素のコントロールタイプに Value への文字列の設定ができない場合は、エラーメッセージが 表示されます。 正しく Value の文字列が設定されましたら 入力ボックスの右のコピーアイコン をクリックしますと、 クリップボードにコピーされますので、プログラムソースにある UIAuto() の引数に設定します。 [補足] オブジェクト要素のプロパティに readonly=true がある場合は、通常は設定(書き込み)できません。 Invokeと同様に Value に文字列が設定できない場合で、人の操作でキーボードからの入力を受け付ける場合は、 目的のオブジェクト要素をフォーカスして、KeyboardTyping() メソッドで入力、倍角文字の入力である場合は、 ClipboardText() メソッドで入力させます。 ■ GetWindowPixcel() 引数の調査方法 GetWindowPixcel() メソッドで、画像表示の色が、前回値、今回値とで変化した場合など画面の色の変化を監視することができますが、 ウィンドウ画面に表示されているクライアント座標のピクセルのRGB値を取得する操作の説明です。
■ MouseClick() 引数の調査方法 MouseClick() メソッドのグラフィックパターンの引数のビットマップパターン係数値を取得する操作の説明と ウィンドウ画面を画像変換後にOCRで文字化した 引数 Text に指定する文字列を取得する操作の説明です。 MouseClick() メソッドの引数 bmp_code の取得 MouseClick() メソッドのグラフィックパターンの引数のビットマップパターン係数値を取得する操作の説明です。
[Mouse Click Graphic] 画面
画面の検索条件を指定してから Finder アイコンをマウスカーソルでドラッグしてグラフィックパターンを取得したいエリアを 指定します。 ビットマップパターン係数値に保管されている情報
その他の引数は、MouseClick()メソッドの引数で指定します。 クリックしたい画像エリアが操作で決定されましたら
をクリックしますと、ビットマップパターン係数へ変換します。 ビットマップパターン係数に変換後に、ビットマップパターン係数より指定の画像を検索できるかが実行されます。 検索に成功しますと
ボタンの文字の色がオレンジ色に変わり、マウカーソルが指定の画像の中心に移動します。 マウスカーソルが中心に移動された状態で、マウスカーソルを2秒以上動かさないと元の位置に戻ります。 ビットマップパターン係数値の文字列が表示されているテキストの右のコピーアイコン をクリックしますと、 クリップボードにコピーされますので、プログラムソースにある MouseClick() メソッドの 引数 bmp_code に設定します。 検索に失敗しますと、テキスト文字が見つかりませんなどのポップアップウィンドウが表示されます。 MouseClick() メソッドの引数 OCR 解析による text の取得 MouseClick() メソッドのOCRで走査した文字を取得する操作の説明です。
[Mouse Click OCR] 画面
[Mouse Click OCR] 画面 の表示項目 と MouseClick() メソッド 引数名の対応表
画面に表示されているテキストリスト表示のいずれかをクリックしますと選択されたテキストが実際に表示されている座標 を四角で囲んでオレンジ色で約3秒間表示されます。 リスト表示されているオブジェクト要素を 矢印キー ↑ または ↓ で選択を移動された場合でも対応するテキストが四角で 囲んでオレンジ色で約3秒間表示されます。 テキストリストから目的のテキストを選択しますと下記の画面の入力ボックスに選択された文字がコピーされます。 ボタンをクリックしますと 入力されたテキスト文字の検索が実行されます。 一般的に同じ画像であれば、OCRに変換されたテキストは必ず同じテキストですが、画像より変更される場合は、 文字列(テキスト)にワイルドカード文字を指定して目的のテキストを検索します。 目的のテキスト検索に成功しますと、マウスカーソルが検索されたテキストの中心に移動してテキスト文字をオレンジ色 の枠に囲んで約2秒表示されます。 マウスカーソルが中心に移動された状態で、マウスカーソルを2秒以上動かさないと元の位置に戻ります。 目的のウィンドウの検索に失敗しますと、マウカーソルは移動しません。 クリックしたいテキスト文字が決定されましたら、表示されているテキストの右のコピーアイコン をクリックしますと、 クリップボードにコピーされますので、プログラムソースにある MouseClick() メソッド 引数 text に設定します。 ■ Javaアプリ画面制御について ■ Java Access Bridgeについて RBF APIでは、Javaをインストールすると標準で配置される Java Access Bridge を使用して Javaアプリ画面を制御します。 Java Access Bridge(JAB) とは、ORACLE Java が提供する Microsoft Windows DLL で Javaアプリケーション画面を制御する 支援するユーティリティです。 RBFでは、windowsaccessbridge-64.dll を使用してJava画面を制御します。 JAB と UIAuto では、アーキテクチャが異なり JAB には Microsoft Windows が提供する UI Tree Database(DB) がありません。 JAB では画面を制御する構造がUI Tree DB構造とは異なる Tree構造で制御しますが、これを RBFエンジン側で、UIAutoと同じ UI Tree DB を構築して RBF API UIAuto()と同じ感覚でプログラム開発ができるように実現しております。 但し、Microsoft Windows UIAutoで操作を実行する Invoke 機能と同等の機能が 画面のコントロールボックスを操作する JAB には殆ど無いため、マウスデバイスを制御してクリックするなど完全に同じでないことを予めご了承ください。 Javaアプリ画面を制御できるのは、RBF Ver.1.1.6.11 以上からとなります。 [UIAuto と Java Access Bridge との用語の違い]
Java Access Bridge の有効化 Javaをインストールした初期設定では、Java Access Bridge が無効になっております。 RBF APIで Javaアプリ画面を制御する場合は、事前に Java Access Bridge を有効にする必要があります。 [スタート] ==> [コントロール パネル] ==> [コンピュータの簡単操作] ==> [コンピュータの簡単操作センター] に移動します。 または、Windows ロゴキー + U を押して [コンピュータの簡単操作センター] にアクセスします。 [コンピュータを画面なしで使用します] を選択します。 [他のインストールされたプログラム] セクションで [Java Access Bridge を有効にする] チェックボックス をチェックします。
RBFサーバ 及び RBF API で Java Access Bridge が有効になったことを認識させるには、 Java Access Bridge を有効にしたあとに、RBFサーバを再起動する必要があります。 タスクバーのRBFアイコンを右ボタンでクリック ==> 「RBFサーバ再起動」をクリックして再起動します。 Windows OSが仮想環境など、RBF API や RBF Analyzer が Javaアプリ画面を認識しない場合は、Windows OSを 再起動する必要がある場合があります。 Java動作環境の条件
※ RBF Analyzer で ファインダーアイコンを Java アプリ画面に移動させてもオブジェクト要素を認識しない場合は、 下記が適切であるか確認ください。 ・環境変数 JAVA_HOME のパスが適切に設定されているか。 ・JAVA_HOME のパスの bin 配下に windowsaccessbridge-64.dll ファイルが存在するか。 ・Java Access Bridge が有効にチェックされているか。 コマンドプロンプトを起動して RBF Analyzer の引数 RBF_Analyzer.exe -start -java を指定して起動しますとRBFが認識しない条件がポップアップウィンドウで表示されます。 設定が適切なのに Java アプリ画面のオブジェクト要素を認識しない場合、 RBF が Java Access Bridge の動作環境が有効になったことを認証していない可能があります。 その場合は、Windows OSを再起動してみてください。 ※ Javaアプリ画面の制御は、Java Access Bridge の仕様でありRBFの仕様ではありません。 Java Access Bridge の画面解析など仕様に関係するお問い合わせは出来かねますので予めご了承ください。 Java Access Bridge の動作環境及び仕様に関しては、 Java Accessibility Guide English Java Accessibility ガイド Japanese を参照ください。 ■ 外国語OSについて 本ソフトウェアを起動するWindows OSの言語が日本語以外である場合、現在対応している言語は下記となります。 ・英語で表示 ・韓国語で表示 本ソフトウェアは、Windows OSの言語表示の設定より表示言語を判断しており、日本語、韓国語以外の設定であれば、 英語で表示されます。英語版、韓国語版は、表示が異なるだけで本ソフトウェアの機能は変わりません。 [表示言語を指定する方法] 本ソフトウェアインストール後にWindows OSの言語表示の設定されている言語以外の表示させたい場合は、 下記の手順で表示する言語を指定ください。 本ソフトウェアのインストール先フォルダー C:¥Program Files¥Robowiser¥RBF_Host¥Utils で説明いたします。 インストール先フォルダーが異なる場合は、置き換えて下さい。 ■ RBF Analyzer アプリのショートカット アイコンを下記の引数を指定して作成します。 RBF Analyzer アプリ : "C:¥Program Files¥Robowiser¥RBF_Host¥Utils¥RBF_Analyzer.exe" -start -lang=[en|kr|jp] [引数] -lang=en : 英語 -lang=kr : 韓国語 -lang=jp : 日本語 ※引数の文字は、大文字小文字を区別しません。 英語指定の場合 リンク先   : "C:¥Program Files¥Robowiser¥RBF_Host¥Utils¥RBF_Analyzer.exe" -start -lang=en 作業用フォルダー : "C:¥Program Files¥Robowiser¥RBF_Host" 作成した RBF Analyzer アプリのショートカット アイコンを実行すると指定された言語で表示されます。 尚、本ソフトウェアで使用しているフォントは、下記となります。 日本語 使用フォント:"メイリオ", "游ゴシック" 英語 使用フォント:"Segoe UI", "Arial" 韓国語 使用フォント:"맑은 고딕" ※上記は、Windows標準でインストールされているフォントです。 もし表示の文字化けが発生した場合、Windowsにフォントをインストールする必要があります。 Windows に指定している表示言語から 他の言語の表示へ Windows の表示言語を切り替えた場合、過去のデータは表示の文字化けを起こしますので予めご了承ください。 本ソフトウェアの表示を母国語の言語で表示を希望される場合、当社まで お問い合わせ 下さい。 ■ その他 上記の内容は、予告なしに実際の仕様や機能/表示が変更される場合がありますので予めご了承ください。 ■ 登録商標について Microsoft Windowsは、米国Microsoft社の米国及びその他の国における登録商標です。 Oracle、Java、JavaScriptは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における商標または登録商標です。 ソフトウェアロボットのシンボルマークのロボット画像は、AlterForce社の登録商標です。 AlterForce, Robowiser, RoboBuddy は、 AlterForce社の登録商標です。 本ご利用ガイドに記載の会社名、製品名、及びサービス名はいずれも各社の商標、又は登録商標です。 |
Count:
");
//-->