(57)【要約】  本発明は、ユーザインターフェイス（２０５）上で実施される全体タスクにおけるステップを完了する、作成者（２０１）のアクションに基づいて、画像を自動的に取り込むシステム（２００）を対象とする。画像を取り込むために、作成者（２０１）は、記録コンポーネント（２０７）を活動化する。記録コンポーネント（２０７）は、ユーザインターフェイス（２０５）における作成者のアクションに対応する画像を記録する。記録コンポーネント（２０７）は、記録された画像を編集コンポーネント（２４０）に渡すことができ、編集コンポーネントにおいて、作成者は、画像に対応するテキストを生成して、アクションを記述することができる。画像は、所望される場合は、テキストに埋め込まれて公開することもできる。
2008506184.tif 000002
【特許請求の範囲】
【請求項１】
タスクを実施するためにユーザインターフェイス上でとられるステップを示すコンテンツを生成する方法であって、
前記ユーザインターフェイス上におけるコントロールのユーザ操作を示すユーザ入力を受け取る段階と、
前記ユーザ入力に応答して、前記ユーザインターフェイス上で前記ユーザが操作した前記コントロールの画像を記録する段階とを含むことを特徴とする方法。
【請求項２】
前記コントロールの前記ユーザ操作のテキスト記述を受け取るように構成されたエディタコンポーネント上に、前記コントロールの前記記録された画像を表示する段階をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記記録された画像をエディタコンポーネントに表示するのに先立って、前記コントロールのユーザ操作に対応するテキストを自動的に生成する段階をさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記テキスト記述に前記画像を埋め込む段階をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記画像を記録する段階は、前記ユーザインターフェイス上での前記コントロールの位置を示す位置情報を受け取る段階を含む段階を特徴とする請求項２に記載の方法。
【請求項６】
前記画像を記録する段階は、前記ユーザインターフェイス上での前記コントロールのサイズを示すサイズ情報を受け取る段階を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記記録する段階は、前記サイズ情報および前記位置情報に基づいて、前記ユーザインターフェイス上で、前記コントロールの背景を見せる背景画像を示す背景画像情報を記録する段階を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記背景情報を記録する段階は、記録するための前記背景情報をヒュリスティックに基づいて計算する段階を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記背景情報を記録する段階は、前記コントロールの前記画像の周辺の画像の少なくとも一部分を記録する段階を含むことを特徴とする請求項７に記載の方法。
【請求項１０】
前記画像を記録する段階は、前記ユーザインターフェイス上の前記コントロールの親ウィンドウを示す親ウィンドウ情報を受け取る段階を含むことを特徴とする請求項７に記載の方法。
【請求項１１】
前記画像を記録する段階は、前記コントロールの前記親ウィンドウの画像を記録する段階を含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記画像を表示する段階は、前記コントロールの前記画像と、前記背景画像と、前記親ウィンドウの前記画像とを前記エディタコンポーネント上に表示する段階を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記表示する段階は、前記コントロールの前記画像と、前記背景画像と、前記親ウィンドウの前記画像とを、前記エディタコンポーネントの第１の表示部分に表示する段階と、
前記タスクを実施するためにとられる前記ステップの選択可能なインジケータを、前記エディタコンポーネントの第２の表示部分に表示する段階とを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記選択可能なインジケータの１つが選択されると、前記選択されたインジケータに関連づけられた前記ステップに対応する画像が、前記エディタコンポーネントの前記第１の表示部分に表示されるように、前記エディタコンポーネントが構成されていることを特徴とする請求項１３に記載の方法。
【請求項１５】
ユーザインターフェイス上でタスクを実施するために、ユーザによってとられたステップを記述するコンテンツを生成するためのコンテンツ生成システムであって、
前記ユーザがステップをとったという連絡を受けるように、また、前記ステップを識別する前記ユーザインターフェイスの画像の少なくとも一部分を記録するように構成された記録システムを備えることを特徴とするコンテンツ生成システム。
【請求項１６】
記録された画像を表示し、関連づけられたテキストを受け取るように構成されたエディタコンポーネントをさらに備えることを特徴とする請求項１５に記載のコンテンツ生成システム。
【請求項１７】
前記エディタコンポーネントは、前記関連づけられたテキストに埋め込まれた前記画像を有する最終コンテンツを生成するように構成されていることを特徴とする請求項１６に記載のコンテンツ生成システム。
【請求項１８】
前記記録システムは、前記記録されたステップを識別するステップ識別情報を記録するように構成されていることを特徴とする請求項１６に記載のコンテンツ生成システム。
【請求項１９】
前記ステップ識別情報を受け取り、前記識別情報に基づいて、前記ステップを記述するテキストを自動的に生成するように構成された自動テキスト生成システムをさらに備えていることを特徴とする請求項１８に記載のコンテンツ生成システム。
【請求項２０】
前記ユーザは、前記ユーザインターフェイス上でコントロールを操作することによってステップ前記ステップをとり、前記記録システムは、
前記ユーザによって操作される前記コントロールの、前記ユーザインターフェイス上での位置およびサイズを識別するように構成されたコンポーネントを備えていることを特徴とする請求項１６に記載のコンテンツ生成システム。
【請求項２１】
前記記録システムは、前記ユーザインターフェイス上での、前記コントロールの前記位置およびサイズに基づいて、前記コントロールの画像を記録するように構成されていることを特徴とする請求項２０に記載のコンテンツ生成システム。
【請求項２２】
前記記録システムは、前記コントロールの前記画像より大きい背景画像を識別し、また前記背景画像を記録するように構成されていることを特徴とする請求項２１に記載のコンテンツ生成システム。
【請求項２３】
前記記録システムは、前記コントロールの親である、前記ユーザインターフェイス上の親ウィンドウの画像を記録するように構成されることを特徴とする請求項２２に記載のコンテンツ生成システム。
【請求項２４】
前記エディタコンポーネントは、前記背景画像および前記親ウィンドウの前記画像を、表示画面の第１の部分に表示するように構成されていることを特徴とする請求項２３に記載のコンテンツ生成システム。
【請求項２５】
前記エディタコンポーネントは、前記ユーザによってとられた前記ステップに関連づけられた前記テキストを、前記表示画面の第２の部分に表示するように構成され、前記テキストは、各ステップに１つずつの、複数のインジケータを含むことを特徴とする請求項２４に記載のコンテンツ生成システム。
【請求項２６】
前記エディタコンポーネントは、前記表示画面の前記第２の部分の前記インジケータのうち１つのユーザ選択を受け取り、前記選択されたインジケータに関連づけられた前記背景画像および前記親ウィンドウの前記画像を、前記表示画面の前記第１の部分に表示するように構成されていることを特徴とする請求項２５に記載のテキスト生成システム。
【請求項２７】
命令を格納するコンピュータ可読媒体であって、コンピュータによって読み取られたとき、
ユーザインターフェイス上の要素のユーザ操作を検出するステップと、
前記ユーザ操作に応答して、前記要素を示す画像を前記ユーザインターフェイスから記録するステップとを、前記コンピュータに実施させることを特徴とするコンピュータ可読媒体。
【請求項２８】
前記検出するステップは、前記要素のサイズおよび位置を識別するステップを含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項２９】
前記記録するステップは、前記要素の前記サイズおよび位置に基づいて、前記要素の画像を記録するステップを含むことを特徴とする請求項２８に記載のコンピュータ可読媒体。
【請求項３０】
前記要素の画像を記録するステップは、前記ユーザインターフェイス上の前記要素の少なくとも一部分の周りの背景画像を記録するステップを含むことを特徴とする請求項２９に記載のコンピュータ可読媒体。
【請求項３１】
前記検出するステップは、前記要素の親ウィンドウを検出するステップと、
前記親ウィンドウの画像を記録するステップとを含むことを特徴とする請求項３０に記載のコンピュータ可読媒体。
【請求項３２】
前記要素の前記画像と、前記背景と、前記親ウィンドウとを、関連づけられたテキストを受け取るように構成されたエディタに表示するステップをさらに含むことを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３３】
前記記録された画像に関連づけられたテキストを自動的に生成するステップをさらに含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３４】
前記要素は、コントロール要素を含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３５】
前記要素は、テキストボックスを含むことを特徴とする請求項３４に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ヘルプコンテンツなど、コンテンツの生成を扱う。より詳細には、本発明は、ユーザインターフェイスにおけるユーザのアクションを示す画像の自動取込みを扱う。
【背景技術】
【０００２】
グラフィカルユーザインターフェイス（ＧＵＩ）は、広く使われているインターフェイス機構である。ＧＵＩは、位置決めタスク（たとえば、矩形のサイズ変更）、表示修正タスク（たとえば、何かに、漠然とした青い影をつける）または選択タスク（たとえば、１００枚の絵のうち、これが、自分が回転させたいものである）に非常に優れている。ＧＵＩは、素早いシングルステップ特徴への高速アクセスにも優れている。アプリケーションのＧＵＩは、タスク志向の視点（たとえば、「自分のコンピュータをハッカーから守りたい」など、ユーザが行いたいと思う、より高いレベルのタスクによって編成される）ではなく、機能的な視点から編成される（たとえば、メニュー、ツールバーなどに編成される）有用なツールボックスである。
【０００３】
しかし、ＧＵＩは、ユーザに多くの問題も提示する。ツールボックスの例えを用いると、ユーザがボックスにあるツールを見つける、またはどのようにツールを使って多数のステップからなるタスクを完了するかを把握するのが困難である。不透明な階層に押し込まれた単語、ごく小さいボタンおよびタブによって記述されるインターフェイスは、人々がそのタスクについて考えるのに適してはいない。ＧＵＩは、ユーザが、タスクを遂行するのにどのような要素が必要であるか判断するために、タスクを分解することを要求する。この要件は、複雑さにつながる。複雑さを別にしても、ＧＵＩ要素（すなわち、メニュークリック、ダイアログクリックなど）を組み立てるのには時間がかかる。これは非効率的であり、エキスパートユーザの場合でも時間がかかる可能性がある。
【０００４】
ＧＵＩの問題に対処する１つの既存のメカニズムが、文書型ヘルププロシージャである。ヘルププロシージャはしばしばヘルプドキュメント、ＰＳＳ（製品サポートサービス）ＫＢ（知識ベース）記事、およびニュースグループ投稿の形をとり、これらは顧客のニーズとＧＵＩの問題との間の隔たりを埋める。こうしたプロシージャは、ツールボックスに伴うマニュアルに類似しており、多くの利益を有している。こうした利益は、例として、以下のことを含む。
【０００５】
１）技術的に言うと、技術者でない作成者にとっても、オーサリングするのが比較的容易である。
【０００６】
２）サーバ上で更新するのが容易なので、接続されたユーザは、新規コンテンツに容易にアクセスできる。
【０００７】
３）ＧＵＩに教示を行うことによって、ユーザに問題解決を制御させる。
【０００８】
しかし、ヘルプドキュメント、ＰＳＳ  ＫＢ記事およびニュースグループは、それ自身も問題をもっている。こうした問題は、例として、以下のことを含む。
【０００９】
１）複雑なタスクは、ユーザ側で大量の処理を必要とする。ユーザは、各ステップにおいて言われていることを、ＧＵＩにマッピングする必要がある。これにより、ステップがスキップされる、間違って記述される、または不完全に記述される、あるいは順不同に記述されることにより、エラーにつながる可能性がある。
【００１０】
２）トラブルシュータ、およびプロシージャのヘルプドキュメントでさえも、ヘルプトピック内で複雑な分岐を作成する状態情報をしばしば含むため、トピックが長くなり、エンドユーザが読み取り、処理することが難しくなっている。ツールバーは、なくなっている場合や、次のステップをとることができる前にオンにする必要がある場合がある。トラブルシュータはしばしば、よくても苛立たしいような（トラブルシュータが自力で答えを見つけることができるはずなので）、最悪の場合は専門家以外には答えることができないような状態について質問する。
【００１１】
３）数百万のドキュメントがあり、答えを検索するには、どこから検索を開始するかの問題と、次いで、検索された数千個の結果からどのようにして最良の検索結果を選ぶかの両方を伴う。
【００１２】
４）共有のオーサリング構造がない。ニュースグループ投稿、ＫＢ記事、トラブルシュータおよびプロシージャヘルプドキュメントはすべて、異なる構造およびオーサリング戦略をもつが、それでも、すべてが同様の問題を解決する。
【００１３】
５）ユーザにとって、ステップごとのテキストを読み取り、次いで記述されている要素を求めてＵＩを視覚的に検索し、その要素に関して記述されたアクションをとることは、かなり難しい。
【００１４】
ＧＵＩの問題に対処する別の既存機構が、ウィザードである。ウィザードは、ＧＵＩおよび文書型ヘルププロシージャの弱点に対処するために作成された。現在、数千のウィザードがあり、こうしたウィザードは、製造されているほとんどすべてのソフトウェア製品に見ることができる。これは、ウィザードは、既存のテキストベースのヘルプおよび支援では現時点で対処されていない真の必要性を解決するからである。こうしたウィザードは、ユーザに、タスク志向のやり方で機能にアクセスさせ、ＧＵＩまたはツールを自動的に組み立てることができる。ウィザードは、プログラムマネージャおよび開発者に、顧客のタスクに対処する手段を与える。ウィザードは、タスクの成功のために必要なステップをユーザに踏ませる、ボックスに入った専門家のようである。一部のウィザードは、顧客がシステム（たとえば、セットアップウィザード）をセットアップするのを助け、一部のウィザードは、特徴のあるコンテンツを含み、顧客がコンテンツ（たとえば、ニュースレターウィザードやＰｏｗｅｒＰｏｉｎｔのＡｕｔｏＣｏｎｔｅｎｔウィザード）を作成するのを助け、一部のウィザードは、顧客が問題（たとえば、トラブルシュータ）を診断し解決するのを助ける。
【００１５】
ウィザードは、ユーザに多くの利益をもたらす。ウィザードのこうした利益の一部は、以下の通りである。
【００１６】
１）ウィザードは、「タスク」の概念を具体化することができる。ユーザには、ユーザが何を遂行するのをウィザードが手伝っているのかは、通常、明らかである。ステップごとのページを使うと、ユーザが選択を行うのが容易になる場合があり、適切に設計されたウィザードの場合、ユーザが視覚的に圧倒されてしまうようなことが起きる確率はしばしば低下する。
【００１７】
２）ウィザードは、ソフトウェアの基底特徴を自動的に組み立て、それと対話し、顧客が選択を行うのに必要とされる情報または専門知識を含めることができる。こうすることにより、ユーザがタスクを実行する時間の節約になる。
【００１８】
３）ウィザードは、コンテンツを自動的に生成することができ、テキストを作成しレイアウトを計画することによって、ユーザの時間を節約することができる。
【００１９】
４）ウィザードは、質問し、応答を入手し、最も適切な次の質問または特徴に分岐する、優れた手段でもある。
【００２０】
しかし、ウィザードは、それ自体の問題ももっている。こうした問題の一部は、人々が遂行しようとするタスクが、タスクを遂行するウィザードよりもさらに多くあることを含む。ウィザードおよびＩＵＩ（誘導型ユーザインターフェイス）は、どのようにして基底ＧＵＩを使うかを顧客に教えず、しばしば、ウィザードが完了すると、ユーザは、次にどこへ進むかについて確信がもてない。ウィザードのオーサリングコストは依然として高く、技術的な専門知識を有する担当者（たとえば、ソフトウェア開発者）がウィザードをオーサリングすることを必要とする。
【００２１】
したがって、ユーザによってとられるべきプロシージャを記述する、こうしたタイプのコンテンツすべてをオーサリングすると、しばしばエラーを起こしやすい。ステップを飛ばしたり、ステップを間違って記述したり、または長い一連のＵＩ操作においてどのステップが現在記述されているかを見失ったりということが、非常に起こりやすい。しかし、この文書プロシージャ型ヘルプコンテンツは、極めて一般的である。このようなヘルプコンテンツはしばしば、製品と一緒に出荷され、オンラインヘルプコンテンツが、製品サポートチーム向けに提供され、企業内部のプロシージャはしばしば、このようにして、特定の事業プロセス向けに文書化される。したがって、このタイプの情報は、オーサリングするのが難しく、しばしばエラーを含む。
【００２２】
さらに、エンドユーザは一般に、オーサリングされているステップに従わなければならない。ステップごとのテキストを読み、次いで、記述されている特定のコントロール要素を求めてＵＩを検索し、次いで、そのコントロール要素を参照して正しいアクションをとるのが難しい場合がある。これを負担と感じるあまり、数多くのユーザがテキストの最初の１つまたは２つのステップに簡単に目を通し、次いで、書かれているテキストのステップにほとんど目を戻さずに、どのＵＩ要素を次に作動する必要があるかを最善を尽くして判断していることが分かっている。また、目は、単語を読み取り頭の中で単語を絵に変換して対応するＵＩコントロール要素を見つけるよりも、はるかに容易に、絵を見つけて認識することができることも分かっている。しかしこれはまさに、過去に行われていたことであり、作成者は、アクションのどのようなタイプの視覚的描写も含めるために、各ステップのスクリーンショットを入念に撮り、画像を切り取り、ドキュメントの中のふさわしい場所に貼り付けなければならない。
【発明の開示】
【課題を解決するための手段】
【００２３】
本発明の一実施形態は、数千のタスク（またはウィザード）をオーサリングし、ＧＵＩと統合し、タスクを実行するためまたはユーザの代わりにタスクを実行するためにＧＵＩをどのようにして使うかをユーザに教える、簡単な方法を可能にするコンテンツコンポーネントを提供することによって、ウィザード、ヘルプ、知識ベース記事およびトラブルシュータの問題の一部に対処する。特定の一実施形態においては、本発明は、アクティブコンテンツウィザード（ＡＣＷ）スクリプトのオーサリング、ならびにそのＡＣＷスクリプトの一部であるテキストおよび画像を扱う。
【００２４】
本発明は、ユーザインターフェイス上で実施される全体タスクのステップを完了する際の、作成者のアクションに基づいて、画像を自動的に取り込むシステムを対象とする。画像を取り込むために、作成者は、記録コンポーネントを活性化する。記録コンポーネントは、ユーザインターフェイスにおける、作成者のアクションに対応する画像を記録する。記録コンポーネントは、記録された画像を編集コンポーネントに渡すことができ、編集コンポーネントにおいて、作成者は、画像に対応するテキストを生成して、アクションを記述することができる。画像は、所望される場合は、テキストに埋め込まれて公開することもできる。
【００２５】
一実施形態では、テキストジェネレータが、画像に対応するテキストを自動的に生成する。このテキストは次いで、ユーザに命令または他の情報を与えるテキストドキュメントを形成するのに使うことができる。テキストドキュメントを生成するプロセスの間またはその後で、テキストは、ドキュメントの分かりやすさを向上させるために、エディタを使って編集することができる。
【発明を実施するための最良の形態】
【００２６】
本発明は、ユーザインターフェイスにおけるユーザ操作に基づいて、画像を自動的に記録することを扱う。本発明をより詳細に論じる前に、本発明を利用することができる一例示的環境を説明する。
【００２７】
図１は、本発明を実施することができる、適切なコンピューティングシステム環境１００の例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に対するどのような限定を示唆することも意図していない。コンピューティング環境１００は、例示的な動作環境１００に示されるどのコンポーネントまたはその組合せに関するどのような依存も要件も有していると解釈されるべきではない。
【００２８】
本発明は、他の数多くの汎用または専用のコンピューティングシステム環境または構成と動作可能である。本発明とともに使用するのに適切であり得る他の公知のコンピューティングシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散型コンピューティング環境などを含むが、それに限定されない。
【００２９】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的な文脈において説明することができる。概して、プログラムモジュールは、特定のタスクを実施しまたは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを介して連結されるリモート処理ユニットによってタスクが実施される分散型コンピューティング環境においても実施することができる。分散型コンピューティング環境では、プログラムモジュールは、メモリ格納デバイスを含むローカルおよびリモートコンピュータ格納媒体両方に置くことができる。
【００３０】
図１を参照すると、本発明を実施する例示的なシステムは、汎用コンピューティングデバイスをコンピュータ１１０の形で含む。コンピュータ１１０のコンポーネントは、処理ユニット１２０と、システムメモリ１３０と、システムメモリなど様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１とを含み得るが、それに限定されない。システムバス１２１は、メモリバスまたはメモリコントローラ、ペリフェラルバス、および様々なバスアーキテクチャのいずれかを使用するローカルバスなど、いくつかのタイプのバス構造のいずれでもよい。限定ではなく例として、このようなアーキテクチャは、ＩＳＡ（業界標準アーキテクチャ）バス、ＭＣＡ（マイクロチャネルアーキテクチャ）バス、ＥＩＳＡ（拡張ＩＳＡ）バス、ＶＥＳＡ（ビデオ電子装置規格化協会）ローカルバス、およびメザニンバスとしても知られるＰＣＩ（周辺装置相互接続）バスを含む。
【００３１】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスすることができ、揮発性媒体および不揮発性媒体両方、取外し可能媒体および固定式媒体を含む、入手可能などのような+媒体でもよい。限定ではなく例として、コンピュータ可読媒体は、コンピュータ格納媒体および通信媒体を含み得る。コンピュータ格納媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのどの方法または技術でも実施される揮発性媒体および不揮発性媒体の両方、取外し可能媒体および固定式媒体を含む。コンピュータ格納媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）または他の光学ディスク格納装置、磁気カセット、磁気テープ、磁気ディスク格納装置または他の磁気格納デバイス、あるいは、所望の情報を格納するのに使うことができるとともにコンピュータ１１０によってアクセスすることができる他のどの媒体も含むが、これらに限定されない。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、たとえば搬送波や他の移送機構などの変調データ信号の形にし、どのような情報配信媒体も含む。「変調データ信号」という用語は、信号中の情報をエンコードするようなやり方で設定または変更された特性を１つまたは複数有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体を含む。上記のどの組合せも、やはりコンピュータ可読媒体の範囲に含めるべきである。
【００３２】
システムメモリ１３０は、コンピュータ格納媒体を、ＲＯＭ（読取り専用メモリ）１３１およびＲＡＭ（ランダムアクセスメモリ）１３２など、揮発性および／または不揮発性メモリの形で含む。ＢＩＯＳ（基本入出力システム）１３３は、たとえば起動中にコンピュータ１１０内部の要素の間で情報を転送するのを助ける基本ルーチンを含み、通常はＲＯＭ１３１に格納される。ＲＡＭ１３２は、処理ユニット１２０に対して直接アクセス可能な、かつ／または処理ユニット１２０によって現在操作されているデータおよび／またはプログラムモジュールを典型的に含む。限定ではなく例として、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００３３】
コンピュータ１１０は、他の取外し可能／固定式、揮発性／不揮発性コンピュータ格納媒体も含み得る。例としてのみ、図１では、固定式不揮発性磁気媒体に対して読取りまたは書込みを行うハードディスクドライブ１４１と、取外し可能な不揮発性磁気ディスク１５２に対して読取りまたは書込みを行う磁気ディスクドライブ１５１と、および、ＣＤ  ＲＯＭや他の光学媒体など、取外し可能な不揮発性光ディスク１５６に対して読取りまたは書込みを行う光ディスクドライブ１５５とを示す。例示的な動作環境で使うことができる、他の取外し可能／固定式、揮発性／不揮発性コンピュータ格納媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどを含むが、それに限定されない。ハードディスクドライブ１４１は通常、インターフェイス１４０などの固定式メモリインターフェイスによって、システムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５が通常、インターフェイス１５０などの取外し可能メモリインターフェイスによって、システムバス１２１に接続されている。
【００３４】
上述され、かつ図１に示されているドライブおよびそれに関連するコンピュータ格納媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ１１０用の他のデータの格納部を提供する。図１では、たとえば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示してある。こうしたコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでも、異なってもよいことに留意されたい。これらが少なくとも異なるものであることを示すために、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、ここでは異なる番号を与えてある。
【００３５】
ユーザは、たとえばキーボード１６２や、マイクロホン１６３や、およびマウス、トラックボール、またはタッチパッドなどのポインティングデバイス１６１などの入力デバイスを介して、コマンドおよび情報をコンピュータ１１０に入力することができる。他の入力デバイス（図示せず）は、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどを含み得る。こうしたおよび他の入力デバイスはしばしば、システムバスに結合されたユーザ入力インターフェイス１６０を介して処理ユニット１２０に接続されるが、他のインターフェイスおよびバス構造、たとえばパラレルポート、ゲームポート、ＵＳＢ（ユニバーサルシリアルバス）によって接続することもできる。モニタ１９１または他のタイプの表示デバイスも、ビデオインターフェイス１９０などのインターフェイスを介してシステムバス１２１に接続される。モニタに加え、コンピュータはスピーカ１９７およびプリンタ１９６など、他の周辺出力デバイスも含み得、これら周辺出力デバイスは出力周辺インターフェイス１９５を介して接続することができる。
【００３６】
コンピュータ１１０は、リモートコンピュータ１８０などの、１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続された環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードでよく、通常、コンピュータ１１０に関連して上述した要素の多くまたはすべてを含む。図１に示す論理接続は、ＬＡＮ（ローカルエリアネットワーク）１７１およびＷＡＮ（ワイドエリアネットワーク）１７３を含むが、他のネットワークも含み得る。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいてよく見られる。
【００３７】
ＬＡＮネットワーク環境において使われる場合、コンピュータ１１０は、ネットワークインターフェイスまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境において使われる場合、コンピュータ１１０は通常、モデム１７２、または、たとえばインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内部にあっても外部にあってもよく、ユーザ入力インターフェイス１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク接続された環境では、コンピュータ１１０に関連して図示したプログラムモジュールまたはその一部は、リモートメモリ格納デバイスに格納することができる。限定ではなく例として、図１では、リモートアプリケーションプログラム１８５を、リモートコンピュータ１８０に常駐するものとして示してある。図示したネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段も使用できることが理解されよう。
【００３８】
図２は、本発明の一実施形態による画像取込みシステム２００のコンポーネントを示すブロック図である。図２は、レコーダ２０７および任意選択の自動テキストジェネレータ２０３を有するシステム２００も示す。レコーダ２０７は、記録コンポーネント２１０と、フックコンポーネント２１２と、およびユーザインターフェイス（ＵＩ）自動化コンポーネント２１４とを含む。任意選択のテキストジェネレータ２０３は、テキストデータベース（またはデータストア）２２０、およびテキスト生成コンポーネント２３０を含む。画像取込みシステム２００は、ユーザインターフェイス２０５と対話する。作成者は、システム２００のコンポーネントを、ユーザインターフェイス２０５のコントロールに基づいて実施されるアクションに対応する画像を自動的に記録するように設定することができ、任意選択のテキストジェネレータ２０３は、そうしたアクションを記述するテキスト２３５を自動的に生成する。作成者２０１は、自動生成されたテキスト２３５を編集、またはエディタ２４０上ではじめからテキストを生成して、タスク（またはＵＩコントロールアクション）を記述する最終テキスト２４５を取得することもできる。最終テキスト２４５は例示的には、そこに埋め込まれた画像も含み得る。図２のいくつかのコンポーネントを、より詳細に記述する。
【００３９】
ユーザインターフェイス２０５は、一実施形態では、タスクを実施するためのアクションをユーザがとれるようにするコントロールを有する、従来のグラフィカルユーザインターフェイスである。ユーザインターフェイス２０５は例示的に、図１に示す表示デバイス１９１上に表示される。このタイプのグラフィカルユーザインターフェイス（ＧＵＩ）は、広く使われているインターフェイス機構である。
【００４０】
記録コンポーネント２１０は、一実施形態では、作成者２０１または別のユーザに、ユーザインターフェイス２０５上でタスクを実施させるアプリケーションプログラムであり、タスクにおける各ステップの画像を取り込むことによって、タスクを記録する。後でより詳しく記述するように、作成者２０１が、ユーザインターフェイス２０５上でのタスクに関連づけられたステップを実施している間、記録コンポーネント２１０は、ユーザインターフェイス２０５上で作成者がどのコントロールおよびウィンドウと対話しているかの情報を記録する。この情報は、ヘルプドキュメントなどのドキュメント中でテキストを自動的に生成するため、任意選択的にテキストジェネレータ２３０に与えられる。
【００４１】
記録コンポーネント２１０は、フック２１２およびユーザインターフェイス（ＵＩ）自動化コンポーネント２１４を介して、ユーザインターフェイス２０５と対話する。こうしたコンポーネントは、記録コンポーネント２１０とは別個のものでもよく、実施形態によっては、こうしたコンポーネントは、記録コンポーネント２１０と一体であってもよい。
【００４２】
フックコンポーネント２１２は、一実施形態では、コンピュータによって使われるオペレーティングシステム内部のモジュールまたはコンポーネントである。マウスクリックに対してフックがセットされると、たとえば、マウスクリックを示す情報（メッセージなど）が、フックコンポーネント２１２に転送され、ここで情報が消費される。情報に関連づけられた画像が記録コンポーネント２１０によって記録されると、マウスクリックを受け取るように登録している、コンピュータ内の他のコンポーネントに対して情報が再生される。したがって、概して、フックコンポーネント２１２は、オペレーティングシステムと目標アプリケーションとの間のバッファとして働く。フックコンポーネント２１２は、たとえばシングルクリック、ダブルクリック、右または左クリック、キーボードアクション、タッチ感応スクリーン入力といった、受信された信号のタイプなど、実質的にどのような入力アクションをも探すように構成することができる。アクションを表す情報およびアクションを示すスクリーンショット画像が記録コンポーネント２１０によって記録されると、マウスクリックを（または記録されたどのようなアクションでも）表す情報は次いで、フックコンポーネント２１２によって、アプリケーション用に再生される。この理由は、ユーザが、第１のアクションが記録される前に、第２のアクションをとることができるからである。第２のアクションが、ユーザインターフェイスの状態を十分に変化させ、これにより第１のアクションの不適切な記録という結果につながる場合がある。たとえば、記録されるアクションがメニュー項目をクリックしていることである場合、クリックによってメニュー項目が消える。したがって、画像は、マウスクリックがアプリケーションに渡される前に取り込まれる。第１のマウスメッセージを消費し、記録が完了してから再生することによって、第１のアクションが確実に正しく記録されるようになる。
【００４３】
フックコンポーネント２１２によって実施される機能（すなわち、マウスクリックを聴き、再生すること）が、例示的に別個のスレッド上で実施されることにも留意されたい。このことは、全ユーザインターフェイスアクション（たとえば、マウスクリック、キーボードアクションなど）が、何も取りこぼさずに、正しく記録され再生されることを確実にする。さらに、フックコンポーネント２１２の記録および再生機構は、オペレーティングシステム内部で暗黙的に実施されるいかなるタイムアウトの特徴を無効にすることができる。これは、オペレーティングシステムのタイムアウト期間が、アクションの正しい記録およびアクションを示す画像の取込みをするには短過ぎる場合に、必要になり得る。たとえば、画像を取り込むには、３００〜４００ｍｓ位、デスクトップ全体が取り込まれる場合は最大１秒もかかることがある。したがって、タイムアウトを無効にし、複数のスレッド上で動作を行うことが有益である。
【００４４】
ユーザインターフェイス自動化コンポーネント２１４は例示的には、作成者またはユーザがユーザインターフェイス２０５を介して実施する全体タスクのための原子ステップを解釈するように構成されたコンピュータプログラムである。一実施形態では、ユーザインターフェイス自動化コンポーネント２１４は、ワシントン州レドモンドのマイクロソフトコーポレーションのマイクロソフトユーザインターフェイスオートメーションを用いて実装されるＧＵＩ自動化モジュールである。このモジュールは、可視ユーザインターフェイスについての情報にアクセスするため、また、プログラムによって可視ユーザインターフェイスと対話するための、プログラムによる方法を提供する。しかし、システムセットアップに応じて、ユーザインターフェイス自動化コンポーネント２１４は、プログラムによってグラフィカルユーザインターフェイスをナビゲートすること、およびユーザインターフェイス上でコマンドを検出する（また任意選択で、コマンドを実施し実行するために、プログラムによってＧＵＩをナビゲートする）ことが可能な、どのアプリケーションを使っても実装することができる。
【００４５】
ユーザインターフェイス自動化コンポーネント２１４はしたがって、ユーザインターフェイス２０５上で作成者２０１（または別のユーザ）によってタスク順で実施される所望のタスクに関連づけられたステップそれぞれを検出する。たとえば、後でより詳細に説明するように、タスクが、新規メニューまたはウィンドウを表示するためのＧＵＩ上のボタンをユーザがクリックすることを要求すると、ユーザインターフェイス自動化コンポーネント２１４は、ユーザインターフェイス２０５上のマウスカーソルの位置にどのコントロールが配置されているか、ならびにそのサイズおよびその親ウィンドウを判定する。記録コンポーネント２１０は、フックコンポーネント２１２からの情報（たとえば、コントロールのタイプ、名称および状態）を用いて、ステップを実施するのに使われたコントロールの名称およびプロパティを記録する。この情報は、ユーザインターフェイス自動化コンポーネント２１４およびフックコンポーネント２１２から、記録コンポーネント２１０に提供され、そうすることによって、記録コンポーネント２１０は、作成者によってステップを実施するのに使われたボタンまたはコントロールの画像を記録することができる。画像の取得については、図３を参照して後でより詳細に説明する。
【００４６】
テキスト生成コンポーネント２３０は、プロセスを記録する間に実行または実施されるアクションを記述する自然言語テキストを生成するように構成されたプログラムまたはモジュールである。テキスト生成コンポーネント２３０は、記録された画像および記録コンポーネント２１０によって記録された他の情報を用いて、データベース２２０を検索し、また、記録されたステップに対応する正しいテンプレートまたはエントリをテキストデータベース２２０から選ぶ。
【００４７】
テキストデータベース２２０は例示的には、テキストジェネレータ２３０によって検索可能なデータベースまたは他の情報格納システムである。テキストデータベース２２０は、ユーザインターフェイス２０５上で使用可能なコントロールに関連した情報を含む。この情報は、たとえば、コントロールの名称、コントロールのタイプ、コントロールに基づいて実施されるアクション、およびアクションの自然言語文でのテキスト記述を含み得る。
【００４８】
いくつかの実施形態では、エントリに対するテキスト記述は、多数の言語で与えられる。テキスト記述が多数の言語で与えられている場合、正しい言語の選択を可能にする言語識別子が各エントリに与えられる。
【００４９】
ただし、システムの必要性に応じて、テキストデータベース２２０中には他の情報も提供することができる。一実施形態では、テキストデータベース２２０中の一部のエントリは、順に実施される多数のコントロールによって例証される２つ以上のアクションに関連した情報をもつ。多数のコントロールに基づく多数のアクションが、テキストデータベース２２０中の１個のエントリで表されるとき、そのエントリに対するテキストは、両方のコントロールに基づいて実施されるアクションに関する自然言語記述を、一文として含む。２つのコマンドの記述を一文として組み合わせることによって、最終テキストドキュメントの読みやすさが向上する。
【００５０】
一実施形態では、テキストデータベース２２０は、拡張マークアップ言語（ＸＭＬ）で書かれている。各エントリに対するデータは、一連のサブエントリとして格納することができ、エントリの各サブエントリは、タスクを識別するのに必要とされる個々の情報に言及している。ただし、データの格納には、他の形式も使うことができる。
【００５１】
一実施形態では、テキスト生成コンポーネント２３０は、テキストデータベース２２０中にあるエントリを検索するとき、記録されたアクションの２つ以上を見る。これは、より流動性のあるテキストドキュメントを提供するために行うことができる。たとえば、優れたプロシージャ文書はしばしば、読みやすさの向上のために、複数のステップを一文に組み合わせている。テキスト生成コンポーネント２３０が、記録された情報と合致するものを２つ以上テキストデータベース２２０中に識別する場合、テキスト生成コンポーネント２３０は、データベース中のどのエントリを選ぶか決定するのに、例えば各エントリのスコアづけに基づいてエントリを明確にし最高スコアをもつエントリを選択するなど、公知のどのような方法でも用いることができる。
【００５２】
一実施形態によると、ユーザインターフェイス上で作動されたコントロールのタイプ、および実施されたアクションに基づいて、テキスト生成コンポーネント２３０は、テキストデータベース２２０から、実行されるコントロールタイプおよびアクションに合致するエントリを検索する。テキストデータベース２２０中で合致が識別されると、テキスト生成コンポーネント２３０は、アクションに関連づけられた自然言語記述をテキストデータベース２２０から取得し、文命令として、生成されたテキストドキュメント２３５中に置く。代替実施形態では、テキスト生成コンポーネント２２０は、ＵＩ自動化モジュール２１４によって提供される情報に基づいて、テキストドキュメントの実行可能バージョンを生成することもできる。
【００５３】
テキストデータベース２３５からテキスト記述を選ぶとき、テキスト生成コンポーネントは、コントロールの状態に注意を向けてもよい。これは、コントロールがチェックボックス、あるいは拡張可能または折畳み可能なツリーであるときに重要である。この場合、コントロールに対するアクションは所望の結果に関わらず同じなので、ボックスをクリックするだけでは、アクションを記述するには適切でない場合がある。したがって、こうした場合には、コントロールの新たな状態が、選択されたテキストに影響を与えることになる。たとえば、コントロールがチェックボックスであり、選択解除されるべきである場合、合致したテキストは、コントロールの新しい状態と、コントロールの名とに基づくはずである。
【００５４】
テキストエディタ２４０は、自動生成されたテキスト２３５に対し、訂正、変更、または情報またはテキストを追加するように構成されたエディタである。テキストジェネレータ２３０によって生成された結果として得られるテキスト、および作成者によって実施されるアクションに応じて、テキストを、さらに理解しやすくするように編集することが必要な場合がある。したがって、テキストエディタ２４０は、生成されたテキスト２３５を受け取り、作成者２０１が生成されたテキストを編集できるようにする。
【００５５】
テキストの編集は、たとえば、文法上の必要性によって、または記録されたステップの１つがユーザ操作を要求し、システムがそのユーザ操作に関する記録を記録時にリクエストしなかったことによっても、必要とされる場合がある。このようなケースでは（ユーザ入力が要求されるとき）、一実施形態に従って記録されるべきタスクを実施する間、テキストジェネレータ２３５は、このステップにおいてユーザが何をするべきかという命令／記述を作成者が与えるためのスペースをテキスト中に提供するだけである。
【００５６】
たとえば、ユーザによって実施され記録コンポーネントによって記録されるタスクは、コンピュータのスクリーン上の、バックグラウンドパネリングを変更するものであると仮定する。これには、バックグラウンド用のパターンをユーザが選ぶことが必要である。したがって、バックグラウンドを変更する、記録されたユーザアクションに対してテキストデータベースから返されるテキストは、「［アクションの記述を挿入］を選択してください」であり、作成者は、テキストを、「リストから所望のバックグラウンドを選択してください」というように編集しなければならない。編集段階中にも、作成者２０１は、全体タスクの記述がタスクの記録に先立って与えられていない場合、その記述を与えることができる。テキストが編集されると、最終テキスト２４５はオーサリングツール２００から出力され、所望される場合、ユーザが希望に応じて最終テキストを取得することができる適切な格納モードで格納される。
【００５７】
図３は、システム２００が、本発明の一実施形態に従ってどのように動作するかをより具体的に示すフロー図である。最初に、作成者２０１が、記録コンポーネント２１０を開始する。これは、図３のブロック４００で示される。これを行うために、作成者２０１は単に、図４に示すコントロール４０２などのコントロールを作動する。記録ボタン４１０は、記録を始めるため、作成者２０１によって作動することができる。停止ボタン４０６は、記録を停止するために作動される。後で説明するように、作成者２０１は、テキストエディタ２４０におけるテキスト編集の間、ユーザ操作の記述を挿入することができる。これを行うために、ユーザは、ボタン４０８を作動する。同様に、後で説明するように、作成者２０１は、自動生成されたテキストを編集することができる。これは、図４のテキストボタン４１０を作動することによって行うことができる。さらに、いくつかの実施形態では、ユーザが値を設定するための、追加のボタンを提供することができる。これは例えばランタイム時に、ユーザが編集ボックスにテキストをタイプ入力するよう要求される状況において、正しいテキストを生成させるためである。当然ながら、他の、または異なるコントロールも、用いることができる。
【００５８】
再度図３を参照すると、作成者２０１が記録コンポーネント２１０を開始すると、システムは単に、ユーザがユーザインターフェイス２０５上でアクションをとるのを待つ。図２は、ユーザが作成者２０１であることを示すが、ユーザは、異なるユーザでもよいことに留意されたい。
【００５９】
ユーザが、（たとえば、ユーザインターフェイス上のコントロール要素を操作することによって）ユーザインターフェイス２０５上でアクションをとると、フックコンポーネント２１２は、そのユーザ操作を示すメッセージまたは他の信号を受け取る。上述したように、フックコンポーネント２１２に関しては、フックコンポーネント２１２は、メッセージを消費し、記録用のキューに置く。ＵＩ２０５上でアクションをとるユーザは、図３のブロック４１２で示される。
【００６０】
記録コンポーネント２１０は次いで、ＵＩ自動化コンポーネント２１４から画像識別情報を受け取る。これは、図３のブロック４１４で示される。例示的な一実施形態において、ＵＩ自動化コンポーネント２１４は、ユーザがユーザインターフェイス２０５でとるアクションを表すまたはそれに対応する表示画面上の画像を記録コンポーネント２１０に記録することを可能にする、いくつかの情報項目を、記録コンポーネント２１０に与える。例示的な一実施形態において、こうした情報項目は、ユーザが作動あるいは操作した、表示画面上のコントロール要素の位置や、そのコントロール要素の包囲長方形またはサイズや、そのコントロール要素を含む親ウィンドウである。
【００６１】
記録コンポーネント２１０は次いで、ユーザインターフェイス２０５に関連づけられたスクリーンショットを示し、かつユーザによってとられるアクションに対応またはそれを反映する、実際の画像情報を取得する。これは、図３のブロック４１６で示される。
【００６２】
このステップを実施するために、記録コンポーネント２１０は、システムの動作を強化するためにいくつかのことを行うことができる。たとえば、記録コンポーネント２１０は、ユーザによって操作されるコントロール要素だけではなく、実際の画像情報（または実際のスクリーンショット）を記録することが有益であろうと判断することができる。これは、たとえば、同様のコントロール要素が、ユーザによって操作されているディスプレイ上に現在複数ある場合に真実であり得る。たとえば、ユーザが、ユーザインターフェイス上で「ＯＫボタン」をクリックしたと仮定する。しかし、表示画面には、その時点で複数の「ＯＫボタン」が存在し得る。したがって、様々な「ＯＫボタン」同士を明確にするために、記録コンポーネント２１０は、ユーザによって操作された特定の「ＯＫボタン」だけでなく、その「ＯＫボタン」の周囲にある所望の数のピクセルに対する実際のスクリーンショット情報も取得することができる。これによる、コントロール自体の単なる画像より大きい背景を含む画像を提供できる。
【００６３】
同様に、記録コンポーネント２１０は、コントロール要素を含む親ウィンドウ全体のスクリーンショット画像を記録することもできる。当然ながらこれは、ユーザが操作したコントロール要素を特定的に識別するのに使うことができる、特別背景をかなりの量含む。
【００６４】
追加背景が記録コンポーネント２１０によって記録される必要があるかどうか判定するのに、記録コンポーネント２１０は、多種多様な技術のどれでも用いることができる。たとえば記録コンポーネント２１０は、記録するコンテキストの量を識別するヒューリスティックを利用することができる。ヒューリスティックは、操作されるコントロール要素のサイズおよび形状、操作されるコントロール要素の特定の機能、コントロール要素のタイプ（たとえば、チェックボックス、テキストボックス、ツリー表示）、スクリーン上でのコントロール要素の位置（たとえば、コントロール要素が左上の隅にある場合、記録コンポーネント２１０は、コントロール要素の右下側でより多くのピクセルをとり得る）に基づいてもよく、またはヒューリスティックは、そのコントロール要素がどこに配置されどのような機能がコントロール要素によって実施されるかに関わらず、その周囲でとられるべき一定数のピクセルを反映してもよい。
【００６５】
記録コンポーネント２１０は、公知のどの技術を用いてでも、実際のスクリーンショット画像情報を取得することができる。たとえば、ほとんどのオペレーティングシステムでは、現在表示されているスクリーンのどのセクションのビットマップスクリーンショットでも、アプリケーションまたは他のコンピューティングコンポーネントに取得させることができるアプリケーションプログラミングインターフェイス（ＡＰＩ）が公開されている。したがって、例示的な一実施形態において、記録コンポーネント２１０は、一旦、所望するスクリーンショット画像情報の座標や、コンテキスト情報の量や、さらに任意選択でコントロール要素の親ウィンドウが分かると、情報を取得するためのＡＰＩコールを行うだけである。
【００６６】
実際の画像情報を取得すると、記録コンポーネント２１０は、その情報を、後で使うために記録する。情報がどのように使われるかに応じて、記録コンポーネント２１０は、標準画像操作ＡＰＩを使って、画像を圧縮することも、サイズ変更することもできる。これは、必要とされるメモリおよび最終ドキュメントのサイズを削減する。これは、図３のブロック４１８で示される。当然ながら、この時点では、記録コンポーネント２１０は、ＵＩ自動化コンポーネント２１４によって提供される他の情報を記録することができることにも留意されたい。たとえば、ＵＩ自動化コンポーネント２１４は例示的には、コントロール名、コントロールタイプ、コントロールに対して実施されるアクション、実施される操作のタイプ（たとえばマウスクリック、マウスホイールの回転、キーボードのキーストローク、タッチパッド入力など）を記録コンポーネント２１０に与える。この情報はすべて、記録コンポーネント２１０によって記録することができる。
【００６７】
本発明の一実施形態によると、任意選択のテキスト生成コンポーネント２３０は、任意選択のテキストデータベース２２０と連動して、取り込まれる画像に関連づけられかつユーザがユーザインターフェイス２０５上でとるアクションに関連づけられたテキストを自動的に生成する。こうした項目が使われる実施形態では、記録コンポーネント２１０は、取り込まれた情報（たとえばクリックタイプ、コントロールタイプ、コントロール名称など）を、テキスト生成コンポーネント２３０に送る。これは、図３の任意選択のブロック４２０で示される。自動生成されたテキストは例示的には、ユーザインターフェイス２０５の多数の操作を必要とする全体タスクを実施するための、ユーザインターフェイス２０５の各ユーザ操作に関するステップごとの命令に対応する文書型プロシージャを提供する。
【００６８】
このテキストを生成するために、テキスト生成コンポーネント２３０は、適切などのような方法でも用いることができる。例示的な一方法において、テキスト生成コンポーネント２３０は、記録コンポーネント２１０から受け取った情報に対応するエントリを求めてテキストデータストア２２０を検索する。たとえば、テキストデータストア２２０は例示的には、ユーザがユーザインターフェイス２０５上で操作するコントロールのタイプまたは他の項目、アクションのタイプ、およびそのアクションに対応するテキストを含む複数のエントリを含むＸＭＬデータベースでよい。当然ながら、他のデータ格納方法も、データストア２２０を実装するのに用いることができ、データストア２２０は、追加のまたは異なる情報も含み得る。
【００６９】
たとえば、記録コンポーネント２１０から受け取られた情報が、ユーザが「ＯＫボタン」をクリックした（あるいは、呼び起こした）ことを示すと仮定する。次いで、テキスト生成コンポーネント２３０は、このタイプのアクションに合致するエントリを求めて、テキストデータストア２２０を検索する。合致が見つかると、テキスト生成コンポーネント２３０は、テキストデータストア２２０中のそのエントリから、そのタイプのアクションを記述するテキストを取得する。テキストは、たとえば、単に「クリックＯＫ」というものでよい。
【００７０】
いずれのケースでも、テキスト生成コンポーネント２３０は例示的に、また、任意選択で、ユーザインターフェイス２０５上でとられかつ記録コンポーネント２１０によって記録されたユーザアクションを記述するテキストを自動的に生成する。これは、図３のブロック４２２で示される。
【００７１】
生成されたテキストは、図２のブロック２３５で示される。例示的な一実施形態において、記録コンポーネント２１０によって記録された画像は、生成されたテキスト２３５に自動的に埋め込まれ、または、プロセス中の後の方になってから互いに連動して再現し表示することができるよう、生成されたテキスト２３５に少なくとも関連づけられる。
【００７２】
次に、記録コンポーネント２１０によって記録された画像データおよび任意選択の自動生成されたテキストが、エディタコンポーネント２４０に与えられる。記録コンポーネント２１０によって記録された画像および自動生成されたテキストは例示的には、作成者２０１が、そうした画像に対応するテキストを生成することができるように、エディタ２４０にある表示画面に表示される。画像の表示および生成コンポーネント２３０によって生成されたテキストの任意選択での表示は、図３のブロック４２４で示される。
【００７３】
図５は、エディタ２４０において作成者２０１に、取り込まれた画像および任意選択で自動生成されたテキストを表示することができる一方法を示すスクリーンショットである。図５は、本発明に関連する２つの主要部分を含む。第１の部分は、テキスト表示部分４２６を備え、第２の部分は、画像表示部分４２８を備える。テキスト表示部分４２６は、任意選択の自動生成されたテキスト２３５、または作成者２０１によって作成されるテキストを表示する。画像表示部分４２８は、記録コンポーネント２１０によって記録された、取り込まれたスクリーンショット画像を表示する。
【００７４】
テキストが自動的に生成される実施形態において、そのテキストは、表示部分４２６内の２３５に示され、作成者は、エディタコンポーネント２４０（そのスクリーンショットの１枚を、図５に示す）を使って編集することができる。したがって、作成者は、表示部分４２６に表示されるアクションそれぞれまたは他の項目を強調表示することができる。強調表示された項目に関連づけられた画像は、ウィンドウ部分４２８に表示される。したがって、図５に示す実施形態において、作成者は、アクセス支援オプションコントロールの作動に対応する２番のアクションを強調表示しており、対応する画像が、表示部分４２８に表示されている。ユーザは次いで、ユーザがユーザインターフェイス２０５で実施するステップの十分な記述を取得するために、テキストを入力することも、テキストを修正することも、所望通りにできる。テキストエディタ２４０を用いた、画像に対応するテキストの修正または生成は、図４のブロック４３６で示される。
【００７５】
図５に示す実施形態において、ユーザは、ユーザインターフェイス２０５上のアクセス支援オプションコントロール４３０を作動している。記録コンポーネント２１０が、アクセス支援オプションコントロールに対応するコントロールボックス４３０だけでなく、アクセス支援オプションボタン４３０を囲むいくつかのピクセルを含む、より大きい背景ボックス４３２も取得していることが分かる。背景ボックス４３２は、スクリーンにより簡単に配置できるように、アクセス支援オプションコントロール４３０の周りに、追加コン背景を表示する。
【００７６】
図５は、記録コンポーネント２１０が、アクセス支援オプションコントロール４３０を含む親ウィンドウ４３４を取得したことも示す。したがって作成者は、どのコントロールをユーザがユーザインターフェイス２０５上で操作したか、また、そのコントロールがその親ウィンドウのどこにあるかを、正確に見ることができる。これは、作成者が、ユーザインターフェイス上でとられるアクションを記述するテキストを生成または修正するのを大いに支援する。
【００７７】
本発明が、非常に様々な異なるやり方で用いることができることが理解されよう。たとえば本発明は、取り込まれた画像がテキストまたはヘルプテキストに埋め込まれているコンテンツ（ヘルプコンテンツなど）を生成するのに用いることができる。この一例を、図６に示す。プロセス中の各ステップが、そのステップを遂行するために何をすべきかを記述するテキストだけでなく、そのステップがどこで実施されるべきかを示す視覚画像も含んでいることが分かる。テキスト中の埋込み画像を生成するのに本発明を用いている本実施形態では、本実施形態では、最終テキスト２４５は、埋込み画像と共に出力される。これは、図４の任意選択のブロック４３８で示される。
【００７８】
しかし、本発明は、テキストに画像を埋め込むのに用いられる必要はない。代わりに本発明は、単に取り込まれた画像を作成者に表示するのに用いることができ、作成者は、とられているステップであって画像が取り込まれているステップの文書型記述を生成している。たとえば作成者は、ウイルスを修復またはコンピュータから除去するためのプロセスを記述するテキストを生成しているかもしれない。作成者は、そのテキストに埋込み画像を含むことを望まないかもしれない。その場合、ただ単に画像が表示され、任意選択で、自動生成されたテキストも作成者に表示され、作成者は、テキストが与えられる実施形態においては、はじめからテキストを生成、または自動生成されたテキストを修正することができる。
【００７９】
いずれの場合でも、最終テキスト２４５は例示的に、どのようなスキーマであれ、コンテンツが最終的に公開されるスキーマで作成される、またはそのスキーマに変換される。これは、たとえば、マイクロソフトＡｓｓｉｓｔａｎｃｅマークアップ言語（ＭＡＭＬ）、ＨＴＭＬ、または他の何らかのＸＭＬ形式でよい。
【００８０】
したがって、本発明は、コンテンツのオーサリングを支援するのに用いることができることが分かる。ユーザが、ユーザインターフェイス２０５上で、全体タスクを実施するためのステップを実施するとき、マクロ記録コンポーネント２１０が監視を行う。ユーザがこうしたステップを実施するとき、レコーダは、作成者が作業した視覚ＵＩ要素を記録する。一実施形態では、こうした視覚画像は、操作されるコントロール（および可能性としては何らかの追加コンテキスト）、ならびにそのコントロールの親ウィンドウ両方のスクリーンショットを含む。全体タスクを実施するのに使われる一連の画像は次いで、各ステップに対応する明白で簡潔なテキストを作成者に生成させるために、記録された各ステップが何を指すのかを作成者にはっきりと理解させるのに使うことができる。あるいは、記録された画像は、オーサリングツールからエクスポートし、テキストコンテンツ自体に組み込むこともできる。その結果が、ステップを実施する際に自分でするべきことの画像と、各ステップを記述するテキストとをエンドユーザに１ステップずつ示す、コンテンツ（ヘルプトピックなど）である。
【００８１】
特定の実施形態を参照して本発明を説明したが、本発明の精神および範囲から逸脱することなく、形体および細部において修正を行うことができることは、当業者には理解されよう。
【図面の簡単な説明】
【００８２】
【図１】本発明を用いることができる一例示的環境を示すブロック図である。
【図２】本発明の自動画像取込みおよびテキスト生成システムのコンポーネントを示すブロック図である。
【図３】ユーザアクションに関連した画像の取込みにおける、図２に示すシステムの動作を示すフロー図である。
【図４】記録コンポーネント２１０用のコントロールを示すスクリーンショットを示す図である。
【図５】画像を使ってコンテンツをオーサリングすることができる一実施形態をより分かりやすく示すスクリーンショットを示す図である。
【図６】本発明の一実施形態による、埋込み画像を有する最終テキストの一実施形態を示す図である。
【図１】
2008506184.tif 000003
【図２】
2008506184.tif 000004
【図３】
2008506184.tif 000005
【図４】
2008506184.tif 000006
【図５】
2008506184.tif 000007
【図６】
2008506184.tif 000008
【手続補正書】
【提出日】平成19年7月9日(2007.7.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
タスクを実施するためにユーザインターフェイス上でとられるステップを示すコンテンツを生成する方法であって、
前記ユーザインターフェイス上におけるコントロールのユーザ操作を示すユーザ入力を受け取る段階と、
前記ユーザ入力に応答して、前記ユーザインターフェイス上で前記ユーザが操作した前記コントロールの画像を記録する段階とを含むことを特徴とする方法。
【請求項２】
前記コントロールの前記ユーザ操作のテキスト記述を受け取るように構成されたエディタコンポーネント上に、前記コントロールの前記記録された画像を表示する段階をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記記録された画像をエディタコンポーネントに表示するのに先立って、前記コントロールのユーザ操作に対応するテキストを自動的に生成する段階をさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記テキスト記述に前記画像を埋め込む段階をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記画像を記録する段階は、前記ユーザインターフェイス上での前記コントロールの位置を示す位置情報を受け取る段階を含む段階を特徴とする請求項２に記載の方法。
【請求項６】
前記画像を記録する段階は、前記ユーザインターフェイス上での前記コントロールのサイズを示すサイズ情報を受け取る段階を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記記録する段階は、前記サイズ情報および前記位置情報に基づいて、前記ユーザインターフェイス上で、前記コントロールの背景を見せる背景画像を示す背景画像情報を記録する段階を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記背景情報を記録する段階は、記録するための前記背景情報をヒュリスティックに基づいて計算する段階を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記背景情報を記録する段階は、前記コントロールの前記画像の周辺の画像の少なくとも一部分を記録する段階を含むことを特徴とする請求項７に記載の方法。
【請求項１０】
前記画像を記録する段階は、前記ユーザインターフェイス上の前記コントロールの親ウィンドウを示す親ウィンドウ情報を受け取る段階を含むことを特徴とする請求項７に記載の方法。
【請求項１１】
前記画像を記録する段階は、前記コントロールの前記親ウィンドウの画像を記録する段階を含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記画像を表示する段階は、前記コントロールの前記画像と、前記背景画像と、前記親ウィンドウの前記画像とを前記エディタコンポーネント上に表示する段階を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記表示する段階は、前記コントロールの前記画像と、前記背景画像と、前記親ウィンドウの前記画像とを、前記エディタコンポーネントの第１の表示部分に表示する段階と、
前記タスクを実施するためにとられる前記ステップの選択可能なインジケータを、前記エディタコンポーネントの第２の表示部分に表示する段階とを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記選択可能なインジケータの１つが選択されると、前記選択されたインジケータに関連づけられた前記ステップに対応する画像が、前記エディタコンポーネントの前記第１の表示部分に表示されるように、前記エディタコンポーネントが構成されていることを特徴とする請求項１３に記載の方法。
【請求項１５】
ユーザインターフェイス上でタスクを実施するために、ユーザによってとられたステップを記述するコンテンツを生成するためのコンテンツ生成システムであって、
前記ユーザがステップをとったという連絡を受けるように、また、前記ステップを識別する前記ユーザインターフェイスの画像の少なくとも一部分を記録するように構成された記録システムを備えることを特徴とするコンテンツ生成システム。
【請求項１６】
記録された画像を表示し、関連づけられたテキストを受け取るように構成されたエディタコンポーネントをさらに備えることを特徴とする請求項１５に記載のコンテンツ生成システム。
【請求項１７】
前記エディタコンポーネントは、前記関連づけられたテキストに埋め込まれた前記画像を有する最終コンテンツを生成するように構成されていることを特徴とする請求項１６に記載のコンテンツ生成システム。
【請求項１８】
前記記録システムは、前記ステップを識別するステップ識別情報を記録するように構成されていることを特徴とする請求項１６に記載のコンテンツ生成システム。
【請求項１９】
前記ステップ識別情報を受け取り、前記識別情報に基づいて、前記ステップを記述するテキストを自動的に生成するように構成された自動テキスト生成システムをさらに備えていることを特徴とする請求項１８に記載のコンテンツ生成システム。
【請求項２０】
前記ユーザは、前記ユーザインターフェイス上でコントロールを操作することによってステップ前記ステップをとり、前記記録システムは、
前記ユーザによって操作される前記コントロールの、前記ユーザインターフェイス上での位置およびサイズを識別するように構成されたコンポーネントを備えていることを特徴とする請求項１６に記載のコンテンツ生成システム。
【請求項２１】
前記記録システムは、前記ユーザインターフェイス上での、前記コントロールの前記位置およびサイズに基づいて、前記コントロールの画像を記録するように構成されていることを特徴とする請求項２０に記載のコンテンツ生成システム。
【請求項２２】
前記記録システムは、前記コントロールの前記画像より大きい背景画像を識別し、また前記背景画像を記録するように構成されていることを特徴とする請求項２１に記載のコンテンツ生成システム。
【請求項２３】
前記記録システムは、前記コントロールの親である、前記ユーザインターフェイス上の親ウィンドウの画像を記録するように構成されることを特徴とする請求項２２に記載のコンテンツ生成システム。
【請求項２４】
前記エディタコンポーネントは、前記背景画像および前記親ウィンドウの前記画像を、
表示画面の第１の部分に表示するように構成されていることを特徴とする請求項２３に記載のコンテンツ生成システム。
【請求項２５】
前記エディタコンポーネントは、前記ユーザによってとられた前記ステップに関連づけられた前記テキストを、前記表示画面の第２の部分に表示するように構成され、前記テキストは、各ステップに１つずつの、複数のインジケータを含むことを特徴とする請求項２４に記載のコンテンツ生成システム。
【請求項２６】
前記エディタコンポーネントは、前記表示画面の前記第２の部分の前記インジケータのうち１つのユーザ選択を受け取り、前記選択されたインジケータに関連づけられた前記背景画像および前記親ウィンドウの前記画像を、前記表示画面の前記第１の部分に表示するように構成されていることを特徴とする請求項２５に記載のテキスト生成システム。
【請求項２７】
命令を格納するコンピュータ可読媒体であって、コンピュータによって読み取られたとき、
ユーザインターフェイス上の要素のユーザ操作を検出するステップと、
前記ユーザ操作に応答して、前記要素を示す画像を前記ユーザインターフェイスから記録するステップとを、前記コンピュータに実施させることを特徴とするコンピュータ可読媒体。
【請求項２８】
前記検出するステップは、前記要素のサイズおよび位置を識別するステップを含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項２９】
前記記録するステップは、前記要素の前記サイズおよび位置に基づいて、前記要素の画像を記録するステップを含むことを特徴とする請求項２８に記載のコンピュータ可読媒体。
【請求項３０】
前記要素の画像を記録するステップは、前記ユーザインターフェイス上の前記要素の少なくとも一部分の周りの背景画像を記録するステップを含むことを特徴とする請求項２９に記載のコンピュータ可読媒体。
【請求項３１】
前記検出するステップは、前記要素の親ウィンドウを検出するステップと、
前記親ウィンドウの画像を記録するステップとを含むことを特徴とする請求項３０に記載のコンピュータ可読媒体。
【請求項３２】
前記要素の前記画像と、前記背景と、前記親ウィンドウとを、関連づけられたテキストを受け取るように構成されたエディタに表示するステップをさらに前記コンピュータに実施させることを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３３】
前記記録された画像に関連づけられたテキストを自動的に生成するステップをさらに前記コンピュータに実施させることを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３４】
前記要素は、コントロール要素を含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３５】
前記要素は、テキストボックスを含むことを特徴とする請求項３４に記載のコンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
３）ＧＵＩに教示を行わせることによって、ユーザに問題解決を制御させる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
図５は、エディタ２４０において作成者２０１に、取り込まれた画像および任意選択で自動生成されたテキストを表示することができる一方法を示すスクリーンショットである。図５は、本発明に関連する２つの主要部分を含む。第２の部分は、テキスト表示部分４２６を備え、第１の部分は、画像表示部分４２８を備える。テキスト表示部分４２６は、任意選択の自動生成されたテキスト２３５、または作成者２０１によって作成されるテキストを表示する。画像表示部分４２８は、記録コンポーネント２１０によって記録された、取り込まれたスクリーンショット画像を表示する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
本発明が、非常に様々な異なるやり方で用いることができることが理解されよう。たとえば本発明は、取り込まれた画像がテキストまたはヘルプテキストに埋め込まれているコンテンツ（ヘルプコンテンツなど）を生成するのに用いることができる。この一例を、図６に示す。プロセス中の各ステップが、そのステップを遂行するために何をすべきかを記述するテキストだけでなく、そのステップがどこで実施されるべきかを示す視覚画像も含んでいることが分かる。テキスト中の埋込み画像を生成するのに本発明を用いている本実施形態では、最終テキスト２４５は、埋込み画像と共に出力される。これは、図３の任意選択のブロック４３８で示される。