(57)【要約】【課題】  対象のアプリケーションを修正することなく、対象のアプリケーションの画像を容易に収集することができる情報処理装置及び情報処理プログラムを提供する。【解決手段】  一実施形態に係る情報処理装置は、プロセッサと、操作部材に接続された操作インタフェースと、メモリとを具備する。前記メモリは、前記操作インタフェースに入力された信号から、イベントの検出を前記プロセッサに行わせるデバイスドライバと、前記イベントに基づいて、画面の遷移を前記プロセッサに行わせるアプリケーションと、前記イベントにより遷移する前の前記アプリケーションの画面に基づき、第１の画像データを生成することと、前記イベントにより遷移した後の前記アプリケーションの画面に基づき、第２の画像データを生成することとを前記プロセッサに実行させる画面情報取集プログラムと、を記憶する。【選択図】  図２
2019197504.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
操作部材に接続された操作インタフェースと、
前記操作インタフェースに入力された信号から、イベントの検出を前記プロセッサに行わせるデバイスドライバと、前記イベントに基づいて、画面の遷移を前記プロセッサに行わせるアプリケーションと、前記イベントにより遷移する前の前記アプリケーションの画面に基づき、第１の画像データを生成することと、前記イベントにより遷移した後の前記アプリケーションの画面に基づき、第２の画像データを生成することとを前記プロセッサに実行させる画面情報取集プログラムと、を記憶したメモリと、
を具備する情報処理装置。
【請求項２】
前記画面情報取集プログラムを実行した前記プロセッサは、前記操作インタフェースに入力された信号から前記イベントを、前記デバイスドライバより先に検出し、前記アプリケーションの画面に基づき、前記第１の画像データを生成する請求項１に記載の情報処理装置。
【請求項３】
前記画面情報取集プログラムを実行した前記プロセッサは、
前記第１の画像データと、予めデータベースに登録された画像データとの類似度を算出し、算出された類似度が予め設定された閾値未満である場合、前記第１の画像データを前記データベースに登録し、
前記第２の画像データと、予め前記データベースに登録された前記画像データとの類似度を算出し、算出された類似度が予め設定された閾値未満である場合、前記第２の画像データを前記データベースに登録し、
前記第１の画像データと、予めデータベースに登録された画像データとの類似度を算出し、算出された類似度が予め設定された閾値以上である場合、前記第１の画像データの代わりに類似度の算出に用いた画像データへのリンクを前記データベースに登録し、
前記第２の画像データと、予め前記データベースに登録された前記画像データとの類似度を算出し、算出された類似度が予め設定された閾値以上である場合、前記第２の画像データの代わりに類似度の算出に用いた画像データへのリンクを前記データベースに登録する請求項１または２に記載の情報処理装置。
【請求項４】
前記画面情報取集プログラムを実行した前記プロセッサは、前記第１の画像データ上において前記イベントが発生した位置を示す情報を前記第１の画像データ及び前記第２の画像データにそれぞれ付加して前記データベースに登録する請求項３に記載の情報処理装置。
【請求項５】
プロセッサと、操作部材に接続された操作インタフェースと、前記操作インタフェースに入力された信号から、イベントの検出を前記プロセッサに行わせるデバイスドライバ、及び前記イベントに基づいて、画面の遷移を前記プロセッサに行わせるアプリケーションを記憶したメモリと、を具備する情報処理装置において実行される情報処理プログラムであって、
前記プロセッサに
前記イベントにより遷移する前の前記アプリケーションの画面に基づき、第１の画像データを生成することと、
前記イベントにより遷移した後の前記アプリケーションの画面に基づき、第２の画像データを生成することと、
を実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
アプリケーションにおいて表示される画面を認識することにより、アプリケーションに所定の処理を実行させる自動操作スクリプトが実用化されている。自動操作スクリプトでは、画像（判定用画像）と、アプリケーションに実行させる処理とが対応付けられている。自動操作スクリプト及びアプリケーションを実行する情報処理装置は、アプリケーションに判定用画像と一致する画像が表示された場合に、判定用画像に対応付けられた処理をアプリケーションに実行させる。このような自動操作スクリプトは、アプリケーションの動作のチェックなどに用いられている。
【０００３】
例えば、アプリケーションにおいて表示される画像が変更された場合、自動操作スクリプトの判定用画像を再設定する必要がある。しかしながら、対象のアプリケーションを動作させつつ、判定用画像を収集することが手間であるという課題がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−７３４２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、対象のアプリケーションを修正することなく、対象のアプリケーションの画像を容易に収集することができる情報処理装置及び情報処理プログラムを提供することである。
【課題を解決するための手段】
【０００６】
一実施形態に係る情報処理装置は、プロセッサと、操作部材に接続された操作インタフェースと、メモリとを具備する。前記メモリは、前記操作インタフェースに入力された信号から、イベントの検出を前記プロセッサに行わせるデバイスドライバと、前記イベントに基づいて、画面の遷移を前記プロセッサに行わせるアプリケーションと、前記イベントにより遷移する前の前記アプリケーションの画面に基づき、第１の画像データを生成することと、前記イベントにより遷移した後の前記アプリケーションの画面に基づき、第２の画像データを生成することとを前記プロセッサに実行させる画面情報取集プログラムと、を記憶する。
【図面の簡単な説明】
【０００７】
【図１】図１は、一実施形態に係る情報処理装置の構成例について説明する為の説明図である。
【図２】図２は、一実施形態に係る情報処理装置のメモリに記憶されているプログラムの例について説明する為の説明図である。
【図３】図３は、一実施形態に係る画面情報収集プログラムを実行した情報処理装置の動作の例について説明する為の説明図である。
【図４】図４は、ストレージに登録された画面情報の例について説明する為の説明図である。
【図５】図５は、フィルタドライバを実行した情報処理装置の動作の例について説明する為の説明図である。
【図６】図６は、イベント取得プログラムを実行した情報処理装置の動作の例について説明する為の説明図である。
【図７】図７は、画像取得補助プログラムを実行した情報処理装置の動作の例について説明する為の説明図である。
【発明を実施するための形態】
【０００８】
以下、一実施形態に係る情報処理装置及び情報処理プログラムについて図面を参照して説明する。  
図１は、一実施形態に係る情報処理装置１の例について説明する為の説明図である。
【０００９】
情報処理装置１は、例えばパーソナルコンピュータ、スマートフォン、またはタブレットＰＣなどである。情報処理装置１は、アプリケーションにおいて表示される画面を認識することにより、アプリケーションに所定の処理を実行させる自動操作スクリプトを実行する装置である。また、情報処理装置１は、アプリケーションの画面のデータ（画面情報）を生成し、保存する。この画面情報は、自動操作スクリプトにおける判定に用いられる画像（判定用画像）を生成する為に用いられる。
【００１０】
情報処理装置１は、ディスプレイ１１、操作インタフェース１２、通信インタフェース１３、ストレージ１４、及び制御部１５を備える。
【００１１】
ディスプレイ１１は、制御部１５または図示されないグラフィックコントローラなどの表示制御部から入力される映像信号に応じて画面を表示する。情報処理装置１は、ディスプレイ１１の代わりに、映像信号を出力する出力端子を備える構成であってもよい。
【００１２】
操作インタフェース１２は、種々の操作部材を有する。操作インタフェース１２は、操作部材の操作に応じた操作信号を制御部１５に供給する。操作部材は、例えば、タッチセンサ、テンキー、電源キー、用紙フィードキー、種々のファンクションキー、またはキーボードなどである。タッチセンサは、例えば、抵抗膜式タッチセンサ、または静電容量式タッチセンサ等である。タッチセンサは、ある領域内において指定された位置を示す情報を取得する。タッチセンサは、ディスプレイ１１と一体にタッチパネルとして構成されることにより、ディスプレイ１１に表示された画面上のタッチされた位置を示す信号を制御部１５に入力する。また、操作インタフェース１２は、操作部材から操作信号を受信し、制御部１５に供給するインタフェースであってもよい。
【００１３】
通信インタフェース１３は、情報処理装置１以外の他の機器と通信する為のインターフェースである。
【００１４】
ストレージ１４は、種々の情報を記憶可能な記憶媒体である。ストレージ１４は、プログラム及びプログラムで用いられるデータなどを記憶する。ストレージ１４は、例えば、ソリッドステイトドライブ（ＳＳＤ）、ハードディスクドライブ（ＨＤＤ）、または他の記憶装置である。情報処理装置１は、ストレージ１４の代わりに、外部の記憶装置と通信可能なインタフェースを備える構成であってもよい。
【００１５】
ストレージ１４は、後述する画面情報が登録されるデータベース（画面情報データベース）を有する。ストレージ１４は、制御部１５から供給される画面情報を画面情報データベースに逐次登録していく。また、ストレージ１４は、自動操作スクリプトにおける判定に用いられる画像（判定用画像）と、アプリケーションに実行させる処理とが対応付けられた画面情報データベース（自動操作スクリプトデータベース）を有する。
【００１６】
制御部１５は、情報処理装置１の制御を行う。制御部１５は、例えば、プロセッサ１６及びメモリ１７を備える。
【００１７】
プロセッサ１６は、演算処理を実行する演算素子である。プロセッサ１６は、例えばＣＰＵとして構成される。プロセッサ１６は、メモリ１７またはストレージ１４に記憶されているプログラムを実行することにより、種々の処理を実行する。
【００１８】
メモリ１７は、プログラム及びプログラムで用いられるデータなどを記憶するＲＯＭを有する。また、メモリ１７は、プロセッサの処理中のデータを一時的に格納する（展開する）ＲＡＭを有する。
【００１９】
図２は、メモリ１７に記憶されているプログラムの例について説明する為の説明図である。メモリ１７は、オペレーティングシステム２１、デバイスドライバ２２、アプリケーション２３、及び画面情報収集プログラム２４を記憶している。
【００２０】
オペレーティングシステム２１は、プロセッサ１６によって実行される種々のプログラムの管理、プログラム間の入出力の制御、ハードウエアとの間の入出力の制御、及びストレージ１４に記憶されるファイル管理などをプロセッサ１６に行わせる為のプログラムである。オペレーティングシステム２１、デバイスドライバ２２、アプリケーション２３、及び画面情報収集プログラム２４は、プロセッサ１６によって実行されたオペレーティングシステム２１上で動作する。
【００２１】
デバイスドライバ２２は、情報処理装置１に接続されたハードウエアの、オペレーティングシステム２１による制御を、プロセッサ１６に行わせる為のプログラムである。例えば、デバイスドライバ２２を実行したプロセッサ１６は、操作インタフェース１２が操作されて発生したイベントを解析し、オペレーティングシステム２１に供給する。また、デバイスドライバ２２を実行したプロセッサ１６は、ディスプレイ１１に映像信号を供給する。デバイスドライバ２２を実行したプロセッサ１６は、後述するフィルタドライバ３１からイベントを取得する。また、デバイスドライバ２２を実行したプロセッサ１６は、操作インタフェース１２から直接イベントを取得してもよい。即ち、デバイスドライバ２２は、操作インタフェース１２に入力された信号から、イベントの検出をプロセッサ１６に行わせるプログラムである。
【００２２】
アプリケーション２３は、プロセッサ１６により実行可能な状態でメモリ１７に格納されたプログラムである。アプリケーション２３は、例えば、マウスまたはタッチパネルなどの操作部材によって操作可能な、ＧＵＩベースのアプリケーションプログラムである。アプリケーション２３を実行したプロセッサ１６は、アプリケーション上の処理に基づいて、種々の画面の映像信号を生成し、ディスプレイ１１に表示させる。例えば、アプリケーション２３は、選択可能なオブジェクトが表示されている画面において、このオブジェクトを選択する操作が行われた場合、選択されたオブジェクトに応じた画面に表示を遷移させる。即ちアプリケーション２３は、デバイスドライバ２２で検出されたイベントに基づいて、画面の遷移をプロセッサ１６に行わせるプログラムである。
【００２３】
画面情報収集プログラム２４は、プロセッサ１６により実行可能な状態でメモリ１７に格納されたプログラムである。画面情報収集プログラム２４は、アプリケーション２３により生成された画面を保存する処理をプロセッサ１６に行わせる為のプログラムである。例えば、画面情報収集プログラム２４は、イベントにより遷移する前のアプリケーション２３の画面に基づき、画像データを生成することと、イベントにより遷移した後のアプリケーション２３の画面に基づき、画像データを生成することとをプロセッサ１６に実行させるプログラムである。画面情報収集プログラム２４は、フィルタドライバ３１、イベント取得プログラム３２、及び画像取得補助プログラム３３などを有する。
【００２４】
フィルタドライバ３１は、操作インタフェース１２におけるイベント（操作イベント）を取得し、イベント取得プログラム３２及びデバイスドライバ２２にイベントを通知する処理をプロセッサ１６に行わせるドライバである。例えば、プロセッサ１６は、デバイスドライバ２２の下位層にフィルタドライバ３１を配置する。フィルタドライバ３１は、例えば、レポートディスクリプタの情報を取得することにより、操作イベントを取得する。なお、デバイスドライバ２２が操作インタフェース１２から直接イベントを取得する構成である場合、フィルタドライバ３１を実行したプロセッサ１６は、取得したイベントをデバイスドライバ２２に通知しなくてもよい。
【００２５】
イベント取得プログラム３２は、フィルタドライバ３１から通知された操作イベントの解析をプロセッサ１６に行わせる為のプログラムである。イベント取得プログラム３２は、例えば、レポートディスクリプタの情報を取得することにより、操作イベントの解析をプロセッサ１６に行わせる。イベント取得プログラム３２を実行したプロセッサ１６は、フィルタドライバ３１から通知された操作イベントが、予め設定されたイベントであった場合、画面情報取得要求を画像取得補助プログラム３３へ通知する。具体的には、イベント取得プログラム３２を実行したプロセッサ１６は、フィルタドライバ３１から通知された操作イベントが、予め設定された入力イベントであった場合、画面情報取得要求を画像取得補助プログラム３３へ通知する。
【００２６】
入力イベントは、操作インタフェース１２に設けられた操作部材によって所定の入力操作が行われた場合に生じるイベントである。例えば、操作インタフェース１２がマウスとして構成されていた場合、クリックイベントが入力イベントに相当する。また、操作インタフェース１２がタッチセンサとして構成されていた場合、タッチイベントが入力イベントに相当する。
【００２７】
なお、入力イベントは、上記の例に限定されない。例えば、アプリケーション２３がＰＯＳ用のアプリケーションである場合、アプリケーション２３を実行する装置は、スキャナ、磁気カード読取装置、ＩＣカード読取装置、または他の種々の装置が接続される、または内蔵されることが推定される。このような構成において、スキャナによりコード（バーコード、または二次元コードなど）を読み取るイベント（コード入力イベント）、磁気カード読取装置により磁気カードを読み取るイベント（磁気カード入力イベント）、またはＩＣカード読取装置によりＩＣカードを読み取るイベント（ＩＣカード入力イベント）などが、上記の入力イベントとして設定されていてもよい。
【００２８】
画像取得補助プログラム３３は、画面情報取得要求を受け取った場合、アプリケーション２３により生成された画面の画像データの取得をプロセッサ１６に行わせる為のプログラムである。画像取得補助プログラム３３を実行したプロセッサ１６は、画面情報取得要求を受け取った場合、アプリケーション２３により生成された画面の画像データを取得する。例えば、プロセッサ１６は、アプリケーション２３により生成された画面に基づき、オペレーティングシステム２１の機能（例えばスクリーンショットなど）により画像データを生成する。
【００２９】
図３は、画面情報収集プログラム２４を実行したプロセッサ１６の処理について説明する為の説明図である。ここでは、イベント取得プログラム３２が、予め設定された入力イベントを取得する構成であると仮定して説明する。
【００３０】
例えば、図３に示されるように、アプリケーション２３は、選択可能なオブジェクトを有する第１の画面４１を生成していると仮定する。また、第１の画面４１において選択可能なオブジェクトを選択する入力イベントが発生した場合、アプリケーション２３は、選択されたオブジェクトに対応する第２の画面４２を生成すると仮定する。即ち、第１の画面４１は、入力イベントによって遷移する前のアプリケーション２３の画面（遷移前画面）である。また、第１の画面４１は、入力イベントによって遷移した後のアプリケーション２３の画面（遷移後画面）である。
【００３１】
このようなアプリケーション２３において、画面情報収集プログラム２４を実行したプロセッサ１６は、第１の画面４１における入力イベントをフィルタドライバ３１及びイベント取得プログラム３２によって検出する。
【００３２】
プロセッサ１６は、例えば入力イベントを検出した場合、入力イベントがアプリケーション２３に反映される前のタイミングと、入力イベントがアプリケーション２３に反映された後のタイミングとのそれぞれのタイミングで、アプリケーション２３により生成された画面の画像データ（例えばラスタ画像）を取得する。例えば、プロセッサ１６は、入力イベントがアプリケーション２３に反映される前のタイミングにおいて、アプリケーション２３の第１の画面４１を第１の画像データ４３として取得する。また例えば、プロセッサ１６は、入力イベントがアプリケーション２３に反映された後のタイミングにおいて、アプリケーション２３の第２の画面４２を第２の画像データ４４として取得する。即ち、プロセッサ１６は、１つの入力イベントが検出された場合に、入力イベントが発生したアプリケーション２３の第１の画面の画像である第１の画像データ４３と、入力イベントによって遷移したアプリケーション２３の第２の画面４２の画像である第２の画像データ４４との２つの画像データを生成する。
【００３３】
具体的には、プロセッサ１６は、フィルタドライバ３１により操作イベントを検出し、且つイベント取得プログラム３２により操作イベントが入力イベントであると判断した場合、フィルタドライバ３１がデバイスドライバ２２に入力イベントを供給する前に、第１の画像データ４３を取得する。即ち、画面情報取集プログラム３３を実行したプロセッサ１６は、操作インタフェース１２に入力された信号からイベントを、デバイスドライバ２２より先に検出し、アプリケーション２３の画面に基づき、第１の画像データ４３を生成する。
【００３４】
さらに、プロセッサ１６は、フィルタドライバ３１からデバイスドライバ２２に入力イベントを供給してから、所定時間経過後に、第２の画像データ４４を取得する。なお、プロセッサ１６は、入力イベントがアプリケーション２３に反映される前のタイミングにおいて、第１の画像データ４３を取得可能であれば、第１の画像データ４３を取得する前にフィルタドライバ３１からデバイスドライバ２２に入力イベントを供給してもよい。
【００３５】
さらに、プロセッサ１６は、取得した第１の画像データ４３を用いて、第１の画面情報４５を生成する。また、プロセッサ１６は、取得した第２の画像データ４４を用いて、第２の画面情報４６を生成する。即ち、プロセッサ１６は、１つの入力イベントが検出された場合に、第１の画面情報４５と第２の画面情報４６との２つの画面情報を生成する。例えば、第１の画像データ４３及び第２の画像データ４４にそれぞれ付加情報を付加することにより、第１の画面情報４５及び第２の画面情報４６を生成する。プロセッサ１６は、生成した第１の画面情報４５及び第２の画面情報４６をストレージ１４の画面情報データベースに登録する。
【００３６】
図４は、ストレージ１４に登録された画面情報の例について説明する為の説明図である。図４の例では、第１の画面情報４５と第２の画面情報４６とが区別なく登録されている例を示しているが、第１の画面情報４５と第２の画面情報４６とは、別の画面情報データベースに登録されていてもよい。
【００３７】
第１の画面情報４５は、画像データ（第１の画像データ４３）と、識別情報と、イベント発生日時と、イベント発生座標と、イベント種別と、画像アドレスとを有する情報である。第２の画面情報は、画像データ（第２の画像データ４４）と、識別情報と、イベント発生日時と、イベント発生座標と、イベント種別と、イベント前画像と、画像アドレスと、を有する情報である。即ち、第１の画面情報４５は、画像データが入力イベント後のアプリケーション２３の画面に基づき生成された第２の画像データ４４である点と、イベント前画像を有する点とが第１の画面情報４５と異なる。
【００３８】
識別情報は、画面情報を識別する為の情報である。識別情報は、少なくとも他の画面情報と重複しない情報であれば、如何なる情報であってもよい。
【００３９】
イベント発生日時は、画像データを生成した日時などのタイミングを示す情報である。プロセッサ１６は、フィルタドライバ３１及びイベント取得プログラム３２によって取得した入力イベントに基づいて、イベント発生日時を生成する。イベント発生日時は、画像データの生成のトリガーとなったイベントが発生した日時（例えばフィルタドライバ３１がイベントを検出したタイミング）を示す情報であってもよい。
【００４０】
イベント発生座標は、画像データ上のどの位置（座標）でイベントが発生したかを示す情報である。プロセッサ１６は、フィルタドライバ３１及びイベント取得プログラム３２によって取得した入力イベントに基づいて、イベント発生座標を生成する。例えば、イベント発生座標は、アプリケーション２３の画面において、クリックまたはタッチなどの入力操作が行われた位置を示す。
【００４１】
イベント種別は、イベントの種別を示す情報である。上記のように、入力イベントには、クリックイベント、タッチイベント、コード入力イベント、磁気カード入力イベント、及びＩＣカード入力イベントなどの種々のイベントがある。イベント種別は、これらのイベントのうちのいずれかを示す。即ち、イベント種別は、どのようなイベントによって画面情報が生成されたかを示す。
【００４２】
画像アドレスは、画像データが保存されている記憶領域上のアドレスを示す情報である。例えば、画像データがストレージ１４に記憶される構成である場合、画像アドレスは、ストレージ１４上の画像データが記憶されている領域を示す。
【００４３】
イベント前画像は、入力イベントが発生したアプリケーション２３の画面を示す情報である。例えば、イベント前画像は、入力イベントが発生したアプリケーション２３の画面に基づいて生成された画面情報の識別情報である。即ち、イベント前画像は、入力イベントによって遷移する前のアプリケーション２３の画面に基づき生成された第１の画面情報の識別情報である。
【００４４】
次に、画面情報収集プログラム２４のフィルタドライバ３１、イベント取得プログラム３２、及び画像取得補助プログラム３３のそれぞれを実行する際のプロセッサ１６の処理について説明する。
【００４５】
図５は、フィルタドライバ３１を実行したプロセッサ１６の処理について説明する為のフローチャートである。
【００４６】
プロセッサ１６は、画面取得モードがオンであるか否か判断する（ＡＣＴ１１）。例えば、プロセッサ１６は、画面情報収集プログラム２４を実行している場合、画面取得モードであると判断する。プロセッサ１６は、画面情報収集プログラム２４を実行している場合、画面取得モードがオンであると判断する。
【００４７】
プロセッサ１６は、画面取得モードがオンであると判断した場合（ＡＣＴ１１、ＹＥＳ）、イベントが発生したか否か判断する（ＡＣＴ１２）。プロセッサ１６は、イベントが発生していないと判断した場合（ＡＣＴ１２、ＮＯ）、ＡＣＴ１１の処理に移行する。即ち、プロセッサ１６は、イベントが発生するまでの間、イベントが発生したか否かの判断を繰り返し行う。
【００４８】
プロセッサ１６は、イベントが発生したと判断した場合（ＡＣＴ１２、ＹＥＳ）、イベント取得プログラム３２に操作イベントを通知する（ＡＣＴ１３）。
【００４９】
次に、プロセッサ１６は、デバイスドライバ２２に操作イベントを通知する（ＡＣＴ１４）。なお、プロセッサ１６は、イベント取得プログラム３２に操作イベントを通知してから、所定時間経過後にデバイスドライバ２２に操作イベントを通知する構成であってもよい。また、プロセッサ１６は、画像取得補助プログラム３３による第１の画像データ４３の取得が完了したか否か判断し、完了した場合にデバイスドライバ２２に操作イベントを通知する構成であってもよい。
【００５０】
次に、プロセッサ１６は、イベント取得プログラム３２に操作イベントを再度通知する（ＡＣＴ１５）。なお、プロセッサ１６は、デバイスドライバ２２に操作イベントを通知してから、所定時間経過後にイベント取得プログラム３２に操作イベントを再度通知する構成であってもよい。また、プロセッサ１６は、アプリケーション２３において、画面の遷移が完了したか否か判断し、完了した場合にイベント取得プログラム３２に操作イベントを再度通知する構成であってもよい。例えば、プロセッサ１６は、第１の画像データ４３と、アプリケーション２３において現在表示されている画面とを比較し、比較結果に基づいて、アプリケーション２３の画面の遷移が完了したか否か判断する。即ち、プロセッサ１６は、第１の画像データ４３と、アプリケーション２３の画面とに差分が生じた場合、アプリケーション２３の画面の遷移が完了したと判断する。
【００５１】
プロセッサ１６は、画面取得モードがオフされたか否か判断する（ＡＣＴ１６）。プロセッサ１６は、画面取得モードがオフされた場合（ＡＣＴ１６、ＹＥＳ）、処理を終了する。また、プロセッサ１６は、画面取得モードがオフされていない場合（ＡＣＴ１６、ＮＯ）、ＡＣＴ１２の処理に移行する。これにより、プロセッサ１６は、次の操作イベントの発生を待つ状態になる。
【００５２】
図６は、イベント取得プログラム３２を実行したプロセッサ１６の処理について説明する為のフローチャートである。
【００５３】
プロセッサ１６は、フィルタドライバ３１から操作イベントを受信したか否か判断する（ＡＣＴ２１）。プロセッサ１６は、操作イベントを受信していないと判断した場合（ＡＣＴ２１、ＮＯ）、ＡＣＴ２１の処理に移行する。即ち、プロセッサ１６は、操作イベントを受信するまでの間、操作イベントを受信したか否かの判断を繰り返し行う。
【００５４】
プロセッサ１６は、操作イベントを受信したと判断した場合（ＡＣＴ２１、ＹＥＳ）、操作イベントの種別を判定する（ＡＣＴ２２）。
【００５５】
プロセッサ１６は、操作イベントが入力イベントであるか否か判断する（ＡＣＴ２３）。即ち、プロセッサ１６は、操作イベントが予め設定されたイベントであるか否か判断する。プロセッサ１６は、操作イベントが入力イベントではないと判断した場合（ＡＣＴ２３、ＮＯ）、ＡＣＴ２１の処理に移行する。即ち、プロセッサ１６は、次の操作イベントの受信を待つ状態になる。
【００５６】
プロセッサ１６は、操作イベントが入力イベントであると判断した場合（ＡＣＴ２３、ＹＥＳ）、画像取得補助プログラム３３に入力イベントを通知する（ＡＣＴ２４）。
【００５７】
図７は、画像取得補助プログラム３３を実行したプロセッサ１６の処理について説明する為のフローチャートである。
【００５８】
プロセッサ１６は、イベント取得プログラム３２から入力イベントを受信したか否か判断する（ＡＣＴ３１）。プロセッサ１６は、入力イベントを受信していないと判断した場合（ＡＣＴ３１、ＮＯ）、ＡＣＴ３１の処理に移行する。即ち、プロセッサ１６は、入力イベントを受信するまでの間、入力イベントを受信したか否かの判断を繰り返し行う。
【００５９】
プロセッサ１６は、入力イベントを受信したと判断した場合（ＡＣＴ３１、ＹＥＳ）、入力イベントが発生したアプリケーション２３の画面に基づき画面情報を生成する（ＡＣＴ３２）。即ち、プロセッサ１６は、アプリケーション２３の画面の画像データを取得し、識別情報、イベント発生日時、イベント発生座標、及び画像アドレスなどの付加情報を画像データに付加することにより、画面情報を生成する。
【００６０】
なお、プロセッサ１６は、入力イベントを受信した場合、アプリケーション２３の画面が遷移前画面であるか遷移後画面であるか判断する。例えば、プロセッサ１６は、フィルタドライバ３１及びイベント取得プログラム３２の処理内容を参照することにより、アプリケーション２３の画面が遷移前画面であるか遷移後画面であるか判断する。また、プロセッサ１６は、同じ入力イベントを続けて２回受信した場合、アプリケーション２３の画面が遷移後画面であると判断する構成であってもよい。また、フィルタドライバ３１が、図５のＡＣＴ１３で通知した操作イベントと、図５のＡＣＴ１５で通知した操作イベントとを区別する為の情報を操作イベントに付加する構成であってもよい。
【００６１】
プロセッサ１６は、アプリケーション２３の画面が遷移前画面であると判断した場合、遷移前画面から生成された画像データ、識別情報、イベント発生日時、イベント発生座標、及び画像アドレスを有する画面情報（第１の画面情報４５）を生成する。また、プロセッサ１６は、アプリケーション２３の画面が遷移後画面であると判断した場合、遷移後画面から生成された画像データ、識別情報、イベント発生日時、イベント発生座標、及び画像アドレスに、さらに、遷移前画面の画像データを有する第１の画面情報４５を示すイベント前画像を有する画面情報（第２の画面情報４６）を生成する。
【００６２】
プロセッサ１６は、生成した画面情報の画像データと、画面情報データベース内の画面情報の画像データとの類似度を算出する（ＡＣＴ３３）。画面情報データベース内に複数の画面情報が登録されている場合、プロセッサ１６は、各画面情報毎に類似度を算出する。なお、類似度の算出は如何なるものであってもよい。
【００６３】
プロセッサ１６は、算出した類似度が閾値以上であるか否か判断する（ＡＣＴ３４）。例えば、プロセッサ１６は、算出した複数の類似度の中で、最も高い類似度が、閾値以上であるか否か判断する。
【００６４】
プロセッサ１６は、算出した類似度が閾値以上ではないと判断した場合（ＡＣＴ３４、ＹＥＳ）、ＡＣＴ３２で生成した画面情報をストレージ１４の画面情報データベースに登録し（ＡＣＴ３５）、ＡＣＴ３１の処理に移行し、次の入力イベントを待つ状態になる。
【００６５】
また、プロセッサ１６は、算出した類似度が閾値以上であると判断した場合（ＡＣＴ３４、ＹＥＳ）、画面情報の画像データを、ショートカット（リンク）に置き換え（ＡＣＴ３６）、ＡＣＴ３５の処理に移行する。例えば、プロセッサ１６は、ＡＣＴ３３において、最も高い類似度が算出された画像データへのショートカットを生成し、ＡＣＴ３２で生成した画面情報の画像データをショートカットに置き換える。プロセッサ１６は、画像データをショートカットに置き換えた画面情報をストレージ１４の画面情報データベースに登録し、ＡＣＴ３１の処理に移行し、次の入力イベントを待つ状態になる。
即ち、プロセッサ１６は、第１の画像データ４３と、予めデータベースに登録された画像データとの類似度を算出し、算出された類似度が予め設定された閾値未満である場合、第１の画像データ４３を含む第１の画面情報４５をデータベースに登録する。また、プロセッサ１６は、第２の画像データ４４と、予めデータベースに登録された画像データとの類似度を算出し、算出された類似度が予め設定された閾値未満である場合、第２の画像データ４４を含む第２の画面情報４６をデータベースに登録する。また、プロセッサ１６は、第１の画像データ４３と、予めデータベースに登録された画像データとの類似度を算出し、算出された類似度が予め設定された閾値以上である場合、第１の画像データ４３の代わりに類似度の算出に用いた画像データへのリンクを含む第１の画面情報４５をデータベースに登録する。また、プロセッサ１６は、第２の画像データ４４と、予めデータベースに登録された画像データとの類似度を算出し、算出された類似度が予め設定された閾値以上である場合、第２の画像データ４４の代わりに類似度の算出に用いた画像データへのリンクを含む第２の画面情報４６をデータベースに登録する。
【００６６】
上記した構成によると、情報処理装置１のプロセッサ１６は、アプリケーション２３を実行するとともに、アプリケーション２３の画面の画像データを取得する画面情報取集プログラムを実行する。プロセッサ１６は、画面情報収集プログラム２４によって、操作インタフェースからの入力を監視し、操作イベントを検出する。プロセッサ１６は、操作イベントが所定のイベント（例えば入力イベント）であった場合、入力イベントがアプリケーション２３に反映される前のタイミングで、アプリケーション２３の画面から第１の画像データ４３を生成し、入力イベントがアプリケーション２３に反映された後のタイミングで、アプリケーション２３の画面から第２の画像データ４４を生成する。プロセッサ１６は、生成した第１の画像データ４３及び第２の画像データ４４を、それぞれストレージ１４の画面情報データベースに登録する。
【００６７】
これにより、プロセッサ１６は、アプリケーション２３に対する入力イベントが発生する毎に、画面情報収集プログラム２４によって、第１の画像データ４３と第２の画像データ４４とを生成することができる。即ち、アプリケーション２３の改修及び特別な操作を行うことなく、第１の画像データ４３と第２の画像データ４４とを収集することができる。これによって、自動操作スクリプトに用いられる判定用画像の収集が容易になる。
【００６８】
また、画面情報収集プログラム２４は、操作インタフェース１２の操作によって発生した操作イベントをアプリケーション２３に反映させるデバイスドライバ２２に、操作イベントが通知される前に、操作イベントを検出するフィルタドライバ３１を有する。これにより、画面情報収集プログラム２４を実行したプロセッサ１６は、入力イベントがアプリケーション２３に反映される前のタイミングで、アプリケーション２３の画面から第１の画像データ４３を生成することができる。また、プロセッサ１６は、フィルタドライバ３１により操作イベントが検出されてから、所定時間経過後にアプリケーション２３の画面の画像を取得することにより、第２の画像データ４４を生成することができる。このように、画面情報収集プログラム２４を実行したプロセッサ１６は、１つの入力イベントに基づいて、遷移後と遷移前との２つの画像データを生成することができる。
【００６９】
また、プロセッサ１６は、第１の画像データ４３及び第２の画像データ４４に、イベント発生日時及びイベント発生座標などの情報をそれぞれ付加し、第１の画面情報４５及び第２の画面情報４６を生成し、ストレージ１４の画面情報データベースに登録する。これにより、イベント発生日時を後から把握することが可能になる。また、イベント発生時にアプリケーション２３の画面のどの位置がクリック（タッチ）されたかも把握することが可能になる。
【００７０】
また、プロセッサ１６は、第２の画像データ４４をストレージに保存する場合、第２の画像データ４４の生成に用いたアプリケーション２３の画面の遷移前の画面を示す情報（イベント前画像）を第２の画像データ４４に付加する。これにより、第２の画像データ４４が、アプリケーション２３のどの画面から遷移した画面に基づいて生成されたものであるのかを、把握することが可能になる。
【００７１】
また、プロセッサ１６は、新しく生成した画像データをストレージ１４に保存する前に、既にストレージ１４に登録されている複数の画像データを参照する。プロセッサ１６は、新しく生成した画像データと、ストレージ１４に登録されている複数の画像データとの類似度を算出し、類似度が閾値以上の画像データが保存されていた場合、その画像へのショートカットを画像データの代わりに保存する。これにより、似た画像データが複数ストレージ１４に保存される事を防ぐことができる。
【００７２】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【００７３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７４】
１…情報処理装置、１１…ディスプレイ、１２…操作インタフェース、１３…通信インタフェース、１４…ストレージ、１５…制御部、１６…プロセッサ、１７…メモリ、２１…オペレーティングシステム、２２…デバイスドライバ、２３…アプリケーション、２４…画面情報収集プログラム、３１…フィルタドライバ、３２…イベント取得プログラム、３３…画像取得補助プログラム。
【図１】
2019197504.tif 000003
【図２】
2019197504.tif 000004
【図３】
2019197504.tif 000005
【図４】
2019197504.tif 000006
【図５】
2019197504.tif 000007
【図６】
2019197504.tif 000008
【図７】
2019197504.tif 000009