(57)【要約】【課題】実際のアプリケーション・ソフトウェアを使用したデモンストレーションをフレキシブルに且つ効果的に行う。【解決手段】データ更新処理を行うための操作を除く、特定のアプリケーション・プログラムのアプリケーション画面におけるユーザの操作データと、当該操作についての時間データとを取得し記憶装置に格納するステップと、実際に実行されている特定のアプリケーションのアプリケーション画面に対するユーザからの操作を禁止することなく、格納された操作データに基づくアプリケーション画面に対する操作を対応する時間データに従い自動で実行するステップとを含む。これにより、自動実行時にはデータ更新処理が実行されず同一データの重複登録等による不具合を防止又はユーザによる対応が可能となる。また自動実行時においてもユーザからの操作を受け付けることにより、デモンストレーション・ストーリの変更等、柔軟なユーザ対応が可能となる。【選択図】  図１
2004287882.tif 000002
【特許請求の範囲】
【請求項１】
データ更新処理を行うための操作を除く、特定のアプリケーション・プログラムのアプリケーション画面におけるユーザの操作データと、当該操作についての時間データとを取得し、記憶装置に格納する記録ステップと、
実際に実行されている前記特定のアプリケーション・プログラムの前記アプリケーション画面に対するユーザからの操作を禁止することなく、格納された前記操作データに基づく前記アプリケーション画面に対する操作を、対応する時間データに従い自動で実行する再生ステップと、をコンピュータに実行させるためのオペレーション記録・再生プログラム。
【請求項２】
ユーザからの一時停止指示を任意の時点で受け付け、前記一時停止指示を受け付けた場合には、前記再生ステップにおいて前記アプリケーション画面に対して自動で実行される操作を、前記一時停止指示に対応する段階で一時停止するステップをさらにコンピュータに実行させる請求項１記載のオペレーション記録・再生プログラム。
【請求項３】
前記アプリケーション画面に対して自動で実行される操作が一時停止された場合、ユーザからの指示に従い、前記アプリケーション画面に対して自動で実行される操作を、一時停止された次の段階から再開するステップをさらにコンピュータに実行させる請求項２記載のオペレーション記録・再生プログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、アプリケーション・ソフトウェアのデモンストレーションを実施するための情報処理技術に関する。
【０００２】
【従来の技術】
従来、アプリケーション・ソフトウェアのデモンストレーションを行う場合、説明者が実際のアプリケーション・ソフトウェアを操作しながら説明を行っていた。しかしながら、この方法は説明者に対する負荷が大きく、集中して説明することが困難であるという問題があった。
【０００３】
そこで、専用のソフトウェアを使用して、ユーザのオペレーションによって生じるアプリケーション画面の状態変化を画像として記録し、再生する方法（デモンストレーション技術）が一般的に用いられてきた。
【０００４】
しかしながら、このような専用のソフトウェアにおいては、画像データが１つのファイルとして記録されるため、デモンストレーション実施時（画像再生時）に、デモンストレーションの流れを変更することができない。すなわち、実際のアプリケーション・ソフトウェアが動作しているわけではないため、ユーザの希望に対して柔軟に対応することが困難であるという問題があった。
【０００５】
一方、実際のアプリケーション・ソフトウェアに対するユーザの操作を記録し、再現するための技術がいくつか存在する。例えば、ウェブ・ブラウザ（以下、ブラウザと呼ぶ）に対する操作を記録・再生する技術が存在する（例えば特許文献１参照）。すなわち、ブラウザにイベント記録・再生プログラムを読み込み、コンテンツを表示するブラウザを起動する。次にコンテンツを表示するブラウザに、イベント記録又は再生に必要な情報を収集するイベント・ハンドラの埋め込まれたページを読み込む。そしてコンテンツを表示するブラウザにおけるユーザのブラウザ操作に応じて、イベント・ハンドラに従い、イベントを発生させる。
そしてイベント記録・再生プログラムにより前記発生したイベントを記録し、記録したイベントをイベント記録・再生プログラムにより読み込む。読み込んだイベントに応じて、前記コンテンツを表示するブラウザを動作させる。
【０００６】
また、ユーザが操作するマウスの動きなどを記録し、後で他の端末で再生する場合に、操作記録時と同様の結果が得られるようにするための技術が存在する（例えば特許文献２参照）。すなわち、操作抽出端末において操作者の行う操作の結果発生する入力イベントと結果イベントとを、抽出された順序に従って時系列に操作履歴に記録し、操作再生端末において操作履歴に記録されたイベントを時系列に抜き出し、抜き出したイベントが入力イベントであれば、その入力イベントを発生させ、抜き出したイベントが結果イベントであれば、その結果イベントが操作再生端末上で発生するのを待って、操作履歴に時系列に記録された次のイベントを抜き出し、操作抽出端末と一部同じ環境を構築された操作再生端末上で、操作抽出端末において行われた動作を再現する。
【０００７】
また、アドレスが特定できないネットワーク・コンテンツに対するユーザの操作を記録し、コンテンツ表示を再現するための技術が存在する（例えば特許文献３参照）。すなわち、ユーザが行った操作とそれに対するコンテンツ表示の変化をイベントとして登録し、それを再現する。
【０００８】
また、ユーザの操作を記録する対象となるアプリケーション・プログラム群又は階層的に管理されるオブジェクト群の各々に対する一連の操作を記録する技術が存在する（例えば特許文献４参照）。すなわち、ＣＰＵがユーザにより指示された操作履歴の記録対象のアプリケーション・ソフトウェアと、当該アプリケーション・ソフトウェアの書類上に埋め込まれた他のアプリケーション・ソフトウェアとに対する一連の操作内容を操作履歴としてハードディスクに記録し、当該操作履歴を再生する指示の入力を受けて、記録した操作履歴に従ってアプリケーション・ソフトウェアに操作内容の情報を出力する。
【０００９】
この他、ユーザの操作を記録し、再現するための技術として、マクロ記録技術が一般的に知られている。
【００１０】
【特許文献１】
特許第３０８３８０５号公報
【００１１】
【特許文献２】
特開平２０００−２３５５４９号公報
【００１２】
【特許文献３】
特開平２００１−１３４６１０号公報
【００１３】
【特許文献４】
特開平２００１−３５０６５３号公報
【００１４】
【発明が解決しようとする課題】
しかしながら、このような従来技術においては、ユーザによる一連の操作を全て記録するため、例えば記録された操作の中にデータの追加操作が含まれていると、デモンストレーションでは同じデータの追加操作を実際のアプリケーション・ソフトウェアに対して繰り返し行うことになり、アプリケーション・ソフトウェアが重複データの登録を禁止しているような場合にはエラーが発生することもある。
【００１５】
また、デモンストレーションの実施においては、通常、説明等のためにデモンストレーションを任意の時点で一時停止し、説明等が終わると一時停止された次の段階からデモンストレーションを再開するような場合が多い。しかしながら、上で述べた、実際のアプリケーション・ソフトウェアを動作させる技術においては、所定の段階で一時停止させるような技術は存在するが、任意の時点での一時停止を可能とするものは存在しない。
【００１６】
また、デモンストレーションの実施において、その時々の状況に応じてデモンストレーションの途中で追加の操作説明を行うこともあるが、従来技術では、デモンストレーションの実行中にユーザからの操作入力を受け付けない場合が多い。
【００１７】
従って本発明の目的は、実際のアプリケーション・ソフトウェアを使用したデモンストレーションをフレキシブルに且つ効果的に行うための新規な情報処理技術を提供することである。
【００１８】
【課題を解決するための手段】
本発明に係る情報処理方法は、データ更新処理を行うための操作を除く、特定のアプリケーション・プログラムのアプリケーション画面におけるユーザの操作データと、当該操作についての時間データとを取得し、記憶装置に格納する記録ステップと、実際に実行されている特定のアプリケーションのアプリケーション画面に対するユーザからの操作を禁止することなく、格納された操作データに基づくアプリケーション画面に対する操作を、対応する時間データに従い自動で実行する再生ステップとを含む。
【００１９】
これにより、データ更新処理を行うための操作は記録されないため、自動実行（再生）時にはデータ更新処理が実行されず、同一データの重複登録等による不具合を防止又はユーザによる対応が可能となる。また、自動実行（再生）時においてもユーザからの操作を受け付けることにより、デモンストレーション・ストーリの変更等、柔軟なユーザ対応が可能となる。
【００２０】
また、ユーザからの一時停止指示を任意の時点で受け付け、一時停止指示を受け付けた場合には、上で述べた再生ステップにおいてアプリケーション画面に対して自動で実行される操作を、一時停止指示に対応する段階で一時停止するステップをさらに含むようにしてもよい。これにより、実際にアプリケーション・ソフトウェアを動作させるデモンストレーションにおいても任意の時点で一時停止することができる。
【００２１】
また、前記アプリケーション画面に対して自動で実行される操作が一時停止された場合、ユーザからの指示に従い、アプリケーション画面に対して自動で実行される操作を、一時停止された次の段階から再開するステップをさらに含むようにしてもよい。これにより、自動実行によるデモンストレーションが例えば説明等の都合により一時停止された場合においても、説明等の終了後に、一時停止された箇所の続きから自動実行によるデモンストレーションを開始することが可能となり、状況に応じた適切なデモンストレーションが実施できる。
【００２２】
また、本発明に係る方法はコンピュータにより実施され、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークを介してデジタル信号として頒布される場合もある。なお、処理途中のデータについては、コンピュータのメモリに一時保管される。
【００２３】
【発明の実施の形態】
本発明の一実施の形態に係るコンピュータ１の機能ブロック図を図１に示す。
コンピュータ１は、例えばパーソナルコンピュータやワークステーションなどであり、図示しない演算処理装置、メモリ、ファイル格納部、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などを含んでいる。また、コンピュータ１には、アプリケーション・プログラム５とオペレーション記録・再生プログラム３とワーク・メモリ領域１１とが含まれている。また、オペレーション記録・再生プログラム３はアクション・パターン・データベース（ＤＢ）１３を管理している。なお、アクション・パターンＤＢ１３には、アクション・テーブル１３１とパターン・テーブル１３３とが含まれている。そして、コンピュータ１には、入力装置７と表示装置９とが接続されている。
【００２４】
また、オペレーション記録・再生プログラム３には、操作データ取得部５１と操作対象データ取得部５３とコンソール部３１と時間管理部３３と再生・記録処理制御部３５とテーブル管理部３７とが含まれている。これらの処理内容については処理フローの説明において述べる。なお、アプリケーション・プログラム５には、操作データ取得部５１と操作対象データ取得部５３とが組み込まれている。
【００２５】
図２に、アクション・テーブル１３１の構成及び格納されているデータの一例を示す。図２の例には、パターン番号の列２００とシーケンシャル番号の列２０２とアクションの列２０４と時間の列２０６と画面名の列２０８とオブジェクトの列２１０と入力内容の列２１２とが含まれている。レコードはパターン番号の列２００とシーケンシャル番号の列２０２とによって一意に特定され、例えばある一連のアクション（以下、パターンと呼ぶ）を記録した場合には、同じパターン番号のレコードが登録され、アクションの順序に従ってシーケンシャル番号が付与される。
【００２６】
図３に、パターン・テーブル１３３の構成及び格納されているデータの一例を示す。図３の例には、パターン番号の列３００とパターン名の列３０２とパターン結合の列３０４とが含まれている。レコードはパターン番号の列３００によって一意に特定される。また、既存のいくつかのパターンを編集によって結合し、新規にパターンを生成した場合には、パターン結合の列３０４に、当該パターンを構成する既存のパターンのパターン番号が格納される。
【００２７】
次に、図４を用いて図１に示したコンピュータ１の処理フローについて説明する。まずコンピュータ１は、アプリケーション・プログラム５とオペレーション記録・再生プログラム３を操作するためのコンソールとに対するユーザからの起動要求操作を例えばマウスやキーボード等である入力装置７を介して受け付ける（ステップＳ１）。そしてコンピュータ１のＯＳは、アプリケーション・プログラム５を起動し、アプリケーション・プログラム５の初期画面を表示装置９に表示する。また、コンピュータ１のＯＳは、オペレーション記録・再生プログラム３を起動し、コンソール部３１によって管理されるコンソールを表示装置９に表示する（ステップＳ３）。
【００２８】
この処理は、一般的なプログラム起動処理であり、例えば各プログラムを示すアイコンがダブル・クリックされることによって行われる。但し、オペレーション記録・再生プログラム３の実行の際には、アプリケーション・プログラム５が既に起動しているものとする。
【００２９】
図５（ａ）、（ｂ）及び（ｃ）に、ステップＳ３（図４）において表示されるコンソールの一例を示す。図５（ａ）の例には、プルダウンメニュー５００と再生時間表示部５０２と再生ボタン５０４と停止ボタン５０６と一時停止ボタン５０８と早送りボタン５１０と記録ボタン５１２とが含まれている。プルダウンメニュー５００では、既存のパターン（パターン・テーブル１３３（図３）参照）のいずれか又は新規パターンの作成を選択可能なようになっている。再生時間表示部５０２には、既存のパターンが選択された場合に、当該パターンの再生（デモンストレーション実行）残り時間が表示される。また、図５（ａ）の例では未だパターンが選択されていないため、各ボタンは非アクティブ（クリック不可状態）になっている。
【００３０】
図５（ｂ）には、プルダウンメニュー５００の「▼」部分がクリックされた場合の例が示されている。なお、本実施の形態においては、生成したパターンを編集することが可能であるため、プルダウンメニュー５００から既存のパターンが選択された場合、さらに「編集」又は「実行」のいずれかを選択させるようにしてもよい。
【００３１】
図５（ｃ）には、プルダウンメニュー５００から例えば「通常デモパターン」が選択された場合の例が示されている。パターンが選択されたため、記録ボタン５１２以外の各ボタンがアクティブ（クリック可能状態）になっており、再生時間表示部５０２に時間が表示されている。なお、再生時間表示部５０２に表示される時間は、再生残り時間であるため、再生ボタン５０４又は早送りボタン５１０がクリックされた場合には、少なくなっていく。一方、０から始めて経過時間を表示するようにしてもよいし、残り時間又は経過時間のいずれかを選択させて表示する又は両方を表示するようにしてもよい。
【００３２】
図４の処理フローに戻り、オペレーション記録・再生プログラム３のコンソール部３１は、ユーザからのプルダウンメニュー５００（図５（ａ））に対する選択入力を受け付ける（ステップＳ５）。そしてコンソール部３１は、ユーザの選択入力が「新規作成」であったかどうか判定する（ステップＳ７）。「新規作成」であったと判定された場合（ステップＳ７：Ｙｅｓルート）、コンソール部３１は、記録ボタン５１２（図５（ａ））と停止ボタン５０６（図５（ａ））とをアクティブ表示する（ステップＳ９）。そしてコンソール部３１は、アクティブ表示したボタンのいずれかに対するクリックをユーザから受け付ける（ステップＳ１１）。
【００３３】
そしてコンソール部３１は、ユーザによってクリックされたボタンが記録ボタン５１２（図５（ａ））であったかどうか判定する（ステップＳ１３）。記録ボタン５１２（図５（ａ））ではなかったと判定された場合（ステップＳ１３：Ｎｏルート）、ステップＳ１１の処理に戻る。ここでは、記録処理を開始していないのに停止ボタン５０６（図５（ａ））がクリックされた場合には何も処理しないようになっているが、記録処理開始前には停止ボタン５０６（図５（ａ））を非アクティブにしておき、記録処理開始後にアクティブにするようにしてもよい。
【００３４】
一方、ユーザによってクリックされたボタンが記録ボタン５１２（図５（ａ））であったと判定された場合（ステップＳ１３：Ｙｅｓルート）、オペレーション記録・再生プログラム３は操作記録処理を行う（ステップＳ１５）。この処理については後に詳述するが、新しいアクション・データ及びパターン・データが生成され、アクション・テーブル１３１（図２）とパターン・テーブル１３３（図３）とにレコードが登録される。操作記録処理が終了すると、オペレーション記録・再生プログラム３は、作成したパターンのパターン名の入力をユーザから受け付け、パターン・テーブル１３３（図３）に格納する（ステップＳ１７）。例えばダイアログ・ボックス等を表示して入力を促す。
【００３５】
そしてオペレーション記録・再生プログラム３は、図示しないダイアログ・ボックス等により、オペレーション記録・再生プログラム３を終了するかどうかの選択入力をユーザに促し、ユーザの選択入力が終了であったかどうか判定する（ステップＳ１９）。終了ではないと判定された場合（ステップＳ１９：Ｎｏルート）、ステップＳ５の処理に戻る。
【００３６】
一方、終了であったと判定された場合（ステップＳ１９：Ｙｅｓルート）、オペレーション記録・再生プログラム３は、コンソールを閉じ、プログラムの実行を終了する（ステップＳ２１）。なお、ユーザによるオペレーション記録・再生プログラム３の終了操作については、プルダウンメニュー５００（図５（ａ））のリストに例えば「終了」を含めて、選択させるようにしてもよい。
【００３７】
また、ステップＳ７の判定処理において「新規作成」ではないと判定された場合（ステップＳ７：Ｎｏルート）、コンソール部３１は、記録ボタン５１２（図５（ａ））以外のボタンをアクティブ表示する（ステップＳ２３）。そしてコンソール部３１は、選択された既存のパターン名をプルダウンメニュー５００（図５（ａ））に表示し、当該パターンの再生時間を再生時間表示部５０２（図５（ａ））に表示する（ステップＳ２５）。そしてコンソール部３１は、アクティブ表示したボタンのいずれかに対するクリックをユーザから受け付ける（ステップＳ２７）。
【００３８】
そしてコンソール部３１は、ユーザによってクリックされたボタンが再生ボタン５０４（図５（ａ））であったかどうか判定する（ステップＳ２９）。再生ボタン５０４（図５（ａ））であったと判定された場合（ステップＳ２９：Ｙｅｓルート）、オペレーション記録・再生プログラム３は再生処理を行う（ステップＳ３１）。この処理については後に詳述するが、アクション・テーブル１３１（図２）に格納されているデータに基づき、アプリケーション・プログラム５が自動実行（操作）される。そして再生処理が終了すると、ステップＳ１９の処理に移行する。
【００３９】
一方、ユーザによってクリックされたボタンが再生ボタン５０４（図５（ａ））ではなかったと判定された場合（ステップＳ２９：Ｎｏルート）、コンソール部３１は、ユーザによってクリックされたボタンが早送りボタン５１０（図５（ａ））であったかどうか判定する（ステップＳ３３）。早送りボタン５１０（図５（ａ））ではなかったと判定された場合、ステップＳ２７の処理に戻る。ここでは、再生又は早送り処理を開始していないのに停止ボタン５０６（図５（ａ））又は一時停止ボタン５０８（図５（ａ））がクリックされた場合には何も処理しないようになっているが、再生処理又は早送り処理開始前には停止ボタン５０６（図５（ａ））と一時停止ボタン５０８（図５（ａ））とを非アクティブにしておき、再生処理又は早送り処理開始後にアクティブにするようにしてもよい。
【００４０】
一方、ユーザによってクリックされたボタンが早送りボタン５１０（図５（ａ））であったと判定された場合（ステップＳ３３：Ｙｅｓルート）、オペレーション記録・再生プログラム３は早送り処理を行う（ステップＳ３５）。この処理については後に詳述するが、アクション・テーブル１３１（図２）に格納されているデータに基づき、アプリケーション・プログラム５が高速で自動実行（操作）される。そして早送り処理が終了すると、ステップＳ２７の処理に戻る。すなわち、早送りした続きから再生したり、さらに早送りを行うことができる。
【００４１】
このようにして、ユーザの指示に従い、新規パターンの記録処理や選択された既存のパターンの再生処理、早送り処理等が行われる。
【００４２】
次に、図６を用いて、操作記録処理（図４：ステップＳ１５）の詳細について説明する。この操作記録処理は、コンソール部３１がユーザから操作記録の指示を受け付けた（記録ボタン５１２（図５（ａ））がクリックされた）場合に、再生・記録処理制御部３５によって開始される。
【００４３】
まず、時間管理部３３は操作記録処理を開始した時間を取得し、一旦ワーク・メモリ領域１１に格納する（ステップＳ４１）。例えばコンピュータ１の図示しないシステム時計から取得する。以下、時間に関するデータは同様にシステム時計から取得されるものとする。
【００４４】
そして、アプリケーション・プログラム５の操作データ取得部５１及び操作対象データ取得部５３は、アプリケーション・プログラム５の画面に対するユーザからの操作（アクション）を受け付け、当該アクションに関するデータを一旦ワーク・メモリ領域１１に格納する（ステップＳ４３）。操作データ取得部５１は、画面項目（オブジェクト）に対するフォーカス、データ入力、クリックなどのアクション内容と、アクションが入力であった場合の入力内容とを取得する。操作対象データ取得部５３は、アクションの対象となったオブジェクトのデータ（画面名、項目名等）を取得する。
【００４５】
なお、アプリケーション・プログラム５自体も入力に応じた動作を実行しなければならないので、入力内容についてはアプリケーション・プログラム５の本来の処理部にも渡す必要がある。
【００４６】
図７に、アプリケーション・プログラム５の画面の一例を示す。図７の例には、名前入力欄７００と郵便番号入力欄７０２と住所入力欄７０４と電話番号入力欄７０６と取消ボタン７０８と更新ボタン７１０と終了ボタン７１２とが含まれている。図７の例は、ユーザの情報を登録するための画面であり、その他、プルダウンメニュー、ラジオボタン、チェックボックス等、ユーザの選択入力を受け付けるような画面オブジェクトが含まれている場合もある。この画面に対するユーザからのアクションとしては、例えばいずれかの入力欄へのフォーカス、いずれかの入力欄へのデータの入力、いずれかのボタンのクリックが挙げられる。
【００４７】
図６の処理フローに戻り、再生・記録処理制御部３５は、操作データ取得部５１及び操作対象データ取得部５３が取得したデータに基づき、受け付けたユーザのアクションがデータ更新を伴うものであったかどうか判定する（ステップＳ４５）。データ更新を伴うアクションであったと判定された場合（ステップＳ４５：Ｙｅｓルート）、特に処理を行わず後で述べるステップＳ５３の処理に移行する。
【００４８】
一方、受け付けたユーザのアクションがデータ更新を伴うものではなかったと判定された場合（ステップＳ４５：Ｎｏルート）、時間管理部３３は現在の時間を取得する（ステップＳ４７）。そして時間管理部３３は、１回前に取得した時間と現在の時間との差を計算し、当該アクションの処理（操作）時間として一旦ワーク・メモリ領域１１に格納する（ステップＳ４９）。
【００４９】
そしてテーブル管理部３７は、操作データ取得部５１及び操作対象データ取得部５３が取得したデータと当該アクションの処理時間とに基づきアクション・テーブル１３１（図２）のレコード・データを生成し、アクション・テーブル１３１（図２）に登録する（ステップＳ５１）。
【００５０】
そしてコンソール部３１は、ユーザによって停止指示がなされたかどうか（停止ボタン５０６（図５（ａ））がクリックされたかどうか）判定する（ステップＳ５３）。停止指示がなされていないと判定された場合（ステップＳ５３：Ｎｏルート）、ステップＳ４３の処理に戻り、引き続きアプリケーション・プログラム５の画面に対するユーザからのアクションを受け付ける。
【００５１】
一方、停止指示がなされたと判定された場合（ステップＳ５３：Ｙｅｓルート）、テーブル管理部３７は、ステップＳ５１において格納したアクション・テーブル１３１（図２）のデータに基づきパターン・テーブル１３３（図３）のレコード・データを生成し、パターン・テーブル１３３（図３）に登録する（ステップＳ５５）。なお、ここで登録されるレコードには、パターン番号の列３００（図３）の値のみが格納されている。そして、再生・記録処理制御部３５は、操作記録処理を終了する。
【００５２】
このようにして、アプリケーション・プログラム５の画面に対するユーザからのアクションを記録する。なお、本実施の形態においては、データ更新を伴うアクションの処理時間は、次のアクションの処理時間に含まれるようになっているが、各アクションの処理時間を他の方法で計算するようにしてもよい。
【００５３】
次に、図８乃至図１０を用いて、再生処理（図４：ステップＳ３１）の詳細について説明する。この再生処理は、コンソール部３１がユーザから再生指示を受け付けた（再生ボタン５０４（図５（ａ））がクリックされた）場合に、再生・記録処理制御部３５によって開始される。
【００５４】
まず、再生・記録処理制御部３５は、ワーク・メモリ領域１１のデータを確認し（ステップＳ６１）、ワーク・メモリ領域１１に既存のパターンのデータが存在したかどうか判定する（ステップＳ６３）。すなわち、既存のパターンのデータがワーク・メモリ領域１１に読み込み済みかどうかを確認する。ここでは例えば上で述べたようなアクションの一時記憶データは該当しない。
【００５５】
図９に、ワーク・メモリ領域１１に格納されるべきデータ・テーブルの一例を示す。図９の例では、パターン番号の列９００とシーケンシャル番号の列９０２とアクションの列９０４と時間の列９０６と画面名の列９０８とオブジェクトの列９１０と入力内容の列９１２とポインタの列９１４とが含まれている。すなわち、アクション・テーブル１３１（図２）から読み込んだデータにポインタが対応付けられたものである。
【００５６】
図９の例では、ポインタは例えば５行目に設定されており、再生又は早送りによって４行目までのアクションが実行されたことが示されている。この状態から再び再生又は早送りが行われる場合は、５行目のアクションから順に実行されていく。
【００５７】
図８の処理フローに戻り、ステップＳ６３の判定処理において「存在しなかった」と判定された場合（ステップＳ６３：Ｎｏルート）、再生・記録処理制御部３５は、ユーザによって再生を指示されたパターンに関するデータ（レコード）をアクション・テーブル１３１（図２）からワーク・メモリ領域１１に読み込む（ステップＳ６５）。そして再生・記録処理制御部３５は、先頭レコードの操作対象を特定する（ステップＳ６７）。すなわち、画面名の列９０８の値とオブジェクトの列９１０の値とに基づき、最初に再生すべきアクションの対象となるオブジェクトを特定する。
【００５８】
そして再生・記録処理制御部３５は、現在表示されているアプリケーション・プログラム５の画面上に当該オブジェクトが存在するかどうか判定する（ステップＳ６９）。なお、当該アクションの対象画面が、現在表示されているアプリケーション・プログラム５の画面と一致しているかどうかを判定するようにしてもよい。
【００５９】
存在しないと判定された場合（ステップＳ６９：Ｎｏルート）、端子Ｂを介して図１０のリターン処理に進み、再生処理を終了する。アクションの対象となる画面が表示されていない場合には、アクションを再現（表示）できないためである。なお、エラー・メッセージ等を表示させる場合もある。
【００６０】
一方、存在すると判定された場合（ステップＳ６９：Ｙｅｓルート）、ステップＳ６５において読み込んだデータの先頭レコードにポインタを設定してワーク・メモリ領域１１に格納する（ステップＳ７１）。
【００６１】
そして時間管理部３３は、ワーク・メモリ領域１１に格納されたデータのうち、ポインタが設定されているレコード以降の時間の列９０６（図９）の値を合計した値を、残り再生時間として再生時間表示部５０２（図５（ａ））に表示する（ステップＳ７３）。
【００６２】
また一方、ステップＳ６３の判定処理において「存在した」と判定された場合（ステップＳ６３：Ｙｅｓルート）、再生・記録処理制御部３５は、ポインタの位置を確認する（ステップＳ７５）。すなわち、ワーク・メモリ領域１１に格納されているデータのうち、ポインタが設定されているレコードを特定する。
【００６３】
そして再生・記録処理制御部３５は、ポインタが設定されているレコードと同じ画面の先頭レコードを特定する（ステップＳ７７）。すなわち、ポインタが設定されているレコードと画面名の列９０８（図９）の値が等しく且つシーケンシャル番号の列９０２（図９）の値が例えば最も若いレコードを特定する。
【００６４】
そして再生・記録処理制御部３５は、先頭レコードの操作対象を特定する（ステップＳ７９）。そして再生・記録処理制御部３５は、現在表示されているアプリケーション・プログラム５の画面上に当該オブジェクトが存在するかどうか判定する（ステップＳ８１）。なお、当該アクションの対象画面が、現在表示されているアプリケーション・プログラム５の画面と一致しているかどうかを判定するようにしてもよい。
【００６５】
存在しないと判定された場合（ステップＳ８１：Ｎｏルート）、端子Ｂを介して図１０のリターン処理に進み、再生処理を終了する。一方、存在すると判定された場合（ステップＳ８１：Ｙｅｓルート）、先頭レコードから、ポインタが設定されているレコードの１件前のレコードまでのアクションを実行する（ステップＳ８３）。この際、各アクションの処理時間は無視する。そして、上で述べたステップＳ７３の処理に移行する。ステップＳ７３の処理が終わると、処理は端子Ａを介して図１０の処理に移行する。
【００６６】
そしてコンソール部３１は、ユーザによって一時停止指示がなされたかどうか（一時停止ボタン５０８（図５（ａ））がクリックされたかどうか）判定する（図１０：ステップＳ９１）。一時停止指示がなされなかったと判定された場合（ステップＳ９１：Ｎｏルート）、ステップＳ９９の処理に移行する。
【００６７】
一方、一時停止指示がなされたと判定された場合（ステップＳ９１：Ｙｅｓルート）、再生・記録処理制御部３５は、一時停止状態で処理を待機する（ステップＳ９３）。すなわち、アプリケーション・プログラム５に対するアクションを自動実行しない。そして再生・記録処理制御部３５は、待機中にユーザからのアプリケーション・プログラム５に対するアクションを受け付けたかどうか判定する（ステップＳ９５）。受け付けたと判定された場合（ステップＳ９５：Ｙｅｓルート）、元の処理に戻る。
【００６８】
一方、受け付けていないと判定された場合（ステップＳ９５：Ｎｏルート）、コンソール部３１は、待機中にユーザによって再生指示がなされたかどうか（再生ボタン５０４（図５（ａ））がクリックされたかどうか）判定する（ステップＳ９７）。
【００６９】
再生指示がなされたと判定された場合（ステップＳ９７：Ｙｅｓルート）、ステップＳ９９の処理に移行する。一方、再生指示がなされなかったと判定された場合（ステップＳ９７：Ｎｏルート）、ステップＳ９３の処理に戻る。
【００７０】
そして再生・記録処理制御部３５は、ワーク・メモリ領域１１に格納されているデータに基づき、ポインタが設定されているレコードのアクションを実行する（ステップＳ９９）。そして時間管理部３３は、当該アクションの処理時間（時間の列９０６の値）、処理を待機する（ステップＳ１０１）。そして再生・記録処理制御部３５は、ポインタを次のレコードに設定する（ステップＳ１０３）。
そして時間管理部３３は、ポインタが設定されているレコード以降の時間の列９０６（図９）の値を合計した値を、残り再生時間として再生時間表示部５０２（図５（ａ））に表示する（ステップＳ１０５）。
【００７１】
そしてコンソール部３１は、ユーザによって再生停止指示がなされたかどうか（停止ボタン５０６（図５（ａ））がクリックされたかどうか）判定する（ステップＳ１０７）。再生停止指示がなされていないと判定された場合（ステップＳ１０７：Ｎｏルート）、ステップＳ９１に戻り、一時停止又はアクションの実行処理を引き続き行う。
【００７２】
一方、再生停止指示がなされたと判定された場合（ステップＳ１０７：Ｙｅｓルート）、再生・記録処理制御部３５は、ワーク・メモリ領域１１に格納されているデータをクリアし（ステップＳ１０９）、元の処理に戻る。
【００７３】
このようにして再生処理を行うことにより、再生処理の実行中においてもアプリケーション・プログラム５に対するユーザからの操作を受け付けることが可能になる。例えばステップＳ１０１における待機中に、ユーザがデータ更新を伴う処理操作を行ってもよい。また、再生処理が一時停止された場合には、次の再生時には一時停止した続きのアクションから実行されるようになる。
【００７４】
次に、図１１を用いて、早送り処理（図４：ステップＳ３５）の詳細について説明する。この早送り処理は、コンソール部３１がユーザから早送り指示を受け付けた（早送りボタン５１０（図５（ａ））がクリックされた）場合に、再生・記録処理制御部３５によって開始される。
【００７５】
まず、再生・記録処理制御部３５は、ユーザによって早送りを指示されたパターンに関するデータ（レコード）をアクション・テーブル１３１（図２）から読み込む（ステップＳ１２１）。そして再生・記録処理制御部３５は、読み込んだデータの先頭レコードにポインタを設定してワーク・メモリ領域１１に格納する（ステップＳ１２３）。
【００７６】
そしてコンソール部３１は、ユーザによって一時停止指示がなされたかどうか（一時停止ボタン５０８（図５（ａ））がクリックされたかどうか）判定する（ステップＳ１２５）。一時停止指示がなされなかったと判定された場合（ステップＳ１２５：Ｎｏルート）、ステップＳ１２７の処理に移行する。
【００７７】
一方、一時停止指示がなされたと判定された場合（ステップＳ１２５：Ｙｅｓルート）、再生・記録処理制御部３５は、一時停止状態で処理を待機する（ステップＳ１３５）。すなわち、アプリケーション・プログラム５に対するアクションを自動実行しない。そして再生・記録処理制御部３５は、待機中にユーザからのアプリケーション・プログラム５に対するアクションを受け付けたかどうか判定する（ステップＳ１３７）。受け付けたと判定された場合（ステップＳ１３７：Ｙｅｓルート）、元の処理に戻る。
【００７８】
一方、受け付けていないと判定された場合（ステップＳ１３７：Ｎｏルート）、コンソール部３１は、待機中にユーザによって早送り指示がなされたかどうか（早送りボタン５１０（図５（ａ））がクリックされたかどうか）判定する（ステップＳ１３９）。
【００７９】
早送り指示がなされたと判定された場合（ステップＳ１３９：Ｙｅｓルート）、ステップＳ１２７の処理に移行する。一方、早送り指示がなされなかったと判定された場合（ステップＳ１３９：Ｎｏルート）、ステップＳ１３５の処理に戻る。
【００８０】
そして再生・記録処理制御部３５は、ワーク・メモリ領域１１に格納されているデータに基づき、ポインタが設定されているレコードのアクションを実行する（ステップＳ１２７）。そして再生・記録処理制御部３５は、ポインタを次のレコードに設定する（ステップＳ１２９）。そして時間管理部３３は、ポインタが設定されているレコード以降の時間の列９０６（図９）の値を合計した値を、残り再生時間として再生時間表示部５０２（図５（ａ））に表示する（ステップＳ１３１）。
【００８１】
そしてコンソール部３１は、ユーザによって早送り停止指示がなされたかどうか（停止ボタン５０６（図５（ａ））がクリックされたかどうか）判定する（ステップＳ１３３）。早送り停止指示がなされていないと判定された場合（ステップＳ１３３：Ｎｏルート）、ステップＳ１２５に戻り、一時停止又はアクションの実行処理を引き続き行う。
【００８２】
一方、早送り停止指示がなされたと判定された場合（ステップＳ１３３：Ｙｅｓルート）、再生・記録処理制御部３５は、元の処理に戻る。
【００８３】
このようにして早送り処理を行うことにより、早送り終了後の再生処理において、早送りした続きのアクションから再生されるようになる。
【００８４】
次に、図１２乃至図１４を用いて、再生編集処理について説明する。この再生編集処理では、既存のパターン及びアクションについて、パターンの結合、アクションの順番の変更、アクションの処理時間の変更等の編集を行う。再生編集処理の開始にあたっては、プルダウンメニュー５００（図５（ａ））から「編集」を選択させるようにしてもよいし、例えばコンピュータ１のデスクトップ表示画面にアイコンを設置し、マウス・クリックにより起動させるようにしてもよい。
【００８５】
ユーザから再生編集処理の指示を受け付けると、テーブル管理部３７は、パターン・テーブル１３３（図３）に格納されているデータを読み込み、一旦ワーク・メモリ領域１１に格納する（ステップＳ１４１）。そしてテーブル管理部３７は、パターン一覧ページのデータを生成し、表示装置９に表示する（ステップＳ１４３）。
【００８６】
図１３に、パターン一覧ページの一例を示す。図１３の例には、チェックの列１３００とパターン番号の列１３０２とパターン名の列１３０４とパターン結合の列１３０６と結合ボタン１３０８と削除ボタン１３１０と終了ボタン１３１２とが含まれている。
【００８７】
チェックの列１３００では、ユーザから結合又は削除の対象とするパターンの選択を受け付ける。なお、結合の際は、結合順序を指定するためのウィンドウが開き、削除の際は、削除を確認するダイアログ・ボックスが開くようになっている。また、パターン名の列１３０４に含まれている、アンダーライン付きで示されているパターン名がクリックされた場合、当該パターンにおけるアクションを編集するための画面（後に説明するアクション一覧ページ）に移行する。なお、プルダウンメニュー５００（図５（ａ））において既存のパターンが選択され且つ「編集」が選択された場合には、このパターン一覧ページの表示は行わず、アクション一覧ページに直接移行する。
【００８８】
図１２の処理フローに戻り、テーブル管理部３７は、パターン一覧ページ（図１３）に対するユーザからの選択入力を受け付ける（ステップＳ１４５）。そしてテーブル管理部３７は、ユーザの選択入力が「結合」であった（結合ボタン１３０８（図１３）がクリックされた）かどうか判定する（ステップＳ１４７）。
【００８９】
「結合」であったと判定された場合（ステップＳ１４７：Ｙｅｓルート）、テーブル管理部３７は、例えば図示しないダイアログ・ボックス等を表示し、ユーザからのパターン名の入力を受け付ける（ステップＳ１４９）。そしてテーブル管理部３７は、チェックの列１３００（図１３）にチェックが付されているパターンを結合した新規パターン・データを生成し、パターン・テーブル１３３（図３）に新規レコードを登録する（ステップＳ１５１）。そして、ステップＳ１４１の処理に戻り、パターン一覧ページ（図１３）を再表示する。
【００９０】
一方、「結合」ではなかったと判定された場合（ステップＳ１４７：Ｎｏルート）、テーブル管理部３７は、パターン一覧ページ（図１３）に対するユーザからの選択入力が「削除」であった（削除ボタン１３１０（図１３）がクリックされた）かどうか判定する（ステップＳ１５３）。
【００９１】
「削除」であったと判定された場合（ステップＳ１５３：Ｙｅｓルート）、テーブル管理部３７は、チェックの列１３００（図１３）にチェックが付されているパターンに対応するパターン・テーブル１３３（図３）のレコードを削除する（ステップＳ１５５）。そして、ステップＳ１４１の処理に戻り、パターン一覧ページ（図１３）を再表示する。
【００９２】
一方、「削除」ではなかったと判定された場合（ステップＳ１５３：Ｎｏルート）、テーブル管理部３７は、パターン一覧ページ（図１３）に対するユーザからの選択入力が「終了」であった（終了ボタン１３１２（図１３）がクリックされた）かどうか判定する（ステップＳ１５７）。「終了」であったと判定された場合（ステップＳ１５７：Ｙｅｓルート）、テーブル管理部３７は、ワーク・メモリ領域１１のデータをクリアし、パターン一覧ページ（図１３）の表示画面を閉じて再生編集処理を終了する。
【００９３】
一方、「終了」ではなかったと判定された場合（ステップＳ１５７：Ｎｏルート）、テーブル管理部３７は、選択（クリック）されたパターン（パターン番号）に基づきアクション・テーブル１３１（図２）のデータを読み込み、一旦ワーク・メモリ領域１１に格納する（ステップＳ１５９）。そしてテーブル管理部３７は、アクション一覧ページのデータを生成し、表示装置９に表示する（ステップＳ１６１）。
【００９４】
図１４に、アクション一覧ページの一例を示す。図１４の例には、チェックの列１４００とパターン番号の列１４０２とシーケンシャル番号の列１４０４とアクションの列１４０６と時間の列１４０８と画面名の列１４１０とオブジェクトの列１４１２と入力内容の列１４１４と削除ボタン１４１６と終了ボタン１４１８とが含まれている。
【００９５】
チェックの列１４００では、削除したいアクションの選択をユーザから受け付ける。また、シーケンシャル番号の列１４０４及び時間の列１４０８は入力可能になっており、シーケンシャル番号の変更により各アクションの実行順序の入れ替えを受け付け、時間の変更により各アクションの処理（再生）時間の変更を受け付ける。なお、入力内容の列１４１４についても入力可能とするようにしてもよい。また、最新のシーケンシャル番号順に並び替えるためのボタンやキャンセル・ボタン等が設けられている場合もある。
【００９６】
図１２の処理フローに戻り、テーブル管理部３７は、アクション一覧ページ（図１４）に対するユーザからの編集操作を受け付け、操作の内容によりアクション・テーブル１３１（図２）を更新する（ステップＳ１６３）。例えば削除の指示を受け付けた場合には該当するレコードを削除する。そしてテーブル管理部３７は、ユーザの選択入力が「編集終了」であった（終了ボタン１４１８（図１４）がクリックされた）かどうか判定する（ステップＳ１６５）。
【００９７】
「編集終了」ではなかったと判定された場合（ステップＳ１６５：Ｎｏルート）、ステップＳ１６３に戻り、引き続き編集操作を受け付ける。一方、「編集終了」であったと判定された場合（ステップＳ１６５：Ｙｅｓルート）、テーブル管理部３７は、受け付けた編集内容に基づきアクション・テーブル１３１（図２）を更新する（ステップＳ１６７）。例えばシーケンシャル番号の列２０２（図２）の値や時間の列２０６（図２）の値を更新する。そして、テーブル管理部３７はアクション一覧ページ（図１４）の表示画面を閉じ、ステップＳ１４１の処理に戻る。
【００９８】
このようにして、既存のパターン及びアクションについて、パターンの結合、アクションの順番の変更、アクションの処理時間の変更等の編集が行われる。なお、あるオブジェクトに対するフォーカス移動のアクションが行われる前に当該オブジェクトに対する入力のアクションが行われるような設定等、不適当な編集がなされた場合にはエラー表示を行うようにしてもよい。
【００９９】
以上本発明の一実施の形態について説明したが、本発明はこれに限定されるものではない。例えば、図２及び図３に示したテーブル構成は一例であって、同様のデータを格納するためであれば、別の構成を採用するようにしてもよい。また、必要に応じて項目を追加又は削除するようにしてもよい。また、図５（ａ）、図５（ｂ）、図５（ｃ）、図７、図１３及び図１４に示した画面構成は一例であって、同様の内容を別の態様にて表現することも可能である。また、図９に示したワーク・メモリ領域１１におけるデータも一例であって、同様のデータを別の表現で示す場合もある。また、図１に示したオペレーション記録・再生プログラム３の機能ブロックも一例であって、図１に示した通りにプログラムモジュールが作成されない場合もある。また、コンピュータ１が複数のコンピュータによって構成されていてもよい。
【０１００】
さらに、上で示した処理フローは一例であって、同じ機能を有する他のフローを利用することも可能である。また、本実施の形態においては、データ更新を伴うアクションについては記録の対象から除外するようにしていたが、例えばデータ更新を伴うアクションによってアプリケーション画面が切り替わるような場合、画面の切り替え処理を記録しておくようにしてもよい。
【０１０１】
（付記１）
データ更新処理を行うための操作を除く、特定のアプリケーション・プログラムのアプリケーション画面におけるユーザの操作データと、当該操作についての時間データとを取得し、記憶装置に格納する記録ステップと、
実際に実行されている前記特定のアプリケーション・プログラムの前記アプリケーション画面に対するユーザからの操作を禁止することなく、格納された前記操作データに基づく前記アプリケーション画面に対する操作を、対応する時間データに従い自動で実行する再生ステップと、をコンピュータに実行させるためのオペレーション記録・再生プログラム。
【０１０２】
（付記２）
ユーザからの一時停止指示を任意の時点で受け付け、前記一時停止指示を受け付けた場合には、前記再生ステップにおいて前記アプリケーション画面に対して自動で実行される操作を、前記一時停止指示に対応する段階で一時停止するステップをさらにコンピュータに実行させる付記１記載のオペレーション記録・再生プログラム。
【０１０３】
（付記３）
前記アプリケーション画面に対して自動で実行される操作が一時停止された場合、ユーザからの指示に従い、前記アプリケーション画面に対して自動で実行される操作を、一時停止された次の段階から再開するステップをさらにコンピュータに実行させる付記２記載のオペレーション記録・再生プログラム。
【０１０４】
（付記４）
格納された前記操作データに対するユーザからの編集操作を受け付け、編集された前記操作データを記憶装置に格納するステップをさらにコンピュータに実行させる付記１記載のオペレーション記録・再生プログラム。
【０１０５】
（付記５）
格納された前記時間データに対するユーザからの編集操作を受け付け、編集された前記時間データを記憶装置に格納するステップをさらにコンピュータに実行させる付記４記載のオペレーション記録・再生プログラム。
【０１０６】
（付記６）
前記再生ステップにおいて、格納された前記操作データに基づき特定される操作の対象画面が、実行中のアプリケーション・プログラムの現在の表示画面と一致しているか否かを判定するステップをさらにコンピュータに実行させる付記１記載のオペレーション記録・再生プログラム。
【０１０７】
（付記７）
データ更新処理を行うための操作を除く、特定のアプリケーション・プログラムのアプリケーション画面におけるユーザの操作データと、当該操作についての時間データとを取得し、記憶装置に格納するステップと、
実際に実行されている前記特定のアプリケーション・プログラムの前記アプリケーション画面に対するユーザからの操作を禁止することなく、格納された前記操作データに基づく前記アプリケーション画面に対する操作を、対応する時間データに従い自動で実行するステップと、を含むコンピュータに実行されるオペレーション記録・再生方法。
【０１０８】
（付記８）
データ更新処理を行うための操作を除く、特定のアプリケーション・プログラムのアプリケーション画面におけるユーザの操作データと、当該操作についての時間データとを取得し、記憶装置に格納する機能と、
実際に実行されている前記特定のアプリケーション・プログラムの前記アプリケーション画面に対するユーザからの操作を禁止することなく、格納された前記操作データに基づく前記アプリケーション画面に対する操作を、対応する時間データに従い自動で実行する機能と、を有するオペレーション記録・再生装置。
【０１０９】
【発明の効果】
以上述べたように、本発明によれば、実際のアプリケーション・ソフトウェアを使用したデモンストレーションをフレキシブルに且つ効果的に行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るコンピュータの機能ブロック図である。
【図２】アクション・テーブルの構成及び格納されるデータの一例を示す図である。
【図３】パターン・テーブルの構成及び格納されるデータの一例を示す図である。
【図４】本発明の一実施の形態における処理フローを示す図である。
【図５】コンソール画面の一例を示す図である。
【図６】操作記録処理の処理フローを示す図である。
【図７】アプリケーション・プログラムの表示画面の一例を示す図である。
【図８】再生処理の処理フロー（その１）を示す図である。
【図９】ワーク・メモリ領域の構成及び格納されるデータの一例を示す図である。
【図１０】再生処理の処理フロー（その２）を示す図である。
【図１１】早送り処理の処理フローを示す図である。
【図１２】再生編集処理の処理フローを示す図である。
【図１３】パターン一覧ページの一例を示す図である。
【図１４】アクション一覧ページの一例を示す図である。
【符号の説明】
１  コンピュータ
３  オペレーション記録・再生プログラム
５  アプリケーション・プログラム
７  入力装置    ９  表示装置
１１  ワーク・メモリ領域
１３  アクション・パターンＤＢ
３１  コンソール部    ３３  時間管理部
３５  再生・記録処理制御部
３７  テーブル管理部
５１  操作データ取得部
５３  操作対象データ取得部
１３１  アクション・テーブル
１３３  パターン・テーブル
【図１】
2004287882.tif 000003
【図２】
2004287882.tif 000004
【図３】
2004287882.tif 000005
【図４】
2004287882.tif 000006
【図５】
2004287882.tif 000007
【図６】
2004287882.tif 000008
【図７】
2004287882.tif 000009
【図８】
2004287882.tif 000010
【図９】
2004287882.tif 000011
【図１０】
2004287882.tif 000012
【図１１】
2004287882.tif 000013
【図１２】
2004287882.tif 000014
【図１３】
2004287882.tif 000015
【図１４】
2004287882.tif 000016