(57)【要約】      （修正有）【課題】コンピュータアプリケーションにおける、ユーザーにガイダンスを提供するためのガイダンスエンジンおよびその方法。【解決手段】ガイダンスは、例えば、アプリケーションの制御部を１つまたはそれ以上起動することにより、実際にアプリケーションを操作するガイダンス・スクリプトを実行することによって行うことができる。さらに、ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトを記録する記録エンジンおよびその方法を開示している。記録エンジンは、アプリケーションの操作シーケンスの記録に加えて、アプリケーションのＧＵＩのスクリーンショットを記録し解析することができる。追加の実施態様は、ディスプレイ非依存のＧＵＩ制御部認識装置およびその方法に関する。ＧＵＩ制御部認識装置は、アプリケーションのユーザーインターフェースにおけるスクリーンショットのＧＵＩ制御部を記録し、特定することができる。【選択図】図２
2011081778.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトの実行方法であって、
コンピュータアプリケーションにおけるＧＵＩ（グラフィカル・ユーザー・インターフェース）のスクリーンショットを記録するステップと、
前記スクリーンショットの制御部を前記ガイダンス・スクリプトの制御部とマッチングするために前記スクリーンショットを解析するステップと、
前記コンピュータアプリケーションを操作するために、前記マッチングに基づいて前記ガイダンス・スクリプトを実行するステップと、
を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、前記マッチングは、所定の精度レベルに従って実行されること、を特徴とする方法。
【請求項３】
請求項１に記載の方法であって、前記解析するステップは、さらに、前記スクリーンショットにおける前記制御部の周辺を、前記ガイダンス・スクリプトの前記制御部の周囲とマッチングするステップを含むこと、を特徴とする方法。
【請求項４】
請求項１に記載の方法であって、さらに、前記スクリーンショットを１ビット型に変換するステップを含むこと、を特徴とする方法。
【請求項５】
請求項１に記載の方法であって、さらに、前記スクリーンショットを反転１ビット型に変換するステップを含むこと、を特徴とする方法。
【請求項６】
請求項１に記載の方法であって、前記実行するステップは、さらに、前記コンピュータアプリケーションの制御部を起動するステップを含むこと、を特徴とする方法。
【請求項７】
請求項６に記載の方法であって、前記制御部を前記起動するステップは、キーボード入力を模倣するステップを含むこと、を特徴とする方法。
【請求項８】
請求項６に記載の方法であって、前記制御部を前記起動するステップは、キーボード入力を模倣するステップを含むこと、を特徴とする方法。
【請求項９】
請求項１に記載の方法であって、前記制御部は、アイコン、テキスト、ボタン、入力ボックス、メニュー、ドロップダウンリスト、スライダー、スクロールバーおよびバーからなるグループから選択されること、を特徴とする方法。
【請求項１０】
請求項１に記載の方法であって、さらに、前記コンピュータアプリケーションにおいて、以前は見えなかった領域へスクロールするためにスクロールバーを起動するステップを含むこと、を特徴とする方法。
【請求項１１】
ディスプレイ非依存のコンピュータによるガイダンスエンジンであって、
コンピュータアプリケーションにおけるＧＵＩ制御部を、ガイダンス・スクリプトの制御部とマッチングするためのスクリーンショット解析エンジンと、
前記コンピュータアプリケーションを操作するために、前記マッチングに基づいて前記ガイダンス・スクリプトを実行するためのガイダンス・スクリプト実行エンジンと、
を備えることを特徴とするガイダンスエンジン。
【請求項１２】
請求項１１に記載のガイダンスエンジンであって、前記スクリーンショット解析エンジンは、所定の精度レベルにセットされること、を特徴とするガイダンスエンジン。
【請求項１３】
請求項１１に記載のガイダンスエンジンであって、前記スクリーンショット解析エンジンは、前記ＧＵＩにおける前記制御部の周囲が、前記ガイダンス・スクリプトにおける前記制御部の周囲とマッチングするように構成されること、を特徴とするガイダンスエンジン。
【請求項１４】
請求項１１に記載のガイダンスエンジンであって、前記スクリーンショット解析エンジンは、さらに画像変換部を備えること、を特徴とするガイダンスエンジン。
【請求項１５】
請求項１４に記載のガイダンスエンジンであって、前記画像変換部は、スクリーンショットを１ビット型に変換するように構成されること、を特徴とするガイダンスエンジン。
【請求項１６】
請求項１４に記載のガイダンスエンジンであって、前記画像変換部は、スクリーンショットを反転１ビット型に変換するように構成されること、を特徴とするガイダンスエンジン。
【請求項１７】
請求項１１に記載のガイダンスエンジンであって、前記ガイダンス・スクリプト実行エンジンは、コンピュータアプリケーションの制御部を起動するように構成されること、を特徴とするガイダンスエンジン。
【請求項１８】
請求項１７に記載のガイダンスエンジンであって、前記制御部は、アイコン、テキスト、ボタン、入力ボックス、メニュー、ドロップダウンリスト、スクロールバー、スライダーおよびバーからなるグループから選択されること、を特徴とするガイダンスエンジン。
【請求項１９】
請求項１１に記載のガイダンスエンジンであって、前記スクリーンショット解析エンジンは、コンピュータアプリケーションにおいて、以前は見えなかった領域へスクロールするためにスクロールバーを起動するように構成されること、を特徴とするガイダンスエンジン。
【請求項２０】
ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトを記録するための方法であって、
コンピュータアプリケーションにおける、グラフィカル・ユーザー・インターフェース（ＧＵＩ）のスクリーンショットを記録するステップと、
前記スクリーンショットにおいて、ＧＵＩ制御部を特定するために決定したカーソル位置を囲う領域を解析するステップと、
前記コンピュータアプリケーションの操作シーケンスを記録し、前記ＧＵＩ制御部を前記操作シーケンスのステップに割り当てるステップと、
を含むこと特徴とする方法。
【請求項２１】
請求項２０に記載の方法であって、前記操作シーケンスは手動で実行されること、を特徴とする方法。
【請求項２２】
請求項１に記載の方法であって、前記操作シーケンスは自動で実行されること、を特徴とする方法。
【請求項２３】
請求項２０に記載の方法であって、さらに、前記決定したカーソル位置を囲う前記領域の画像を記憶するステップを含むこと、を特徴とする方法。
【請求項２４】
請求項２０に記載の方法であって、さらに、前記ＧＵＩ制御部の画像を記憶するステップ含むこと、を特徴とする方法。
【請求項２５】
請求項２０に記載の方法であって、前記決定したカーソル位置は、ユーザーのカーソルクリックが検出された場所であること、を特徴とする方法。
【請求項２６】
請求項２０に記載の方法であって、さらに、前記スクリーンショットを１ビット型に変換するステップ含むこと、を特徴とする方法。
【請求項２７】
請求項２０に記載の方法であって、さらに、前記スクリーンショットを反転１ビット型に変換するステップ含むこと、を特徴とする方法。
【請求項２８】
請求項２０に記載の方法であって、前記操作シーケンスは、前記ＧＵＩ制御部上のカーソルクリックを含むこと、を特徴とする方法。
【請求項２９】
請求項２０に記載の方法であって、前記操作シーケンスは、前記ＧＵＩ制御部へのキーボード入力含むこと、を特徴とする方法。
【請求項３０】
請求項２０に記載の方法であって、前記操作シーケンスは、コンピュータアプリケーションにおいて、前記コンピュータアプリケーションにおいて、以前は見えなかった領域へスクロールするためのスライダーの起動を含むこと、を特徴とする方法。
【請求項３１】
請求項２０に記載の方法であって、前記ＧＵＩ制御部は、アイコン、テキスト、ボタン、入力ボックス、メニュー、ドロップダウンリスト、スライダーおよびバーからなるグループから選択されること、を特徴とする方法。
【請求項３２】
ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトのための記録エンジンであって、
決定したカーソル位置を囲う少なくとも１つの領域の画像を記録するためのスクリーンショット記録エンジンと、
前記領域においてＧＵＩ制御部を特定するためのスクリーンショット解析エンジンと
前記ＧＵＩ制御部の画像を記憶し、前記画像を前記操作シーケンスのステップに割り当てるための操作シーケンスレコーダーと、
を備えることを特徴とする記録エンジン。
【請求項３３】
請求項３２に記載の記録エンジンであって、前記スクリーンショット解析エンジンは、前記スクリーン記録エンジンによって記録されたスクリーンショットを１ビット型に変換するように構成されること、を特徴とする記録エンジン。
【請求項３４】
請求項３２に記載の記録エンジンであって、前記スクリーンショット解析エンジンは、前記スクリーン記録エンジンによって記録されたスクリーンショットを反転１ビット型に変換するように構成されること、を特徴とする記録エンジン。
【請求項３５】
請求項３２に記載の記録エンジンであって、前記操作シーケンスレコーダーは、ＧＵＩ制御部上のカーソルクリックを記録するように構成されること、を特徴とする記録エンジン。
【請求項３６】
請求項３２に記載の記録エンジンであって、前記操作シーケンスレコーダーは、ＧＵＩ制御部へのキーボード入力を記録するように構成されること、を特徴とする記録エンジン。
【請求項３７】
請求項３２に記載の記録エンジンであって、前記ＧＵＩ制御部の前記画像は、前記ＧＵＩ制御部の画像および前記ＧＵＩ制御部を囲う領域の画像を備えること、を特徴とする記録エンジン。
【請求項３８】
請求項３２に記載の記録エンジンであって、前記ＧＵＩ制御部は、アイコン、テキスト、ボタン、入力ボックス、メニュー、ドロップダウンリスト、スライダーおよびバーからなるグループから選択されること、を特徴とする記録エンジン。
【請求項３９】
ディスプレイ非依存の、ＧＵＩ（グラフィカル・ユーザー・インターフェース）制御部認識方法であって、
コンピュータアプリケーションにおける、ＧＵＩのスクリーンショットを記録するステップと、
前記スクリーンショットにおける位置の座標を受け取るステップと、
ＧＵＩ制御部を特定するために、前記位置を囲う領域を解析するステップと、
ＧＵＩ制御部の画像を記憶するステップと、
を含むことを特徴とする方法。
【請求項４０】
請求項３９に記載の方法であって、前記ＧＵＩ制御部は、アイコン、テキスト、ボタン、入力ボックス、メニュー、ドロップダウンリスト、スライダー、スクロールバーおよびバーからなるグループから選択されること、を特徴とする方法。
【請求項４１】
請求項３９に記載の方法であって、前記座標を受け取る前記ステップは、ユーザーのカーソルクリックが実行された場所を検出するステップを含むこと、を特徴とする方法。
【請求項４２】
請求項３９に記載の方法であって、さらに、前記スクリーンショットを１ビット型に変換するステップを含むこと、を特徴とする方法。
【請求項４３】
請求項３９に記載の方法であって、さらに、前記スクリーンショットを反転１ビット型に変換するステップを含むこと、を特徴とする方法。
【請求項４４】
請求項３９に記載の方法であって、前記記憶するステップは、さらに、前記ＧＵＩ制御部の周囲の画像を記憶するステップを含むこと、を特徴とする方法。
【請求項４５】
請求項３９に記載の方法であって、前記解析するステップは、光学文字認識（ＯＣＲ：Optical Character Recognition）を含むこと、を特徴とする方法。
【請求項４６】
請求項３９に記載の方法であって、さらに、前記コンピュータアプリケーションにおいて、以前は見えなかった領域へスクロールするためのスクロールバーを起動するステップを含むこと、を特徴とする方法。
【請求項４７】
ディスプレイ非依存のグラフィカル・ユーザー・ディスプレイ（ＧＵＩ）制御部認識方法であって、
コンピュータアプリケーションにおいて、ＧＵＩのスクリーンショットを記録するステップと、
ＧＵＩ制御部を特定するために、前記スクリーンショットを解析するステップと、
前記ＧＵＩ制御部の画像を記憶するステップと、
を含むことを特徴とする方法。
【請求項４８】
ディスプレイ非依存のグラフィカル・ユーザー・ディスプレイ（ＧＵＩ）制御部認識装置であって、
コンピュータアプリケーションにおいて、ＧＵＩの画像を記録するためのスクリーンショット記録エンジンと、
前記ＧＵＩにおいてカーソルの位置を特定し、前記画像における前記位置を示すためのカーソル位置特定装置と、
ＧＵＩ制御部を特定するために、前記位置を囲う前記画像における領域を解析するためのカーソル位置領域解析装置と、
を備えること特徴とする認識装置。
【請求項４９】
請求項４８に記載の認識装置であって、前記ＧＵＩ制御部は、アイコン、テキスト、ボタン、入力ボックス、メニュー、ドロップダウンリスト、スライダー、スクロールバーおよびバーからなるグループから選択されること、を特徴とする認識装置。
【請求項５０】
請求項４８に記載の認識装置であって、前記スクリーンショット解析エンジンは、前記スクリーン記録エンジンによって記録されたスクリーンショットを１ビット型に変換するように構成されること、を特徴とする認識装置。
【請求項５１】
請求項４８に記載の認識装置であって、前記スクリーンショット解析エンジンは、前記スクリーン記録エンジンによって記録されたスクリーンショットを反転１ビット型に変換するように構成されること、を特徴とする認識装置。
【請求項５２】
請求項４８に記載の認識装置であって、前記カーソル位置特定装置は、前記ＧＵＩ制御部上のカーソルクリックの位置を特定するように構成されること、を特徴とする認識装置。
【請求項５３】
請求項４８に記載の認識装置であって、前記カーソル位置特定装置は、前記ＧＵＩ制御部へのキーボード入力を特定するように構成されること、を特徴とする認識装置。
【請求項５４】
請求項４８に記載の認識装置であって、前記カーソル位置特定装置はＯＣＲエンジンを備えること、を特徴とする認識装置。
【請求項５５】
請求項４８に記載の認識装置であって、前記スクリーンショット記録エンジンは、前記ＧＵＩにおいて以前は見えなかった領域にスクロールするためのスクロールバーを起動するように構成されること、を特徴とする認識装置。
【請求項５６】
ディスプレイ非依存の、ＧＵＩにおけるスクロールバーの認識方法であって、
コンピュータアプリケーションにおけるＧＵＩのスクリーンショットを記録するステップと、
前記スクリーンショットを解析し、スクロールバーを特定するステップと、
前記スクロールバーを解析し、前記スクロールバーのパラメータを抽出するステップと、
を含むことを特徴とする方法。
【請求項５７】
請求項５６に記載の方法であって、前記パラメータは、前記スクロールバーの場所、前記スクロールバーの大きさ、前記スクロールバーにおけるスクロールサムの場所、前記スクロールバーにおけるスクロールサムの大きさ、前記スクロールバーにおける矢印の大きさ、および、前記スクロールバーにおける矢印の場所、からなるグループから選択されること、を特徴とする方法。
【請求項５８】
請求項５６に記載の方法であって、さらに、前記ＧＵＩの以前は見えなかった領域を表示するために、少なくとも前記抽出したパラメータに基づいて前記スクロールバーを操作するステップを含むこと、を特徴とする方法。
【請求項５９】
ディスプレイ非依存のスクロールバー認識装置であって、
コンピュータアプリケーションにおけるＧＵＩの画像を記録するためのスクリーンショット記録エンジンと、
前記画像においてスクロールバーを特定し、前記スクロールバーのパラメータを抽出するためのスクロールバー解析装置と、
を備えることを特徴とする認識装置。
【請求項６０】
請求項５９に記載の認識装置であって、前記パラメータは、前記スクロールバーの場所、前記スクロールバーの大きさ、前記スクロールバーにおけるスクロールサムの場所、前記スクロールバーにおけるスクロールサムの大きさ、前記スクロールバーにおける矢印の大きさ、および、前記スクロールバーにおける矢印の場所、からなるグループから選択されること、を特徴とする認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
開示する実施形態は、ディスプレイ非依存のコンピュータによるガイダンス方法および装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ：Personal Computer）または携帯機器（例えば、ノートブックコンピュータ、ＰＤＡ（Personal Digital Assistant）、携帯電話、及び／又は、そのようなもの）により、ユーザーは、様々なアプリケーション、例えば、文書処理のアプリケーション、表計算のアプリケーション、電子メールのアプリケーション、ゲーム、および、そのようなアプリケーションを利用することができる。これらのアプリケーションは、ユーザーコマンドに基づいて様々な演算を実行することができる。例えば、編集、計算、書式設定、ファイル操作、データ分類、及び／又は、そのようなものを実行できる。
【０００３】
アプリケーションのグラフィカル・ユーザー・インターフェース（ＧＵＩ：Graphical User Interface）は、たいてい、そのアプリケーションの異なる機能を演算する様々な制御部（「ウィジェット」とも称される）を含む。制御部は、例えば、アイコン、テキスト、ボタン、入力ボックス、メニュー、ドロップダウンリスト、スライダー、スクロールバー、バー、及び／又は、他の演算可能なビジュアル要素を含むことができる。様々な携帯機器において、制御部は物理的なボタンで具体化され、アプリケーション自身のＧＵＩによっては具体化されない。例えば、あるボタンは、アプリケーションの特定の機能を実行するために使用することができる。
【０００４】
アプリケーションがますます複雑かつ高機能になり、多くの異なる機能部を含むようになるにつれて、ユーザーの中には、１つまたはそれ以上のアプリケーションの使い方を教わるコースやセミナーへの参加が役立つことに気付く人もいる。ユーザーの中には、他のユーザー（例えば、同僚、カスタマー・サポートのスタッフ、及び／又は、そのような人）の助けを必要とするものもいる。さらに、ユーザーにとっては、アプリケーションが特定の作業を実行できるかどうか、または、ユーザーが起動したどのシーケンスのステップが特定の作業を実行するために要求されるかを見出し、また、思い出すことは困難である。
【０００５】
アプリケーションには、「ヘルプ」機能を含むものがある。「ヘルプ」機能において、ユーザーは、所定のテキスト、及び／又は、ビジュアル記述を読み出すために、所定のトピックの索引、または、ユーザーが入力したキーワードに基づく検索を利用することができる。これらのテキスト、及び／又は、ビジュアル記述は、ユーザーが、特定の作業がどのように実行されるかを探し出すことを補助できる。加えて、アプリケーションには、ユーザーマニュアル、または、よくある質問（ＦＡＱ：Frequently Asked Questions）と関連するものもある。ユーザーマニュアルまたはＦＡＱは、ユーザーに、どのように特定の作業をするかを説明する。
【０００６】
従来技術についての上記の例、および、それに関する制限は、説明を目的とするものであり排他的とすることは目的としていない。関連技術についての他の制限は、この明細書を読み、図を検討すれば、当業者にとっては明らかであろう。
【発明の概要】
【０００７】
以下に、実施形態、および、その態様を、システム、ツールおよび方法とともに説明し図に示す。これらは、説明および図示を意図するものであって、範囲を制限するものではない。
【０００８】
一実施形態に従って、ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトの実行方法を提供する。この方法は、コンピュータアプリケーションを操作するために、コンピュータアプリケーションにおけるＧＵＩのスクリーンショットを記録するステップ、スクリーンショットの制御部をガイダンス・スクリプトの制御部とマッチングするためにスクリーンショットを解析するステップ、および、マッチングに基づいてガイダンス・スクリプトを実行するステップを含む。
【０００９】
一実施形態に従って、さらに、ディスプレイ非依存のコンピュータによるガイダンスエンジンを提供する。このガイダンスエンジンは、コンピュータアプリケーションを操作するために、コンピュータアプリケーションにおけるＧＵＩ制御部を、ガイダンス・スクリプトの制御部とマッチングするためのスクリーンショット解析エンジンと、マッチングに基づいてガイダンス・スクリプトを実行するためのガイダンス・スクリプト実行エンジンとを備える。
【００１０】
ある実施形態においては、所定の精度レベルに従ってマッチングが実行される。ある実施形態においては、解析するステップは、さらに、スクリーンショットの制御部の周囲をガイダンス・スクリプトの制御部の周囲とマッチングするステップを含む。ある実施形態においては、方法は、さらに、スクリーンショットを１ビット型に変換するステップを含む。ある実施形態においては、方法は、さらに、スクリーンショットを反転１ビット型に変換するステップを含む。ある実施形態においては、実行するステップは、さらに、コンピュータアプリケーションの制御部を起動するステップを含む。ある実施形態においては、制御部を起動するステップは、カーソルクリックを模倣するステップを含む。ある実施形態においては、制御部を起動するステップは、キーボード入力を模倣するステップを含む。ある実施形態においては、方法は、さらに、コンピュータアプリケーションの以前は見えなかった領域へスクロールするためのスクロールバーを起動するステップを含む。ある実施形態においては、前記スクリーンショット解析エンジンは、所定の精度レベルにセットされる。ある実施形態においては、前記スクリーンショット解析エンジンは、ＧＵＩ制御部の周囲がガイダンス・スクリプトの制御部の周囲とマッチングするように構成される。ある実施形態においては、前記スクリーンショット解析エンジンは、さらに、画像変換部を備える。ある実施形態においては、前記画像変換部は、スクリーンショットを１ビット型に変換するように構成される。ある実施形態においては、前記画像変換部は、スクリーンショットを反転１ビット型に変換するように構成される。ある実施形態においては、前記ガイダンス・スクリプト実行エンジンは、コンピュータアプリケーションの制御部を起動するように構成される。ある実施形態においては、前記制御部は、アイコン、テキスト、入力ボックス、メニュー、ドロップダウンリスト、スライダー、スクロールバーおよびバーからなるグループから選択される。ある実施形態においては、前記スクリーンショット解析エンジンは、コンピュータアプリケーションの以前は見えなかった領域へスクロールするためのスクロールバーを起動するように構成される。
【００１１】
一実施形態に従って、さらに、ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトを記録する方法を提供する。この方法は、コンピュータアプリケーションにおけるグラフィカル・ユーザー・インターフェース（ＧＵＩ：Graphical User Interface）のスクリーンショットを記録するステップと、ＧＵＩ制御部を特定するために、スクリーンショット内において、決定したカーソル位置を囲う領域を解析するステップと、コンピュータアプリケーションの操作シーケンスを記録するステップと、ＧＵＩ制御部の操作シーケンスを１つのステップに割り当てるステップとを含む。
【００１２】
一実施形態に従って、さらに、ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトのための記録エンジンを提供する。この記録エンジンは、決定したカーソル位置を囲う少なくとも１つの領域の画像を記録するためのスクリーンショット記録エンジンと、前記領域のＧＵＩ制御部を特定するためのスクリーンショット解析エンジンと、前記ＧＵＩ制御部の画像を記憶し、前記画像を前記操作シーケンスのステップに割り当てるための操作シーケンスレコーダーとを備える。
【００１３】
ある実施形態においては、操作シーケンスは手動で実行される。ある実施形態においては、操作シーケンスは自動的に実行される。ある実施形態においては、この方法は、さらに、決定したカーソル位置を囲う領域の画像を記憶するステップを含む。ある実施形態においては、この方法は、さらに、ＧＵＩ制御部の画像を記憶するステップを含む。ある実施形態においては、決定したカーソル位置は、ユーザーのカーソルクリックが検出された位置である。ある実施形態においては、この方法は、さらに、スクリーンショットを１ビット型に変換するステップを含む。ある実施形態においては、この方法は、さらに、スクリーンショットを反転１ビット型に変換するステップを含む。ある実施形態においては、操作シーケンスは、ＧＵＩ制御部上のカーソルクリックを備える。ある実施形態においては、操作シーケンスは、ＧＵＩ制御部へのキーボード入力を備える。ある実施形態においては、操作シーケンスは、コンピュータアプリケーションにおける、以前は見えなかった領域へスクロールするためのスクロールバーの起動を備える。ある実施形態においては、前記スクリーンショット解析エンジンは、前記スクリーン記録エンジンによって記録されたスクリーンショットを１ビット型に変換するように構成される。ある実施形態においては、前記スクリーンショット解析エンジンは、前記スクリーン記録エンジンによって記録されたスクリーンショットを反転１ビット型に変換するように構成される。ある実施形態においては、前記操作シーケンスレコーダーは、ＧＵＩ制御部上のカーソルクリックを記録するように構成される。ある実施形態においては、前記操作シーケンスレコーダーは、ＧＵＩ制御部へのキーボード入力を記録するように構成される。ある実施形態においては、前記ＧＵＩ制御部の前記画像は、前記ＧＵＩ制御部の画像および前記ＧＵＩ制御部を囲う領域の画像を備える。ある実施形態においては、前記ＧＵＩ制御部は、アイコン、テキスト、ボタン、入力ボックス、メニュー、ドロップダウンリスト、スライダーおよびバーからなるグループから選択される。
【００１４】
一実施形態に従って、ディスプレイ非依存の、グラフィカル・ユーザー・インターフェース（ＧＵＩ：Graphical User Interface）認識方法を提供する。この方法は、コンピュータアプリケーションにおけるＧＵＩのスクリーンショットを記録するステップと、スクリーンショットの位置座標を受け取るステップと、ＧＵＩ制御部を特定するために、カーソル位置を囲う領域を解析するステップと、ＧＵＩ制御部の画像を記憶するステップとを含む。
【００１５】
一実施形態に従って、さらに、ディスプレイ非依存の、グラフィカル・ユーザー・インターフェース（ＧＵＩ：Graphical User Interface）認識方法を提供する。この方法は、コンピュータアプリケーションにおいてＧＵＩのスクリーンショットを記録するステップと、ＧＵＩ制御部を特定するためにスクリーンショットを解析するステップと、ＧＵＩ制御部の画像を記憶するステップとを含む。
【００１６】
一実施形態に従って、さらに、ディスプレイ非依存のグラフィカル・ユーザー・インターフェース（ＧＵＩ：Graphical User Interface）の制御部認識装置を提供する。この制御部認識装置は、コンピュータアプリケーションにおいて、ＧＵＩの画像を記録するためのスクリーンショット記録エンジンと、前記ＧＵＩ内のカーソル位置を特定し前記画像内の前記位置を示すためのカーソル位置特定装置と、ＧＵＩ制御部を特定するために、前記位置を囲う画像内の領域を解析するためのカーソル位置領域解析装置とを備える。
【００１７】
ある実施形態においては、ＧＵＩ制御部は、アイコン、テキスト、ボタン、入力ボックス、メニュー、ドロップダウンリスト、スライダー、スクロールバーおよびバーからなるグループから選択される。ある実施形態においては、座標を受け取るステップは、ユーザーのカーソルクリックがどこで実行されたかを検出するステップを含む。ある実施形態においては、この方法は、さらに、スクリーンショットを１ビット型に変換するステップを含む。ある実施形態においては、この方法は、さらに、スクリーンショットを反転１ビット型に変換するステップを含む。ある実施形態においては、記憶するステップは、さらに、ＧＵＩ制御部の周囲の画像を記憶するステップを含む。ある実施形態においては、解析するステップは、光学文字認識（ＯＣＲ：Optical Character Recognition）を含む。ある実施形態においては、この方法は、さらに、コンピュータアプリケーションの以前は見えなかった領域へスクロールするためのスライダーを起動するステップを含む。ある実施形態においては、前記スクリーンショット解析エンジンは、前記スクリーン記録エンジンによって記録されたスクリーンショットを１ビット型に変換するように構成される。ある実施形態においては、前記スクリーンショット解析エンジンは、前記スクリーン記録エンジンによって記録されたスクリーンショットを反転１ビット型に変換するように構成される。ある実施形態においては、前記カーソル位置特定装置は、前記ＧＵＩ制御部上のカーソルクリックを特定するように構成される。ある実施形態においては、前記カーソル位置特定装置は、前記ＧＵＩ制御部上のキーボード入力を特定するように構成される。ある実施形態においては、前記カーソル位置特定装置は、ＯＣＲエンジンを備える。ある実施形態においては、前記スクリーンショット記録エンジンは、前記ＧＵＩの以前は見えなかった領域へスクロールするためのスクロールバーを起動するように構成される。
【００１８】
一実施形態に従って、さらに、ディスプレイ非依存の、ＧＵＩ内のスクロールバー認識方法を提供する。この方法は、コンピュータアプリケーションにおいてＧＵＩのスクリーンショットを記録するステップと、スクロールバーを特定するためにスクリーンショットを解析するステップと、スクロールバーのパラメータを抽出するためにスクロールバーを解析するステップとを含む。
【００１９】
一実施形態に従って、さらに、ディスプレイ非依存のスクロールバー認識装置を提供する。このスクロールバー認識装置は、コンピュータアプリケーションにおける、ＧＵＩの画像を記録するためのスクリーンショット記録エンジンと、前記画像内のスクロールバーを特定し、前期スクロールバーのパラメータを抽出するためのスクロールバー解析装置と、を備える。
【００２０】
ある実施形態においては、パラメータは、スクロールバーの場所、スクロールバーの大きさ、スクロールバーのスクロールサムの場所、スクロールバーのスクロールサムの大きさ、スクロールバーの矢印の大きさ、および、スクロールバーの矢印の場所からなるグループから選択される。ある実施形態においては、この方法は、さらに、ＧＵＩの以前は見えなかった領域を表示するために、少なくとも抽出したパラメータに基づいて、スクロールバーを操作するステップと、を含む。
【００２１】
上記の実施例の態様および実施形態に加えて、さらなる態様および実施形態が、図の参照および以下の詳細な説明の検討により明らかになるであろう。
【００２２】
典型的な実施形態を図に示す。図に示す構成要素の規模および特徴は、説明の便宜および明確さのために一般的に選択したものであって、その規模を見積もるために示すことが必要なわけではない。ここに開示する実施形態および図は、制限のためでなく説明を目的としている。図を以下に示す。
【図面の簡単な説明】
【００２３】
【図１】コンピュータによるガイダンスエンジンのブロック図である。
【図２】ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトを実行する方法のフローチャートである。
【図３】コンピュータアプリケーションのグラフィカル・ユーザー・インターフェース（ＧＵＩ：Graphical User Interface）の一例を示す図である。
【図４】ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトのための記録エンジンのブロック図である。
【図５】ディスプレイ非依存の、コンピュータ・ガイダンス・スクリプトを記録する方法のフローチャートである。
【図６】ディスプレイ非依存のＧＵＩ制御部認識装置のブロック図である。
【図７】ディスプレイ非依存のＧＵＩ認識方法のフローチャートである。
【図８】ディスプレイ非依存のスクロールバー認識装置のブロック図である。
【図９】ディスプレイ非依存のスクロールバー認識方法のフローチャートである。
【発明を実施するための形態】
【００２４】
いくつかの実施形態の態様は、コンピュータアプリケーションのユーザーに、ガイダンスを提供するように構成されるガイダンスエンジンに関する。例えば、１つまたはそれ以上のアプリケーションの制御部の起動により、実際にアプリケーションを操作可能なガイダンス・スクリプトを実行することによりガイダンスを実行することができる。例えば、ガイダンス・スクリプトは、カーソルの動き、カーソルクリック若しくはダブルクリック、キーボードストローク、及び／又は、そのようなものをユーザーの代わりに模倣することができる。「模倣する」の用語は、ここに述べるように、マウス、キーボード、タッチスクリーン、及び／又は、そのような入力装置からの手動入力を実際には受け取らない、コンピュータアプリケーションにおける動作開始を参照する。
【００２５】
その上、ユーザーが使用するアプリケーション、及び／又は、コンピュータ装置における様々なディスプレイ特性に非依存の方法で（この方法を、以下「ディスプレイ非依存の」とする）、ガイダンスをユーザーに提供することができる。アプリケーションは、例えば、ウィンドウサイズ、解像度、色、フォント、テーマ、及び／又は、そのようなものが異なるディスプレイ特性においても実行することができるので、１つのディスプレイ特性のセットで記録された従来のガイダンス・スクリプトは、異なるディスプレイ特性のセットを使用するアプリケーションを操作する際に、困難に直面することがある。これは、例えば、従来のガイダンス・スクリプトにより操作可能なあるＧＵＩ制御部が、スクリプトが最終的に実行される実際のアプリケーションにおいて、新しく、また認識されていない場所に、及び／又は、形態で、現れることにより起こるかもしれない。従来のスクリプトは、したがって、その制御部を特定し操作することに単に失敗する場合もある。
【００２６】
したがって、本発明のガイダンスエンジンは、ＧＵＩを解析するためのスクリーンショット解析エンジンを含み、それによって、少なくともＧＵＩに存在する少なくとも１つの制御部を、事前に記録済みの対応するガイダンス・スクリプトの制御部とマッチングさせることができる。こうして、ガイダンス・スクリプト実行エンジンは、スクリプトが実行されているアプリケーションのディスプレイ特性に依存せず、スクリプトを実行し必要な制御部を操作することができる。
【００２７】
さらなる実施形態の態様は、ディスプレイ非依存の、コンピュータ・ガイダンス・スクリプトのための記録エンジンおよびその方法に関する。記録エンジンは、アプリケーションにおける操作シーケンスの記録に加えて、アプリケーションにおけるＧＵＩのスクリーンショットを記録し、解析することができる。この解析においては、記録エンジンは、決定したカーソル位置を囲う領域、例えば、ユーザーの操作シーケンスの実行によってＧＵＩ制御部が起動された位置を調査することができる。そして、起動されたＧＵＩ制御部を特定することができ、その画像、及び／又は、それと関連するメタデータを、それぞれの操作シーケンスのステップに割り当てることができる。
【００２８】
さらなる態様は、ディスプレイ非依存のＧＵＩ制御部認識装置およびその方法に関する。ＧＵＩ制御部認識装置は、アプリケーションのユーザーインターフェースにおけるスクリーンショット内のＧＵＩ制御部を認識および特定することができる。ＧＵＩ制御部認識装置の使用は、ガイダンス・スクリプトの実行、及び／又は、記録と結びつけることもできるし、結び付けないこともできる。例えば、ＧＵＩ制御部の認識は、他のコンピュータによる操作を要望どおり補完するために汎用の画像認識方法として使用することができる。
【００２９】
ディスプレイ非依存のコンピュータによるガイダンス
図１は、コンピュータによるガイダンスエンジン（以後「ガイダンスエンジン」とする）１００のブロック図を示す。ガイダンスエンジン１００は、コンピュータ装置にインストールされ、及び／又は、コンピュータ装置上で実行するように構成されるソフトウェア製品であってもよい。例えば、パーソナルコンピュータ（ＰＣ：Personal Computer）、デスクトップコンピュータ、携帯端末機、ラップトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、サーバコンピュータ、ハンドヘルド・コンピュータ、携帯ゲーム機、基本的に固定使用のゲーム機、ＰＤＡ（Personal Digital Assistant）機、オンボード装置、オフボード装置、携帯電話、複合機（例えば、ＰＤＡ機能と携帯電話機能のように、複数のタイプの装置の機能を包含する装置、乗り物用の装置、乗り物用でない装置、移動または携帯できる装置、移動または携帯できない装置、及び／又はそのようなものである。
【００３０】
ガイダンスエンジン１００は、任意に、スクリーンショット解析エンジン１０２およびガイダンス・スクリプト実行エンジン１０４を含む。それぞれが、ソフトウェア構成要素、及び／又は、ソフトウェア構成部であるか、両方が、１つの構成要素、及び／又は、構成部である。図２は、ディスプレイ非依存の、コンピュータ・ガイダンス・スクリプトを実行するための方法２００（または、「アルゴリズム」）のフローチャートを示す。図１におけるガイダンスエンジン１００の操作は、図２における方法２００の説明を通じて記載される。
【００３１】
ステップ２０２において、コンピュータアプリケーションにおけるＧＵＩのスクリーンショット２０４は、例えば、スクリーンショット解析エンジン１０２（図１）またはスクリーンショット記録エンジン（図示しない）などを用いて記録される。これは、ガイダンスへのユーザー要求に応答して実行することができる。ユーザーへの要求は、例えば、ガイダンスエンジン１００（図１）を起動するために割り当てられたキーを押すこと、ガイダンスエンジンのアイコンをクリックすること、利用できるガイダンス・スクリプトのリストから選択すること、望ましいガイダンス・スクリプトを検索し読み出すこと、及び／又は、そのようなことにより実行される。あるいは、ユーザーがアプリケーションの操作に困難を覚えているかどうかを自動的に判定するために、ユーザーの活動を追跡してもよい。そのような困難が特定された場合は、積極的に、困難に直面した操作に関するガイダンスをユーザーに提供するために方法２００の処理を始めてもよい。
【００３２】
記録するステップは、画像としてスクリーンショットを記憶するステップ２０４を含むことができる。この記憶は、一時的なメモリまたは恒久的な不揮発性メモリにされる。ここで、一時、図３を説明する。図３は、例えば、文書処理のアプリケーションのような、コンピュータアプリケーションを例示するＧＵＩ３００を示す。図１のブロック２００においては、ＧＵＩ３００は、全体的にまたは部分的に、画像として記憶することができる。例えばＧＵＩ３００のようなＧＵＩは、１つまたはそれ以上の制御部（「ウィジェット」と称されることもある）を含むことができる。制御部は、アプリケーションの異なる機能を操作する。このような制御部は、例えば、アイコン（例えば、アイコン３０２）、テキスト（例えば、テキスト３０４）、ボタン（例えば、「ボールド」ボタン３０６）、入力ボックス（例えば、「フォント」入力ボックス３０８およびテキスト領域３１０）、メニュー、ドロップダウンリスト（例えば、「フォント」ドロップダウンリスト３１２）、スクロールバー（例えば、垂直スクロールバー３１４および水平スクロールバー３１６）、スライダー、バー、及び／又は、その他の操作可能なビジュアル要素、を含むことができる。
【００３３】
異なるＧＵＩ（図示しない）は、しばしば、「コンソール・アプリケーション」と称されるユーザーインターフェースを含むことができる（「コンソール・アプリケーション」は、「コマンド・ライン」、「コマンド・プロンプト」、「テキスト端末」、「端末」、及び／又は、そのようなものとして称されることもある）。コンソール・アプリケーションは、主に、テキスト、および、時には付加的なシンプルで最小限のグラフィック要素、及び／又は、シンボルを備えるユーザーインターフェースを有するソフトウェア・アプリケーションであってもよい。コンソール・アプリケーションは、マウスのようなポインティング・デバイスを用いて操作することもあるが、たいていはキーボードを用いて操作するように設計される。グラフィック要素の拡張性が不足しているため、ＧＵＩから「グラフィカル（Graphical）」の用語が外され、単に「ユーザーインターフェース（ＵＩ：User Interface）」と称されることがある。しかしながら、ＧＵＩの用語は、ここに示すように、コンソール・アプリケーションのＵＩも含むことを意図している。
【００３４】
図２に戻ると、ガイダンス・スクリプト２０８を提供することができる。ガイダンス・スクリプト２０８は、アプリケーションを操作するための実行可能な操作シーケンスを含むことができる。操作シーケンスは、１つまたはそれ以上のステップ２０８ａを含んでもよい。各ステップは、任意に、アプリケーションのＧＵＩ制御部（単に「制御部」と称されることもある）に関する動作を含む。図３のＧＵＩ３００を参照すると、単なる一例として、第１のステップは、「ｔａｂ１」制御部３２０上のクリックの模倣を含んでもよい、第２のステップは、「ボールド」制御部３０６条のクリックの模倣を含んでもよい、第３のステップは、「ｔａｂ２」制御部３２２上のクリックの模倣を含んでもよい、そして、第４のステップは、「テキスト領域」制御部３１０内のテキスト入力の模倣を含んでもよい。１つまたはそれ以上の、ガイダンス・スクリプト２０８、例えば、図３の制御部３２０、３０６、３２２および３１０の動作と関連するＧＵＩ制御部の画像は、ガイダンス・スクリプトを備えることができる。
【００３５】
スクリーンショット２０４は、その内部でガイダンス・スクリプト２０８の制御部に対応する制御部を特定するために、ステップ２０６において解析することができる。この解析は、例えば、スクリーンショット解析エンジン１０２（図1）を用いて実行することができる。これは、例えば、カラー・スクリーンショット、及び／又は、1つまたはそれ以上の変更したスクリーンショット、例えば、サイズを変更したスクリーンショット、スクリーンショットの一部、グレースケールのスクリーンショット、または、白黒（１ビット）型のスクリーンショット、反転型のスクリーンショット、または、グレースケールのスクリーンショット、または、白黒型のスクリーンショット、及び／又は、そのようなもののようなオリジナルのスクリーンショット上で実行することができる。変更したスクリーンショットは、画像変換部を用いて作ることができる。画像変換部は、画像処理の方法により、要求された変更を実行するように構成されるソフトウェア構成要素である。
【００３６】
スクリーンショット２０４の解析は、制御部とガイダンス・スクリプト２０８におけるステップ２０８ａに対応する制御部とのマッチング２１０を可能とするために、スクリーンショットにおける、図形の、及び／又は、テキストの制御部の特徴を特定するために構成される画像認識アルゴリズムの実行を含むことができる。単純な場合として、制御部が目立つ境界を有する場合がある。例えば、図３においては、「ペースト」ボタン３１８は、その最も周辺の領域が、つながった画素からなる連続的なフレームを有するので、その周囲から比較的容易に区別することができる。テキストは、例えば、「ペースト」ボタン３１８の下にある、単語「テキスト」３０４のような図形の制御部と関連する場合がある。アルゴリズムは、これらの関係を示す所定のスペースに基づいて、「テキスト」３０４および「ペースト」ボタン３１８を関連したものとして特定することができる。このスペースは、状況に応じて、例えば、1画素から数画素または数１０画素までに及ぶことができる。アルゴリズムは、さらに、図形の制御部と関連するテキストの位置に応じて、異なる「重み」をテキストに割り当てることによって、テキストが図形の制御部と関連するかどうかを決定することができる。例えば、図形の制御部の右側または左側に位置するテキストには、大きい重みを与え、図形の制御部の上に位置するテキストには中間の重みを与え、図形の制御部の下に位置するテキストには、小さい重みを与えることができる。重みが大きくなるにつれて、テキストが、図形の制御部と関連する傾向が強くなる。
【００３７】
テキストの特徴は、光学文字認識（ＯＣＲ：Optical Character Recognition）の技術により、例えば、つながった画素の「島」を位置づけることにより、特定することができる。各々の島は、典型的には１文字（例えば、文字、数字またはシンボル）を決定する。ある場合は、例えば、文字「ｉ」および「ｊ」の場合は、各々の文字は、２つの島で特定することができる。しかし、さらなる場合として、複数の島によって、どのような適切な文字も特定できない場合もある。単語全体は、隣接して位置する一連の文字を決定することにより特定することができる。文字の後ろの、約１〜２文字の幅を有するスペースは、２つの単語間の分離を示すことができる。スペースが所定の値よりも広いときは、そのことは、次の単語が前の１単語または数単語と関連がなく、別の制御部の一部であること示すことができる。
【００３８】
コンソール・アプリケーションのＵＩの場合は、要素の図形的な特徴の決定より、ＯＣＲ技術が普及している可能性が高い。上述のように、たいていの場合、コンソール・アプリケーションは主としてテキストを含む。コンソール・アプリケーションのＵＩを解析し、これらの中の１つまたはそれ以上の制御部を特定するためには、ＯＣＲ技術が、より適している。
【００３９】
スクリーンショットにおける制御部の特定２０４に続いて、特定されたスクリーンショットは、例えば、その上をクリックすること、制御部を始動させるキーボードストロークまたは結合を開始すること、及び／又はそのようなことにより、ガイダンス・スクリプト実行エンジン１０４（図1）が、ガイダンス・スクリプトを首尾よく実行し（２１２）、アプリケーションにおける実際の制御部を操作することを可能とするために、ガイダンス・スクリプト２０８の制御部とマッチングすることができる（２１０）。しかしながら、ある状況においては、アプリケーションのＧＵＩに、本質的に同じように見える複数の制御部が存在することもある。そのような状況においては、これらのＧＵＩ制御部の１つを、ガイダンス・スクリプト２０８の制御部と正しくマッチングさせるために、スクリーンショット２０４およびガイダンス・スクリプト２０８の両方における、制御部の周囲（例えば、隣接する制御部、及び／又は、隣接する図形要素）を解析し、正しいマッチングの機会を増やすことが必要になる場合もある。マッチング制御は、しばしば、同じような制御部、及び／又は、図形要素を有する可能性がある。
【００４０】
ある実施形態においては、マッチングを実行する際の精度レベルを予め決めておくことができる。高い精度レベルは、スクリーンショット２０４とガイダンス・スクリプト２０８との間のディスプレイ特性の極端な変化に対して、より耐えられない場合がある。一方、低い精度レベルにおいては、ディスプレイ特性の変化の下でもマッチングできるかもしれないが、マッチングの誤りを起こすこともあり得る。任意に、精度レベルは割合で決定される。
【００４１】
マッチングが失敗した場合、すなわち対応するスクリーンショット２０４の制御部とガイダンス・スクリプト２０８が見つからなかった場合は、スクリーンショット解析エンジン１０２（図１）は、自動的に１つまたはそれ以上のスクロールバー、例えば水平スクロールバー３１６（図３）、及び／又は、垂直スクロールバー３１４（図３）を起動し、コンピュータアプリケーションの以前は見えなかった領域へスクロールするために利用することができる。例えば、スクリーンショット解析エンジン１０２（図１）は、ガイダンス・スクリプト２０８の制御部とマッチングするＧＵＩ制御部を探すために、自動的に、テキスト領域（図３）の以前は見えなかった領域にスクロールすることができる。任意に、スクロールが新しい領域を表示した後に、ＧＵＩのスクリーンショットを再び記録し（２０２）、解析２０６およびマッチング２１０のステップを新しい領域に対して繰り返すことができる。
【００４２】
ガイダンス・スクリプト２０８の実行中、ステップ２１２において、少なくとも１つのステップ２０８ａをユーザーへの説明とともに補足するために、１つまたはそれ以上のヘルプテキストを表示することができる。例えば、制御部を自動的に起動した後にヘルプテキストを表示し、ユーザーに手動で操作させる半自動モードで実行することができる。再び図３を参照すると、例示的なヘルプテキスト３３０が、例示的なガイド吹き出し３３２の中に示されている。ヘルプテキスト３３０は、ユーザーにテキスト領域３１０へのテキスト入力を要求する。ユーザーがテキストを入力した後、ガイダンス・スクリプト２０８（図２）は、次のステップへ進む。図１のガイダンス・スクリプト実行エンジン１０４は、ユーザーが手動操作の実行を終了したとき、自動的に検出するように構成される。加えて、または、その代わりに、例えば、ユーザーがクリックすることで、図１のガイダンス・スクリプト実行エンジン１０４に、ユーザーが手動操作を完了しガイダンス・スクリプトの実行再開を望んでいることを示すボタン（図示しない）を提供することができる。
【００４３】
ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトの記録
図４は、一実施形態に従って、ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトのための記録エンジン４００のブロック図を示す。
【００４４】
記録エンジン４００は、インストールされた、及び／又は、コンピュータ装置、例えばパーソナルコンピュータ（ＰＣ：Personal Computer）、デスクトップコンピュータ、携帯端末機、ラップトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、サーバコンピュータ、ハンドヘルド・コンピュータ、携帯用デバイス、携帯ゲーム機、基本的に固定使用のゲーム機、ＰＤＡ（Personal Digital Assistant）、搭載装置、非搭載装置、携帯電話、複合装置（例えば、ＰＤＡの機能と携帯電話の機能のように、複数のタイプの装置の機能を組み合わせた装置）、自動車用装置、非自動車用装置、移動または携帯デバイス、非移動または非携帯装置、及び／又は、そのようなもので実行するように構成されたソフトウェア製品であってもよい。
【００４５】
記録エンジン４００は、図２のガイダンス・スクリプトのようなガイダンス・スクリプトを記録するために使用することができる。ガイダンス・スクリプトは、同一のまたは異なるコンピュータ装置上で、後で実行されるように構成される。例えば、ソフトウェア開発者またはソフトウェア開発会社は、ユーザーのコンピュータ装置で実行するために、ガイダンス・スクリプトを記録し、ユーザーに分配することができる。
【００４６】
記録エンジン４００は、任意に、スクリーンショット記録エンジン４０２、スクリーンショット解析エンジン４０４、及び／又は、操作シーケンスレコーダー４０６を含む。各々は、ソフトウェア構成要素、及び／又は、モジュールであり、全ては、単一の構成要素、及び／又は、モジュールとして実装される。図５は、ディスプレイ非依存のコンピュータ・ガイダンス・スクリプトを記録するための方法５００（または「アルゴリズム」）のフローチャートを示す。図４の記録エンジン４００の操作は、図５における方法５００の説明を通して述べられる。
【００４７】
方法５００の全体を見ると、コンピュータアプリケーションにおける操作シーケンスは、ステップ５０２においてユーザーが手動で実行する。操作シーケンスは、１つまたはそれ以上のステップ５０２ａを含むことができる。各々のステップは、任意に、アプリケーションのＧＵＩ制御部に関する動作を含む。図３のＧＵＩ３００を参照すると、ほんの一例として、第１のステップは、手動で「タブ１」制御部３２０をクリックするステップを含んでもよく、第２のステップは、手動で「ボールド」制御部３０６をクリックするステップを含んでもよく、第３のステップは、手動で「タブ２」制御部３２２をクリックするステップを含んでもよく、第４のステップは、手動で「テキスト領域」制御部３１０の中にテキストを打ち込むステップを含んでもよい。
【００４８】
ステップ５０４においては、例えば、図４の操作シーケンスレコーダー４０６を用いて操作シーケンスを記録することができる。記録するステップとして、例えば、カーソルクリック、カーソル移動経路、キーボード入力、及び／又は、そのような動作を記録するステップ含むことができる。これらの動作は、コンピュータアプリケーションにおいて動作を実行するように構成されるソフトウェアを用いて、（ユーザーによる）手動または自動で実行することができる。そのようなソフトウェアの使用は、実質的な人間の介入を必要とすることなく、より高速で、より正確で、及び／又は、より効率的な操作シーケンスの記録を可能にする。記録する間、ステップ５０６において１つまたはそれ以上の制御部をそれぞれのステップ５０２ａに割り当てることができる。記録した、操作シーケンスおよびそれぞれのステップに割り当てられた制御部を含むガイダンス・スクリプトは、ステップ５１６において生成される。
【００４９】
ステップ５０４における操作シーケンスを記録するステップ、および、ステップ５０６におけるそれぞれの制御部をステップに割り当てるステップは、ここに記載するように、ステップ５０８〜５１４における動作に基づいて実行することができる。
【００５０】
ステップ５０８において、コンピュータアプリケーションにおけるＧＵＩのスクリーンショット５１０は、例えば、スクリーンショット記録エンジン４０２（図４）を用いて記録される。記録するステップは、例えば、ユーザーによる、カーソルクリック、キーボード入力、及び／又は、そのようなものであるステップ５０２ａに応答して実行することができる。
【００５１】
クリックが実行されたときにカーソルがあった位置は、スクリーンショット５１０によって特定することができる。例えば、図３を参照すると、「タブ４」テキスト３３６の隣に位置し、「タブ４」をクリックしているカーソル３３４が示されている。同様に、キーボードストロークがユーザーによる手動操作の場合、ストロークにより起動された制御部の位置を検出することができる。例えば、キーボードの組合せｃｔｒｌ＋４が「タブ４」を起動する場合、「タブ４」の位置が検出され推測される。
【００５２】
ステップ５１２においては、決定したカーソル位置を囲う領域は、例えば、図４のスクリーンショット解析エンジン４０４により解析される。この解析は、カーソルクリックが実行された、または、キーボードストロークが起動した制御部の特定（５１４）を可能とする。任意に、図４のスクリーンショット解析エンジン４０４は、図１のスクリーンショット解析エンジン１０２も同様に操作する。したがって、上述のように、ステップ５１２の解析は、図２のステップ２０６の解析にも同様に実行される。
【００５３】
特定された制御部、及び／又は、その周囲の領域は、画像として保存され、上述のように、操作シーケンス５０２のステップ５０２ａに割り当て（５０６）、任意に、ガイダンス・スクリプト５１６とともに記憶することができる。
【００５４】
方法５００を要約すると、方法５００は、ディスプレイ非依存のガイダンス・スクリプト５１６を生成することができる。すなわち、各々のステップ５０２ａとともに画像を記憶することによって、後にガイダンス・スクリプトを、異なるディスプレイ特性を有するコンピュータ装置上で実行することが可能となる。このコンピュータ装置のディスプレイ特性については、方法５００の記録するステップが実行されている。つまり、記憶した画像は、実行中に、ガイダンス・スクリプトが実行されるコンピュータアプリケーションにおいて特定したＧＵＩ制御部とマッチングすることができる。
【００５５】
ディスプレイ非依存のＧＵＩ制御部の認識
図６は、一実施形態にしたがって、ディスプレイ非依存のＧＵＩ制御部認識装置６００のブロック図を示す。
【００５６】
制御部認識装置６００は、コンピュータ装置にインストールされた、及び／又は、コンピュータ装置上で実行するように構成されたソフトウェア製品であってもよい。例えば、パーソナルコンピュータ（ＰＣ：Personal Computer）、デスクトップコンピュータ、携帯端末機、ラップトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、サーバコンピュータ、ハンドヘルド・コンピュータ、携帯ゲーム機、基本的に固定使用のゲーム機、ＰＤＡ（Personal Digital Assistant）機、オンボード装置、オフボード装置、携帯電話、複合機（例えば、ＰＤＡ機能と携帯電話機能のように、複数のタイプの装置の機能を包含する装置、乗り物用の装置、乗り物用でない装置、移動または携帯できる装置、移動または携帯できない装置、及び／又はそのようなものである。
【００５７】
制御部認識装置６００は、コンピュータアプリケーションにおけるＧＵＩのスクリーンショット内のＧＵＩ制御部を認識し特定するために使用することができる。制御部認識装置６００の使用は、上述のように、ガイダンス・スクリプトの実行、及び／又は、記録と結び付けても結び付けなくてもよい。例えば、ＧＵＩ制御部の認識は、他のコンピュータによる操作を要望どおり補完するために、汎用の画像認識方法として使用することができる。
【００５８】
制御部認識装置６００は、任意に、スクリーンショット記録エンジン６０２、カーソル位置特定装置６０４、及び／又は、カーソル位置領域解析装置６０６を含む。それぞれが、ソフトウェア構成要素、及び／又は、ソフトウェア構成部であるか、全部が、１つの構成要素、及び／又は、構成部である。図７は、ディスプレイ非依存の、ＧＵＩ制御部認識方法７００（または、「アルゴリズム」）のフローチャートを示す。図６における制御部認識装置６００の操作は、図７における方法７００の説明を通して説明される。
【００５９】
ステップ７０２において、コンピュータアプリケーションにおけるＧＵＩのスクリーンショット７０４は、例えば、スクリーンショット記録エンジン６０２（図６）などを用いて記録される。記録するステップは、任意に、ユーザーによる操作シーケンスの実行中に、すなわち、ユーザーによる、カーソルクリック、キーボード入力、及び／又は、そのような操作に応答して実行される。
【００６０】
任意のステップ７０６において、クリックが実際に実行された場合は、クリックが実行されたときにカーソルがあった位置を決定することができる。これは、図６のカーソル位置特定装置６０４により実行することができる。例えば、図３を参照すると、「タブ４」テキスト３３６の隣に位置し、「タブ４」をクリックしているカーソル３３４が示されている。同様に、キーボードストロークがユーザーによって実行された場合、ストロークにより起動された制御部の位置を検出することができる。例えば、キーボードの組合せｃｔｒｌ＋４が「タブ４」を起動する場合、「タブ４」の位置が検出され推測される。
【００６１】
任意のステップ７０６の動作が実行された場合、ステップ７０８においては、決定したカーソル位置を囲う領域は、例えば、図６のカーソル位置領域解析装置６０６により解析される。この解析は、カーソルクリックが実行された、または、キーボードストロークが起動した制御部の特定を可能とする。任意に、図６のカーソル位置領域解析装置６０６は、図１のスクリーンショット解析エンジン１０２も同様に操作する。したがって、上述のように、ステップ７０８の解析は、図２のステップ２０６の解析にも同様に実行される。
【００６２】
または、任意のステップ７０６の動作が実行された場合は、ステップ７０８において、例えば図６のカーソル位置領域解析装置６０６によって、スクリーンショット７０４の領域をその全体に至るまで解析することができる。この解析は、スクリーンショット７０４に存在する１つまたはそれ以上の制御部の特定を可能にする。
【００６３】
ステップ７１０において、特定された制御部、及び／又は、その周囲の領域は画像として記憶することができる。制御部の画像は、要望どおり、他のコンピュータ処理、アプリケーション、及び／又は、そのようなものに使用することができる。好適には、方法７００は、ＧＵＩのスクリーンショットから個別の制御部の特定および抽出を可能にする方法により、コンピュータアプリケーションにおけるＧＵＩの解析を可能にする。
【００６４】
図８は、ディスプレイ非依存のスクロールバー認識装置８００のブロック図を示す。
【００６５】
スクロールバー認識装置８００は、コンピュータ装置にインストールされた、及び／又は、コンピュータ装置上で実行するように構成されたソフトウェア製品であってもよい。例えば、パーソナルコンピュータ（ＰＣ：Personal Computer）、デスクトップコンピュータ、携帯端末機、ラップトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、サーバコンピュータ、ハンドヘルド・コンピュータ、携帯ゲーム機、基本的に固定使用のゲーム機、ＰＤＡ（Personal Digital Assistant）機、オンボード装置、オフボード装置、携帯電話、複合機（例えば、ＰＤＡ機能と携帯電話機能のように、複数のタイプの装置の機能を包含する装置、乗り物用の装置、乗り物用でない装置、移動または携帯できる装置、移動または携帯できない装置、及び／又はそのようなものである。
【００６６】
スクロールバー認識装置８００は、コンピュータアプリケーションにおけるスクリーンショット内のスクロールバーを認識し特定するために使用することができる。スクロールバー認識装置８００の使用は、上述のように、ガイダンス・スクリプトの実行、及び／又は、記録と結び付けても結び付けなくてもよい。例えば、スクロールバーの認識は、他のコンピュータによる操作を要望どおり補完するために、汎用の画像認識方法として使用することができる。
【００６７】
スクロールバー認識装置８００は、任意に、スクリーンショット記録エンジン８０２、スクロールバー解析装置８０４、及び／又は、カーソル位置領域解析装置６０６を含む。それぞれが、ソフトウェア構成要素、及び／又は、ソフトウェア構成部であるか、全部が、１つの構成要素、及び／又は、構成部である。図９は、ディスプレイ非依存の、スクロールバー認識方法９００（または、「アルゴリズム」）のフローチャートを示す。図８におけるスクロールバー認識装置８００の操作は、図９における方法９００の説明において記載される。
【００６８】
ステップ９０２において、コンピュータアプリケーションにおけるＧＵＩのスクリーンショット９０４は、例えば、図８のスクリーンショット記録エンジン８０２などを用いて記録される。
【００６９】
ステップ９０６において、スクリーンショット９０４は、ステップ９０８内のスクロールバーを特定するために解析される。この解析は、図８のスクロールバー解析装置８０４により実行することができる。この解析は、スクロールバーの一般的な特性、すなわちスクロールサムの存在、細長い溝および１つまたはそれ以上の矢印、に構成される制御部（すなわち、スクロールバー）の探査を含むことができる。これらの特性は、再び図３を参照することでよく理解できる。水平スクロールバー３１６は、例えば、スクロールサム（「バー」と称されることもある）３１６ａを含む。スクロールサムは、（カーソル、及び／又は、キーボードを用いて）細長い溝３１６ｄに沿ってドラッグできるように構成される任意の要素である。スクロールサム３１６ａのドラッグは、「スクロール」を引き起こす。すなわち、テキスト領域３１０の以前は見えなかった領域を見えるようにする。例えば、スクロールサム３１６ａが右へドラッグされた場合、テキストエリア３１０の以前は見えなかった右側の領域が現れる。スクロールサム３１６ａの幅（または、垂直スクロールバーの場合は高さ）は、任意に、適用されたズームの程度を反映する。完全に溝を満たすスクロールサムは、文書全体が表示されていることを示す。または、スクロールは、例えば、スクロールバー３１６の左矢印３１６ｂまたは右矢印３１６ｃのような矢印をクリックすることにより達成することができる。左矢印３１６ｂをクリックすることは、例えば、テキスト領域３１０の以前は見えなかった領域を表し、スクロールサム３１６ａを左へ移動させることができる。
【００７０】
解析は、少なくともスクロールバーの２つの要素、すなわち、矢印およびスクロールサムのための探査を含むことができる。任意に、探査は、スクリーンショット９０４の１ビット型、及び／又は、反転１ビット型について実行される。矢印は、三角形を形成する結合した画素の連続的した島状の部分を探査することにより特定することができる。スクロールサムは、特定された矢印が指す方向に平行する軸内を探査することにより特定することができる。その軸内で見出された各々の要素は解析することができ、スクロールサムの存在は、実質的に四角形の結合した画素の島状の部分が見いだされるか否かで決定することができる。矢印とスクロールサムとの間の実質的に空いている空間（スクロールサムと反対の色を有する画素が結合した島状の部分として表される）は、溝に似ている。
【００７１】
または、探査される少なくとも２つの要素は、それらが指す方向に平行する同じ軸上にある反対方向の２つの矢印であってもよい。
【００７２】
ステップ９１２において、少なくとも１つのパラメータを抽出するために、ステップ９１０において特定されたスクロールバーが解析される。スクロールバーの解析は、１つまたはそれ以上の以下に示すパラメータの決定を含むことができる。パラメータは、スクロールバーの場所、スクロールバーの大きさ、スクロールバーのスクロールサムの場所、スクロールバーのスクロールサムの大きさ、スクロールバーの矢印の大きさ、および、スクロールバーの矢印の場所、の決定を含むことができる。これらの大きさの各々は、水平方向、及び／又は、垂直方向の画素で示すことができる。これらの場所の各々は、ＧＵＩ全体に関する、スクロールバー、スクロールサム、または、スクロールバーの矢印のＸ−Ｙ座標である。
【００７３】
任意に、上述のパラメータの抽出に続いて、スクロールバーは、スクロールするために自動的に操作することができる。例えば、ＧＵＩの以前は見えなかった領域を表示するために、スクロールサムはドラッグされ、及び／又は、スクロールバーの矢印はクリックされる。
【００７４】
上述のように、いくつかの実施態様および実施形態を論じてきたが、当業者は特定の変更、置換、付加およびこれらのいくつかの組み合わせを認識するだろう。したがって、以下の追加した請求項および導入した請求項は、本発明の精神および範囲内において、全てのそのような変更、置換、付加およびこれらのいくつかの組み合わせを含むように解釈されることを意図している。
【００７５】
本出願の明細書および特許請求の範囲においては、「含む／備える（ｃｏｍｐｒｉｓｅ）」、「含む（ｉｎｃｌｕｄｅ）」および「有する（ｈａｖｅ）」の各々の用語、および、その形式は、必ずしもその用語が関連するリスト内の要素に制限されない。
【図１】
2011081778.tif 000003
【図２】
2011081778.tif 000004
【図３】
2011081778.tif 000005
【図４】
2011081778.tif 000006
【図５】
2011081778.tif 000007
【図６】
2011081778.tif 000008
【図７】
2011081778.tif 000009
【図８】
2011081778.tif 000010
【図９】
2011081778.tif 000011
【外国語明細書】
2011081778000001.pdf