(57)【要約】【課題】操作代行システムにおける一連の操作の内容を記述したシナリオに、表示画面上のＧＵＩ要素に関する情報を取得して利用する処理を記述する際の、プログラミングの知識や技術を不要とし、操作記録作業とのシームレスな作業を可能とすること。【解決手段】操作代行システムによるユーザ操作の記録中、ＧＵＩ要素に関する情報を取得して利用したい場面で表示画面１００上に変数プールウィンドウ４０を表示させ、対象ＡＰウィンドウ２０上に表示された対象ＡＰ中のＧＵＩ要素を変数プールウィンドウ４０までドラッグアンドドロップすると、そのドラッグ元のＧＵＩ要素に対応するシンボルが新規に生成されて変数プールウィンドウ４０上に表示されるとともに、当該シンボルとそのシンボルに関連付けられたデータがシンボル管理ＤＢ１２に格納され、さらに前記シンボルに対応するシナリオのコードが生成され、作成中のシナリオに追加される。【選択図】図６
2011013768.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムに対するユーザの操作をコンピュータに代行させる操作代行システムにおける一連の操作の内容を記述したシナリオを作成する方法であって、
主制御部が、ユーザによる所定の操作に応じて、ユーザによる一連の操作を記録する操作記録モードとＧＵＩ要素の状態に関する情報を取得して利用するための変数プールモードとを切り替えるステップと、
主制御部が、変数プールモード時に対象ＡＰウィンドウが表示された表示画面上に変数プールウィンドウを表示するステップと、
主制御部が、ユーザによる対象ＡＰウィンドウにおけるＧＵＩ要素の変数プールウィンドウへのドラッグアンドドロップに関するＧＵＩプラットフォームからの通知を受けてドラッグ元のＧＵＩ要素を特定し、当該ドラッグ元のＧＵＩ要素の識別子、種類及びコンテンツを取得するステップと、
主制御部が、ドラッグ元のＧＵＩ要素の種類及びコンテンツから変数プールウィンドウに表示すべきシンボルを生成するとともに名前を付し、当該シンボルの名前、ドラッグ元のＧＵＩ要素の種類及びコンテンツを含むシンボルに関する情報の格納をシンボル管理部に要求するステップと、
シンボル管理部が、前記シンボルに関する情報をシンボル管理データベースに格納するステップと、
主制御部が、前記シンボルの名前、ドラッグ元のＧＵＩ要素の種類及び識別子とともに当該シンボルに対応するコードの生成及びシナリオへの追加をシナリオ生成部に要求するステップと、
シナリオ作成部が、前記シンボルの名前、ドラッグ元のＧＵＩ要素の種類及び識別子からドラッグ元のＧＵＩ要素のコンテンツを取得するコードを生成し、生成したコードを作成中のシナリオへ追加するステップとを含む
ことを特徴とするシナリオの作成方法。
【請求項２】
主制御部が、ユーザによる対象ＡＰウィンドウにおけるＧＵＩ要素の変数プールウィンドウ内の既存のシンボルへのドラッグアンドドロップに関するＧＵＩプラットフォームからの通知を受けてドラッグ元のＧＵＩ要素を特定し、当該ドラッグ元のＧＵＩ要素の識別子、種類及びコンテンツを取得するステップと、
主制御部が、ドロップ先のシンボルの名前、ドラッグ元のＧＵＩ要素の種類及びコンテンツを含むシンボルに関する情報の書き換えをシンボル管理部に要求するステップと、
シンボル管理部が、ドロップ先のシンボルに対応付けられてシンボル管理データベースに格納されていた情報を、前記シンボルに関する情報で書き換えるステップと、
主制御部が、前記ドロップ先のシンボルの名前、ドラッグ元のＧＵＩ要素の種類及び識別子とともに当該シンボルに対応するコードの生成及びシナリオへの追加をシナリオ生成部に要求するステップと、
シナリオ作成部が、前記ドロップ先のシンボルの名前、ドラッグ元のＧＵＩ要素の種類及び識別子からドラッグ元のＧＵＩ要素のコンテンツを取得するコードを生成し、生成したコードを作成中のシナリオへ追加するステップとを含む
ことを特徴とする請求項１に記載のシナリオの作成方法。
【請求項３】
主制御部が、ユーザによる変数プールウィンドウにおけるシンボルの対象ＡＰウィンドウ内のＧＵＩ要素へのドラッグアンドドロップに関するＧＵＩプラットフォームからの通知を受けてドロップ先のＧＵＩ要素を特定し、当該ドロップ先のＧＵＩ要素の識別子及び種類を取得するとともに、ドラッグ元のシンボルを特定してその名前と種類をシンボル管理部を通じてシンボル管理データベースから取得するステップと、
主制御部が、ドロップ先のＧＵＩ要素の種類とドラッグ元のシンボルの種類とから情報の反映ができるかどうか互換性をチェックするステップと、
主制御部が、前記ドラッグ元のシンボルの名前、ドロップ先のＧＵＩ要素の種類及び識別子とともにコンテンツの反映を行うコードの生成及びシナリオへの追加をシナリオ生成部に要求するステップと、
シナリオ作成部が、前記ドラッグ元のシンボルのコンテンツでドロップ先のＧＵＩ要素のコンテンツを書き換えるコードを生成し、生成したコードを作成中のシナリオへ追加するステップと、
主制御部が、ドラッグ元のシンボルのコンテンツをシンボル管理部を通じてシンボル管理データベースから取得するステップと、
主制御部が、取得したコンテンツを、ＧＵＩプラットフォームを介して対象ＡＰウィンドウ上のドロップ先のＧＵＩ要素のコンテンツに反映させるステップとを含む
ことを特徴とする請求項１に記載のシナリオの作成方法。
【請求項４】
アプリケーションプログラムに対するユーザの操作をコンピュータに代行させる操作代行システムにおける一連の操作の内容を記述したシナリオを作成する装置であって、
ユーザによる所定の操作に応じて、ユーザによる一連の操作を記録する操作記録モードとＧＵＩ要素の状態に関する情報を取得して利用するための変数プールモードとを切り替える手段と、
変数プールモード時に対象ＡＰウィンドウが表示された表示画面上に変数プールウィンドウを表示する手段と、
ユーザによる対象ＡＰウィンドウにおけるＧＵＩ要素の変数プールウィンドウへのドラッグアンドドロップに関するＧＵＩプラットフォームからの通知を受けてドラッグ元のＧＵＩ要素を特定し、当該ドラッグ元のＧＵＩ要素の識別子、種類及びコンテンツを取得する手段と、
取得したドラッグ元のＧＵＩ要素の種類及びコンテンツから変数プールウィンドウに表示すべきシンボルを生成するとともに名前を付す手段と、
前記シンボルの名前、ドラッグ元のＧＵＩ要素の種類及びコンテンツを含む当該シンボルに関する情報をシンボル管理データベースに格納する手段と、
前記シンボルの名前、ドラッグ元のＧＵＩ要素の種類及び識別子からドラッグ元のＧＵＩ要素のコンテンツを取得するコードを生成し、生成したコードを作成中のシナリオへ追加する手段とを備えた
ことを特徴とするシナリオの作成装置。
【請求項５】
ユーザによる、対象ＡＰウィンドウにおけるＧＵＩ要素のドラッグ操作と変数プールウィンドウ内の既存のシンボルへのドロップ操作とからなる、ドラッグアンドドロップに関するＧＵＩプラットフォームからの通知を受けてドラッグ元のＧＵＩ要素を特定し、当該ドラッグ元のＧＵＩ要素の識別子、種類及びコンテンツを取得する手段と、
取得したドラッグ元のＧＵＩ要素の種類及びコンテンツを含む情報で、ドロップ先のシンボルに対応付けられてシンボル管理データベースに格納されていた情報を書き換える手段と、
前記ドロップ先のシンボルの名前、ドラッグ元のＧＵＩ要素の種類及び識別子からドラッグ元のＧＵＩ要素のコンテンツを取得するコードを生成し、生成したコードを作成中のシナリオへ追加する手段とを備えた
ことを特徴とする請求項４に記載のシナリオの作成装置。
【請求項６】
ユーザによる、変数プールウィンドウにおけるシンボルのドラッグ操作と対象ＡＰウィンドウ内のＧＵＩ要素へのドロップ操作とからなる、ドラッグアンドドロップに関するＧＵＩプラットフォームからの通知を受けてドロップ先のＧＵＩ要素を特定し、当該ドロップ先のＧＵＩ要素の識別子及び種類を取得するとともに、ドラッグ元のシンボルを特定してその名前と種類をシンボル管理データベースから取得する手段と、
ドロップ先のＧＵＩ要素の種類とドラッグ元のシンボルの種類とから情報の反映ができるかどうか互換性をチェックする手段と、
前記ドラッグ元のシンボルの名前、ドロップ先のＧＵＩ要素の種類及び識別子に基づいて、ドロップ先のＧＵＩ要素のコンテンツを前記ドラッグ元のシンボルのコンテンツで書き換えるコードを生成し、生成したコードを作成中のシナリオへ追加する手段と、
ドラッグ元のシンボルのコンテンツをシンボル管理データベースから取得する手段と、
取得したコンテンツを、ＧＵＩプラットフォームを介して対象ＡＰウィンドウ上のドロップ先のＧＵＩ要素のコンテンツに反映させる手段とを備えた
ことを特徴とする請求項４に記載のシナリオの作成装置。
【請求項７】
コンピュータを、請求項４乃至６のいずれかに記載の装置の各手段として機能させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ上で動作するアプリケーションプログラム（ＡＰ）に対するユーザの操作、特にグラフィカルユーザインタフェース（ＧＵＩ）を有するＡＰに対する当該ＧＵＩを通じたユーザの操作をコンピュータに代行させるシステム（以下、操作代行システムと呼ぶ。）において、代行させる一連の操作の内容を記述したシナリオを作成する技術に関するものである。
【背景技術】
【０００２】
操作代行システムでは、ユーザがＡＰに対して実際に行った操作（マウスクリック、キーボード押下等）を記録・保存しておき、後で当該保存した記録に基づく操作をコンピュータに実行させることで同じ操作を再現すること、即ち操作の自動化を可能とする。
【０００３】
図１及び図２は従来の操作代行システム、ここではマウス、キーボード等の入力系ＵＩ１、ディスプレイ等の出力系ＵＩ２及びＧＵＩプラットフォーム３を備え、操作の対象となるアプリケーションプログラム（対象ＡＰ）４がインストールされたコンピュータ上で動作する操作代行システム５における操作記録時及び操作実行時の動作の概要をそれぞれ示す。
【０００４】
操作代行システム５の記録部５ａでは、図１に示すように、ユーザによる入力系ＵＩ１へのＡＰ４に対する操作・入力を受けて当該入力系ＵＩ１からＧＵＩプラットフォーム３を通じてＡＰ４へ送出されるメッセージを監視し、それらを記録してシナリオ（シナリオファイル）６を作成し保存する。
【０００５】
一方、操作代行システム５の実行部５ｂでは、図２に示すように、入力系ＵＩ１を介してユーザからシナリオの実行命令が入力されると、前記作成・保存したシナリオファイル６を読み込み、当該シナリオファイル６に記述されているメッセージをＡＰ４へ送出するため、記録時と同様なＡＰ４に対する操作・入力が実行され、記録時と同様な結果が得られる（出力系ＵＩ２に表示される）ことになる。
【０００６】
このような操作代行システムは既にいくつか存在し、広く利用されているが、ただ単に記録した操作をそのまま代行するだけでなく、より柔軟な処理を可能とするものも存在する。
【０００７】
例えば、Triple-9（非特許文献１参照）やUWSC（非特許文献２参照）では、一連の操作の記録をそれぞれ特有の言語を用いてテキスト形式にて保存し、ユーザによる編集を可能としており、一般的なプログラミング言語のような変数、条件分岐、繰り返し等も記述可能である。さらに、表示画面上のテキストボックスやチェックボックス等のＧＵＩ要素に関し、その状態に関する情報（例えば、テキストボックス中の文字列やチェックボックスにおけるチェックの有無）を取得して利用する処理（例えば、取得した文字列の他のテキストボックスへの貼付やチェックの有無による条件分岐）を記述することも可能である。
【０００８】
即ち、上記のような操作代行システムでは、複雑な処理を実現するには、最低限、
(i) 操作の記録（代行させたい操作を実演して記録し、シナリオを新規に作成する）、
(ii)シナリオの編集（(i) の手順で記録されなかった処理の挿入、不要な処理の削除、順序の入れ替え、パラメータの修正）、
(iii) シナリオの実行、
という手順が必要であった。
【０００９】
また、あるシナリオでＧＵＩ要素の状態に関する情報を取得して利用するには、一般に、
・対象となるＧＵＩ要素を特定するための情報（識別子）を得ること、
・状態に関する情報を取得する処理をそのシナリオ中に記述すること、
・状態に関する情報を利用する処理をそのシナリオ中に記述すること、
が必要である。
【００１０】
さらに、一般的に、取得したＧＵＩ要素の状態に関する情報を変数等に格納する場合、Triple-9やUWSCのように、その変数の宣言や情報の代入等の記述が必要になる。
【００１１】
これらの記述、即ちＧＵＩ要素の状態に関する情報を取得して利用する処理の記述、変数の宣言や情報の代入等の記述は、上記の手順(ii)で挙げたシナリオ編集段階で行うことが一般的であり、その作業内容は、いわゆるプログラミングに似ていることが多い。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】”Ｔｒｉｐｌｅ−９  ｆｏｒ  Ｗｉｎｄｏｗｓ（登録商標）”、［ｏｎｌｉｎｅ］、［平成２１年６月８日検索］、インターネット＜ＵＲＬ：http://www.technocity.jp/products.htm＞
【非特許文献２】”Ｗｉｎｄｏｗｓ（登録商標）自動化ソフト  ＵＷＳＣ（登録商標）”、［ｏｎｌｉｎｅ］、［平成２１年６月８日検索］、インターネット＜ＵＲＬ：http://www.uwsc.info/＞
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従来技術において、ＧＵＩ要素の状態に関する情報を取得して利用する処理を含むシナリオを作成する場合、操作を記録したシナリオを、記録後にテキストエディタ等で直接編集することが多い。この場合、以下のような課題があった。
【００１４】
１．操作の記録作業と同時にではなく、操作を記録した後にシナリオを編集してＧＵＩ要素の状態に関する情報の取得及び利用等を行う処理を挿入する必要があり、煩雑である。具体的には、例えば以下のような点で煩雑である：
（ア）シナリオの編集中に、編集対象のシナリオの中のどこにＧＵＩ要素の状態に関する情報の取得処理及び利用処理を挿入すべきか（処理を行いたいタイミングがシナリオのどこに対応しているか）を特定するのが困難である。
（イ）取得対象のＧＵＩ要素の識別子をシナリオ編集時に覚えておく（もしくは事前にシナリオの中などに記録させておく）必要がある。
【００１５】
２．シナリオを直接編集することは、スクリプト言語によるプログラミングに似ていることが多く、プログラミングに慣れていない利用者にとっては困難である。特にプログラミングに慣れていない利用者にとって、「変数」というプログラミングの分野で認知されている概念を理解すること自体が難しい。
【課題を解決するための手段】
【００１６】
本発明では、前記課題を解決するため、操作代行システムが動作している際の表示画面上に、当該操作代行システムにおける記録部を制御するためのウィンドウである記録ウィンドウ［図３中の「Recorder」ウィンドウ］とは別に、ドラッグアンドドロップもしくはそれに類する操作により、変数（ＧＵＩ要素の状態を保存したもの）をグラフィカルにプールしておくためのウィンドウである変数プールウィンドウ［図３中の「Variable Pool」ウィンドウ］を導入する。
【００１７】
ここで、ドラッグアンドドロップに類する操作とは、マウスによるドラッグアンドドロップや、ポインティングデバイスにより二箇所を続けて指し示す操作のように、画面上の二つの要素のペアを順序付けて示すことができる操作を言う。本発明では、ドラッグアンドドロップもしくはそれに類する操作を、単にドラッグアンドドロップと呼ぶものとする。
【００１８】
操作代行システムにおける記録部は、当初、表示画面上に記録ウィンドウのみを表示し、当該記録ウィンドウにおける操作の記録を開始するためのボタンをクリックすることにより一連の操作の記録を開始する［図４］が、その途中で所定の操作、例えば記録ウィンドウ中の特定のボタンのクリックなどの操作を行うことにより、既存の操作代行システムで実現されていた一連の操作を単純に記録する操作記録モードと、本発明による前述した変数プールウィンドウを用いた、ＧＵＩ要素の状態に関する情報を取得して利用するための変数プールモード（詳細は後述）とに切り替えることができるようにする［図５］。
【００１９】
操作記録モードの場合、操作代行システムは既存の機能で実現されていたように、ユーザによる操作をフックし、その情報を後で実行可能なシナリオとして記録する。
【００２０】
一方、変数プールモードでは、操作代行システムはユーザによる操作、特に対象ＡＰウィンドウから変数プールウィンドウへのドラッグアンドドロップをフックし、ドラッグ元のＧＵＩ要素からその種類や状態に関する情報を取得し、当該情報からドラッグ元のＧＵＩ要素に対応するシンボルを自動的に生成して変数プールウィンドウにプールし、当該シンボルに対応するシナリオのコード（スクリプト）を作成してシナリオに追加する［図６、図７］。
【００２１】
また、操作記録モードでは、操作代行システムはユーザによる操作をフックするが、その情報は対象ＡＰへそのまま伝えられる。
【００２２】
一方、変数プールモードでは、操作代行システムが当該操作代行システム（本発明による変数プールを含む）以外のＡＰもしくは記録する操作の対象となっているＡＰへのユーザによる全ての操作をフックし、その情報は当該操作代行システム以外のＡＰもしくは記録する操作の対象となっているＡＰへは伝えられない（変数プールモード時における、変数プールウィンドウを介するドラッグアンドドロップにより、操作代行システム以外のＡＰもしくは記録する操作の対象となっているＡＰが動いてしまわないようにするため）。
【発明の効果】
【００２３】
本発明によれば、取得された情報が変数プールウィンドウ内のシンボルという目に見える形で保存され、さらにそれらのシンボルをＧＵＩ操作によって直接利用してシナリオ作成に反映させることができるため、概念や利用法を直感的に理解し易い。このため、ＧＵＩ要素の状態に関する情報の取得及び利用を含むシナリオの作成に、従来必要であったプログラミングの知識や技術が不要となる。
【００２４】
また、変数定義や代入、値の利用といった処理をシナリオ内へと盛り込むために、既存の操作代行システムにありがちであったシナリオの直接編集が（単純なシナリオであれば）不要となり、なおかつ、従来は、利用者が行う操作の記録と、高度な処理を盛り込むためのシナリオ編集という二段階必要であった作業を、随時作業対象を切り替えることによって、シームレスに一貫してＧＵＩ上で行うことが可能となる。このため、従来の操作記録作業に相当する作業のみで、変数定義や代入、値の利用といった処理をシナリオ内へと盛り込むことができるようになり、シナリオ作成に必要な作業が大きく削減される。
【００２５】
さらに、挿入されるシナリオのコードは機械的に生成されるため、タイプミス等の人為的な原因によるバグの混入を防ぐことができる。
【図面の簡単な説明】
【００２６】
【図１】従来の操作代行システムにおける操作記録時の動作の概要を示す説明図
【図２】従来の操作代行システムにおける操作実行時の動作の概要を示す説明図
【図３】本発明のシナリオ作成装置の実施の形態の一例をその表示画面例とともに示す構成図
【図４】操作記録の開始時の動作をその表示画面例とともに示す説明図
【図５】変数プールモードへの切替時の動作をその表示画面例とともに示す説明図
【図６】変数プールモードにおけるシンボルの生成及びデータ格納時の動作をその表示画面例とともに示す説明図
【図７】変数プールモードにおけるシナリオのコード生成及び追加時の動作をその表示画面例とともに示す説明図
【図８】変数プールモードにおける処理の流れの一例を示すシーケンス図
【図９】変数プールモードにおけるシンボルの書き換え及びそれに伴うシナリオへのコード追加時の動作をその表示画面例とともに示す説明図
【図１０】変数プールモードにおける処理の流れの他の例を示すシーケンス図
【図１１】変数プールモードにおけるシンボルの利用及びそれに伴うシナリオへのコード追加時の動作をその表示画面例とともに示す説明図
【図１２】変数プールモードにおける処理の流れのさらに他の例を示すシーケンス図
【図１３】操作記録の終了時の動作をその表示画面例とともに示す説明図
【発明を実施するための形態】
【００２７】
図３は本発明のシナリオ作成装置の実施の形態の一例、ここでは入力系ＵＩ（入力装置）１、出力系ＵＩ（表示装置）２及びＧＵＩプラットフォーム３を備え、対象ＡＰ４がインストールされたコンピュータ上で動作する操作代行システム１０（の記録部）内に実装された例をその表示画面例とともに示すもので、図中、１１はシンボル管理部、１２はシンボル管理データベース（ＤＢ）、１３はシナリオ生成部、１４は作成中のシナリオ（の記憶部）、１５は主制御部である。また、出力系ＵＩ２による表示画面１００中、２０は対象ＡＰウィンドウ（「Application 1」ウィンドウ）、３０は記録ウィンドウ（「Recorder」ウィンドウ）、４０は変数プールウィンドウ（「Variable Pool」ウィンドウ）である。
【００２８】
シンボル管理部１１は、変数プールウィンドウ４０上に作成された変数（シンボル）に関する情報を管理する。
【００２９】
シンボル管理ＤＢ１２は、変数プールウィンドウ４０上に作成されたシンボルとそのシンボルに関連付けられた情報を保持する。シンボルに関連付けられる情報としては、「シンボル（変数）の名前」、「種類」、「コンテンツ」がある（詳細は後述）。
【００３０】
シナリオ生成部１３は、シナリオの管理を行うとともにシナリオファイルへのインタフェースとなるもので、フックされたＧＵＩ操作やシンボルへの操作からシナリオの断片となるコードを生成し、作成中のシナリオ１４へ追加、挿入する。また、生成されたシナリオを記録しておき、ファイルに保存する。
【００３１】
作成中のシナリオ１４は、操作代行システム１０における既存の操作記録機能によって作成されるシナリオであり、ドラッグアンドドロップ等の操作を契機に作成されるコードが追加される（既存の機能と共有）。
【００３２】
主制御部１５は、変数プールモード時における主な処理を制御するとともにＧＵＩプラットフォーム３とのインタフェースとなるもので、ユーザが入力系ＵＩ１を介して行うＧＵＩ操作をフックし、操作ターゲットとなっているＧＵＩ要素を特定する。また、ＧＵＩプラットフォーム３を通じてＧＵＩ要素へメッセージを送ってコンテンツの書き換え等を行う。
【００３３】
ここで、ＧＵＩプラットフォーム３とは、ユーザのＧＵＩ操作、画面上のＡＰやそれらが有するＧＵＩ要素に関する情報を取得して設定するためのＡＰＩ（Application Program Interface）を備えているもので、例えばＷｉｎｄｏｗｓ（登録商標）の標準的なＡＰであれば.ＮＥＴフレームワークやＷｉｎｄｏｗｓ（登録商標）ＯＳ等、Ｊａｖａ（登録商標）ＡＰであればＳｗｉｎｇ等のＧＵＩライブラリ群やＪＶＭ等を指す。
【００３４】
以下、各部の構成及び動作について詳細に説明する。
【００３５】
＜操作記録の開始＞
本発明装置を含む操作代行システム１０（の記録部）が起動されると、図４に示すように、当該記録部を制御するためのウィンドウである記録ウィンドウ３０が出力系ＵＩ２の表示画面１００上に表示される。記録ウィンドウ３０は、ユーザによる一連の操作を単純に記録する既存の操作記録モードを開始するためのボタン３１、当該操作記録モードを停止するためのボタン３２とともに、操作記録モードと本発明による変数プールモードとを切り替えるためのボタン３３を備えている。
【００３６】
ユーザが入力系ＵＩ１を介してボタン３１を押し下げる（クリック）と、これがＧＵＩプラットフォーム３を通じて主制御部１５に伝送されて操作の記録が開始され、以後、ボタン３２の押し下げ等により記録処理が停止されるまでの間、ユーザによる入力系ＵＩ１を介して行われるＧＵＩ要素への操作に対応するメッセージがＧＵＩプラットフォーム３から主制御部１５を介してシナリオ生成部１３へ逐一送出されて記録され、シナリオ１４が生成される。生成されたシナリオ１４は、最終的にはシナリオファイル６へと保存される。
【００３７】
＜変数プールモードへの切り替え＞
前述した操作記録モードによるユーザ操作の記録中、図５に示すように、ユーザが入力系ＵＩ１を介してボタン３３を押し下げる（クリック）と、これがＧＵＩプラットフォーム３を通じて主制御部１５に伝送される。この際、主制御部１５はＧＵＩプラットフォーム３を通じて出力系ＵＩ２の表示画面１００に変数プールウィンドウ４０を表示し、以後、変数プールウィンドウ４０が閉じられるか、再度、このボタン３３が押し下げられる等のような何らかの停止処理が行われるまでの間、通常の操作記録は行われず、変数プールウィンドウ４０を介したＧＵＩ要素の状態に関する情報の取得及び利用を行うシナリオのコードの生成を行う変数プールモードに切り替えられる。
【００３８】
変数プールモードである間、操作代行システム１０以外のＡＰへの操作は、操作代行システム１０がフックし、その操作の情報は伝えられないようにすることが可能である（変数プールウィンドウへのドラッグアンドドロップ実施時に操作代行システム１０以外のＡＰが動いてしまわないようにするため）。
【００３９】
従って、操作記録モードによりユーザ操作の記録を行っている途中で、あるＧＵＩ要素の状態に関する情報（テキストボックス中の文字列やチェックボックスにおけるチェックの有無等）を取得する操作を記録しておきたい場合、ユーザは必要に応じてボタン３３の押し下げにより変数プールモードへの切り替えを行い（つまり、既に変数プールモードであればそのまま何も行わず、変数プールモードでなければ変数プールモードへの切り替えを行う）、そのＧＵＩ要素から変数プールウィンドウ４０へとドラッグアンドドロップを行う。
【００４０】
なお、前述したボタン３３の押下以外に、例えば
・シフトキー及びコントロールキーを押しながらのドラッグ開始を検出する、
・操作記録の最初に所定の方法で操作対象ＡＰを指定しておき、当該操作対象ＡＰの対象ＡＰウィンドウ２０からのドラッグ開始、又は、変数プールウィンドウ４０からのドラッグ開始を検出する、
のような方法により、ユーザにモード切替を意識させることなくモード切替の契機を内部的に検出させることも可能であり、本発明の応用の範囲に含まれるものとする。さらにまた、これらのモード切替のための操作方法が、対象ＡＰの何らかの機能の起動契機と同じ場合は不具合を生じることになるが、どの切替操作方法を採用するかを任意に設定可能とすることも、本発明の応用の範囲に含まれるものとする。
【００４１】
＜シンボルの生成からシナリオへのコード追加まで＞
変数プールモードにおいて、図６に示すように、ユーザが入力系ＵＩ１を介して対象ＡＰウィンドウ２０上に表示された当該対象ＡＰ中のＧＵＩ要素を変数プールウィンドウ４０までドラッグアンドドロップすると、そのドラッグ元のＧＵＩ要素に対応するシンボルが新規に生成されて変数プールウィンドウ４０上に表示されるとともに、当該シンボルとそのシンボルに関連付けられたデータがシンボル管理ＤＢ１２に格納され、さらに図７に示すように、前記シンボルに対応するシナリオのコードが生成され、作成中のシナリオに追加される。図８はこの際の処理の流れを示すシーケンス図である。
【００４２】
詳細には、前述したドラッグアンドドロップをＧＵＩプラットフォーム３が検出して主制御部１５へ通知すると、主制御部１５はドラッグ元のＧＵＩ要素の識別子と種類をＧＵＩプラットフォーム３から取得し、さらにそのＧＵＩ要素の種類（図示例では対象となっている要素がテキストボックスであること）から取得すべき当該要素の状態に関する情報（以下、コンテンツと呼ぶ。）の種別と取得方法を決定してドラッグ元のＧＵＩ要素のコンテンツ（図示例ではテキストボックスに書き込まれている文字列）をＧＵＩプラットフォーム３から取得する。
【００４３】
また、主制御部１５は、ドラッグ元のＧＵＩ要素の種類やコンテンツから変数プールウィンドウ４０に表示すべきシンボルを生成し、ＧＵＩプラットフォーム３を介して出力系ＵＩ２から変数プールウィンドウ４０に表示するとともに、当該シンボルにユニークな名前を付し（シンボルの名前は、シナリオ内の変数の識別子としての要件を満たすように機械的に生成される）、シンボル管理部１１へシンボルの名前、ドラッグ元のＧＵＩ要素の種類及びコンテンツを渡してシンボルとそのシンボルに関連付けられたデータの格納を依頼（要求）し、また、シナリオ生成部１３へシンボルの名前、ドラッグ元のＧＵＩ要素の種類及び識別子を渡して当該シンボルに対応するシナリオのコードの生成及びシナリオへの追加を依頼（要求）する。
【００４４】
シンボル管理部１１は、主制御部１５から受け取った情報を一時保存、即ちシンボルとドラッグ元のＧＵＩ要素の種類及びコンテンツとを、シンボルの名前をキーとして関連付けてシンボル管理ＤＢ１２に追加格納する。
【００４５】
シナリオ生成部１３は、主制御部１５から受け取った情報に基づいてドラッグ元のＧＵＩ要素のコンテンツを取得するシナリオのコードを生成し、当該生成したコードを、操作記録モードで作成中だったシナリオ（の変数プールモードへの切替直前に記録されたコードの次）に追加記録する。
【００４６】
なお、シンボルの生成については、ドラッグ元のＧＵＩ要素の種類とコンテンツからシンボル管理部１１で行い、その後、主制御部１５及び主制御部１５を通じてシナリオ生成部１３へ送るようにしても良い。また、シンボルのデザインについては、ドラッグ元のＧＵＩ要素をデフォルメしたような、その種類を類推可能な図柄とすることや、そこに保存されるコンテンツの内容を反映させたものとすることも考えられる。
【００４７】
この操作以降、作業終了まで、この操作でシンボル管理ＤＢ１２に保存された情報を、後述する操作によって任意のタイミングで取り出し、コードの生成に利用することができるようになる。
【００４８】
＜シンボルの書き換えからシナリオへのコード追加まで＞
また、変数プールモードにおいて、図９に示すように、ユーザが入力系ＵＩ１を介して対象ＡＰウィンドウ２０上に表示された当該対象ＡＰ中のＧＵＩ要素を、変数プールウィンドウ４０内の既存のシンボルにドラッグアンドドロップすると、新たなシンボルの生成は行われず、シンボル管理ＤＢ１２内の当該既存のシンボル（ドロップ先）に対応付けられている情報（種類及びコンテンツ）の書き換えが行われ、同時に、前記既存のシンボルに対応する変数にドラッグ元のＧＵＩ要素のコンテンツの代入のみを行うシナリオのコードが生成され、作成中のシナリオに追加される。図１０はこの際の処理の流れを示すシーケンス図である。
【００４９】
詳細には、前記同様に、ドラッグアンドドロップをＧＵＩプラットフォーム３が検出して主制御部１５へ通知すると、主制御部１５はドラッグ元のＧＵＩ要素の識別子と種類をＧＵＩプラットフォーム３から取得し、さらにそのＧＵＩ要素の種類から取得すべきコンテンツの種別と取得方法を決定してドラッグ元のＧＵＩ要素のコンテンツをＧＵＩプラットフォーム３から取得する。
【００５０】
そして主制御部１５は、シンボル管理部１１へドロップ先のシンボルの名前、ドラッグ元のＧＵＩ要素の種類及びコンテンツを渡してそのシンボルに関連付けられたデータの書き換えを依頼し、また、シナリオ生成部１３へドロップ先のシンボルの名前、ドラッグ元のＧＵＩ要素の種類及び識別子を渡して当該シンボルに対応するシナリオのコードの生成とシナリオへの追加を依頼する。
【００５１】
シンボル管理部１１は、ドロップ先のシンボルに対応付けられてシンボル管理ＤＢ１２に格納されていた情報を、主制御部１５から受け取った情報で書き換える。
【００５２】
但し、この際、ドロップ先となったシンボルにもともと対応付けられていた要素（もしくはコンテンツ）の種類と、ドラッグ元のＧＵＩ要素（もしくはその要素のコンテンツ）の種類とが、情報の書き換えにおいて互換性を持っている場合にのみ、情報の上書きを行う実装方法も考えられる。
【００５３】
シナリオ生成部１３は、主制御部１５から受け取った情報に基づいてドラッグ元のＧＵＩ要素のコンテンツを取得し、ドロップ先のシンボルに代入するシナリオのコードを生成し、当該生成したコードを、操作記録モードで作成中だったシナリオに追加記録する。
【００５４】
＜シンボル生成の契機となる操作についての補足＞
なお、シンボルの生成を行うだけであれば、ドラッグアンドドロップを行わなくとも、ＡＰウィンドウ２０において情報を取得したいＧＵＩ要素のみを指し示すだけで十分である（上記のような「書き換え」のケースや後述する「情報の設定」のケースとは異なり、変数プールウィンドウ４０内の既存のシンボルの情報が不要であり、必要な情報は、情報の取得対象であるＡＰウィンドウ２０内のＧＵＩ要素に関する情報のみであるため）。そのように実装する場合は、変数プールモードにおいて、ＡＰウィンドウ２０内の任意のＧＵＩ要素をクリック等により指し示すことにより、シンボル生成からシナリオのコード生成までを行う。但し、後述のシンボル利用時の操作や上記の値の書き換え操作との操作感の統一という観点から、ドラッグアンドドロップという操作を契機にしたほうが、より理解し易いと考えられる。
【００５５】
＜シンボルの利用からシナリオの生成まで＞
操作記録モードによりユーザ操作の記録を行っている途中で、それまでに保存された情報（この操作までの間にシンボルとして取得及び保存されているＧＵＩ要素のコンテンツ）を利用する操作を記録したい場合、ユーザは必要に応じてボタン３３の押し下げにより変数プールモードへの切り替えを行い（つまり、既に変数プールモードであればそのまま何も行わず、変数プールモードでなければ変数プールモードへの切り替えを行う）、利用したい情報を保持しているシンボルから、その情報を反映させたい対象ＡＰのＧＵＩ要素へとドラッグアンドドロップを行う。
【００５６】
即ち、変数プールモードにおいて、図１１に示すように、ユーザが入力系ＵＩ１を介して変数プールウィンドウ４０上に表示されたシンボルを対象ＡＰウィンドウ２０上のＧＵＩ要素までドラッグアンドドロップすると、そのドラッグ元のシンボルとドロップ先のＧＵＩ要素との間での情報の反映ができるかどうかをチェック（例えば、文字列の設定については、テキストボックスやコンボボックス等が情報の反映ができるＧＵＩ要素であり、リストボックスやチェックボックス等は情報の反映ができないＧＵＩ要素である。）し、情報の反映が可能であればコンテンツの反映を行うコードが生成されて作成中のシナリオに追加され、同時に、保存されていたドラッグ元のシンボルのコンテンツによってドロップ先のＧＵＩ要素のコンテンツが書き換えられる。図１２はこの際の処理の流れを示すシーケンス図である。
【００５７】
詳細には、前述したドラッグアンドドロップをＧＵＩプラットフォーム３が検出して主制御部１５へ通知すると、主制御部１５はドロップ先のＧＵＩ要素を特定してその識別子と種類（図示例では対象となっている要素がテキストボックスであること）をＧＵＩプラットフォーム３から取得し、さらに、ドラッグ元のシンボルを特定してその名前と種類をシンボル管理部１１及びシンボル管理ＤＢ１２から取得して、両者の種類から情報の反映ができるかどうか互換性をチェックする。互換性のチェックとしては、例えば、同じ種類の情報かどうか、ドラッグ元のシンボルの種類の情報が一般的にドロップ先のＧＵＩ要素のコンテンツの種類の情報へ変換可能かどうか等のチェックが考えられる。
【００５８】
チェックの結果、情報の反映ができないと判定された場合、主制御部１５はこの後の処理を行わない。一方、チェックの結果、情報の反映が可能と判定された場合、主制御部１５はシナリオ生成部１３へドラッグ元のシンボルの名前及びドロップ先のＧＵＩ要素の種類と識別子を渡してコンテンツの反映を行うシナリオのコードの生成とシナリオへの追加を依頼する。
【００５９】
シナリオ生成部１３は、主制御部１５から受け取った情報に基づいてドラッグ元のシンボルの内容でドロップ先のＧＵＩ要素のコンテンツを書き換えるシナリオのコード（例えば、テキストボックスであれば文字列の上書き、チェックボックスであればチェックの有無状態の変更）を生成し、当該生成したコードを、操作記録モードで作成中だったシナリオ（の変数プールモードへの切替直前に記録されたコードの次）に追加記録する。
【００６０】
同時に、主制御部１５はドラッグ元のシンボルを特定してそのコンテンツをシンボル管理部１１及びシンボル管理ＤＢ１２から取得し、取得したコンテンツを、ＧＵＩプラットフォーム３を介して対象ＡＰウィンドウ２０上の実際のドロップ先のＧＵＩ要素のコンテンツに反映（図示例ではテキストボックスの文字列を書き換える）させる。
【００６１】
なお、本発明による機能は、操作記録モード中において１回のみでなく、何度でも起動可能なため、作成中のシナリオにはそれまでに行われた、操作記録モードでの操作の記録に相当するコードだけでなく、厳密にはその時点より前に起動された本発明の機能により生成されたコードも含まれている場合がある。即ち、最終的に生成されるシナリオは、通常の操作記録モードでの記録の部分と、本発明の機能での記録の部分とを時系列的に繋げたものである。
【００６２】
＜操作記録の終了＞
また、図１３に示すように、ユーザが入力系ＵＩ１を介してボタン３２を押し下げると、これがＧＵＩプラットフォーム３を通じて主制御部１５に伝送されて操作の記録処理が終了するが、この際もしくは作成されたシナリオを実行し完了した際、その時点でシンボル管理ＤＢ１２に登録されていた全部又は一部のシンボルの値を、必要に応じてファイルへ出力する等により記録を残しておくことも有益であると考えられる（必須ではない。）。
【００６３】
＜まとめ＞
既存の操作代行システムで実現されていた操作の記録モードに加えて、ここまでで述べたような変数プールモードにおける変数プールウィンドウ４０を通じた作業を適宜行うことで、単純なＧＵＩへの操作に加えて、ＧＵＩ要素の状態に関する情報を取得して利用する処理を交えたシナリオが生成される。
【００６４】
例えば、操作の記録モード中に、図６〜図１２に示すような作業を行って作成したシナリオを実行すると、作業記録時に図６の作業を実施したタイミングで、それぞれ対応しているＧＵＩ要素からの情報取得と一時保存が行われ、作業記録時に 図１１の作業を実施したタイミングで対応するテキストボックスの内容が、前述のように一時保存された値に書き換えられる。
【符号の説明】
【００６５】
１：入力系ＵＩ、２：出力系ＵＩ、３：ＧＵＩプラットフォーム、４：対象ＡＰ、６：シナリオファイル、１０：操作代行システム、１１：シンボル管理部、１２：シンボル管理データベース（ＤＢ）、１３：シナリオ生成部、１４：作成中のシナリオ（の記憶部）、１５：主制御部。
【図１】
2011013768.tif 000003
【図２】
2011013768.tif 000004
【図３】
2011013768.tif 000005
【図４】
2011013768.tif 000006
【図５】
2011013768.tif 000007
【図６】
2011013768.tif 000008
【図７】
2011013768.tif 000009
【図８】
2011013768.tif 000010
【図９】
2011013768.tif 000011
【図１０】
2011013768.tif 000012
【図１１】
2011013768.tif 000013
【図１２】
2011013768.tif 000014
【図１３】
2011013768.tif 000015