(57)【要約】【課題】ユーザの多様な操作に柔軟に対応し、端末に処理を自動実行させる。【解決手段】状態取得部２０１は、ユーザにより特定の操作が行われるたびに、アプリケーション１３２の状態を取得する。差分判定部２０２は、状態取得部２０１によって取得された第１の状態と、第１の状態の直前に状態取得部２０１によって取得された第２の状態と、の間に差分があるか否かを判定する。条件判定部２０３は、差分判定部２０２により差分があると判定された場合、第１の状態があらかじめ設定された特定の条件を満たしているか否かを判定する。イベント生成部２０４は、条件判定部２０３により第１の状態が特定の条件を満たしていると判定された場合、特定の条件に対応した特定のイベントを生成する。自動実行部１３４は、イベント生成部２０４によって生成されたイベントに基づいて、アプリケーション１３２に所定の処理を自動的に実行させる。【選択図】図１
2018067267.tif 000002
【特許請求の範囲】
【請求項１】
表示部にＧＵＩを表示させるアプリケーションを実行する実行部と、
ユーザにより特定の操作が行われるたびに、前記アプリケーションの状態を取得する状態取得部と、
前記状態取得部によって前記アプリケーションの第１の状態が取得された場合、前記第１の状態と、前記第１の状態の直前に前記状態取得部によって取得された第２の状態と、の間に差分があるか否かを判定する差分判定部と、
前記差分判定部により差分があると判定された場合、前記第１の状態があらかじめ設定された特定の条件を満たしているか否かを判定する条件判定部と、
前記条件判定部により前記第１の状態が前記特定の条件を満たしていると判定された場合、前記特定の条件に対応した特定のイベントを生成するイベント生成部と、
前記イベント生成部によって生成されたイベントに基づいて、前記アプリケーションに所定の処理を実行させる自動実行部と、
を有することを特徴とする端末装置。
【請求項２】
前記状態取得部は、マウスクリック又はキーボードの押下が行われるたびに、前記表示部に表示されたＧＵＩ部品に対して入力された値を前記アプリケーションの状態として取得することを特徴とする請求項１に記載の端末装置。
【請求項３】
任意に設定された前記特定の条件、及び任意に設定された前記特定のイベントを対応付けたテーブルを記憶する条件記憶部をさらに有し、
前記条件判定部は、前記条件記憶部から取得した前記特定の条件を用いて判定を行い、
前記イベント生成部は、前記条件記憶部から取得した前記特定のイベントを生成することを特徴とする請求項１又は２に記載の端末装置。
【請求項４】
ＧＵＩを表示するアプリケーションを実行する実行部を有する端末装置で実行されるイベント生成方法であって、
ユーザにより特定の操作が行われるたびに、前記アプリケーションの状態を取得する状態取得工程と、
前記状態取得工程によって前記アプリケーションの第１の状態が取得された場合、前記第１の状態と、前記第１の状態の直前に前記状態取得工程によって取得された第２の状態と、の間に差分があるか否かを判定する差分判定工程と、
前記差分判定工程により差分があると判定された場合、前記第１の状態があらかじめ設定された特定の条件を満たしているか否かを判定する条件判定工程と、
前記条件判定工程により前記第１の状態が前記特定の条件を満たしていると判定された場合、前記特定の条件に対応した特定のイベントを生成するイベント生成工程と、
前記イベント生成工程によって生成されたイベントに基づいて、前記アプリケーションに所定の処理を実行させる自動実行工程と、
を含んだことを特徴とするイベント生成方法。
【請求項５】
コンピュータを、請求項１から３のいずれか１項に記載の端末装置として機能させるためのイベント生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、イベント生成方法及びイベント生成方法プログラムに関する。
【背景技術】
【０００２】
端末に処理を自動実行させる技術が知られている。例えば、ＯＳ（Operating  System）やアプリケーションにおいて、あらかじめ用意されたイベントが発生した場合に、アプリケーションを自動起動させる技術が知られている（例えば、非特許文献１又は２を参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】藤田  幸久，  櫻井  隆雄，  直野  健，  「PC操作支援エージェントによるアプリケーションの操作性改善」，  信学会論文誌D，  Vol.J95-D,  No.12,  pp.2059-2071,  2012
【非特許文献２】藤田  幸久，  櫻井  隆雄，  直野  健，  「PC操作支援エージェント“ＢＭ２”によるアプリケーションの操作性改善」，  HAIシンポジウム2010，  3B-2
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の端末に処理を自動実行させる技術には、ユーザの多様な操作に柔軟に対応することができない場合があるという問題があった。例えば、システム上でイベントとして定義されていない操作がユーザによって行われた場合、従来の技術では、当該操作に対応した処理を端末に自動実行させることは困難である。
【課題を解決するための手段】
【０００５】
本発明の端末装置は、表示部にＧＵＩを表示させるアプリケーションを実行する実行部と、ユーザにより特定の操作が行われるたびに、前記アプリケーションの状態を取得する状態取得部と、前記状態取得部によって前記アプリケーションの第１の状態が取得された場合、前記第１の状態と、前記第１の状態の直前に前記状態取得部によって取得された第２の状態と、の間に差分があるか否かを判定する差分判定部と、前記差分判定部により差分があると判定された場合、前記第１の状態があらかじめ設定された特定の条件を満たしているか否かを判定する条件判定部と、前記条件判定部により前記第１の状態が前記特定の条件を満たしていると判定された場合、前記特定の条件に対応した特定のイベントを生成するイベント生成部と、前記イベント生成部によって生成されたイベントに基づいて、前記アプリケーションに所定の処理を実行させる自動実行部と、を有することを特徴とする。
【０００６】
本発明のイベント生成方法は、ＧＵＩを表示するアプリケーションを実行する実行部を有する端末装置で実行されるイベント生成方法であって、ユーザにより特定の操作が行われるたびに、前記アプリケーションの状態を取得する状態取得工程と、前記状態取得工程によって前記アプリケーションの第１の状態が取得された場合、前記第１の状態と、前記第１の状態の直前に前記状態取得工程によって取得された第２の状態と、の間に差分があるか否かを判定する差分判定工程と、前記差分判定工程により差分があると判定された場合、前記第１の状態があらかじめ設定された特定の条件を満たしているか否かを判定する条件判定工程と、前記条件判定工程により前記第１の状態が前記特定の条件を満たしていると判定された場合、前記特定の条件に対応した特定のイベントを生成するイベント生成工程と、前記イベント生成工程によって生成されたイベントに基づいて、前記アプリケーションに所定の処理を実行させる自動実行工程と、を含んだことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、端末に処理を自動実行させる際に、ユーザの多様な操作に柔軟に対応することができるようになる。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態に係る端末装置の構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る仮想イベントの一例を示す図である。
【図３】図３は、第１の実施形態に係る端末装置のＧＵＩの一例を示す図である。
【図４】図４は、第１の実施形態に係る仮想イベントの一例を示す図である。
【図５】図５は、第１の実施形態に係る端末装置のＧＵＩの一例を示す図である。
【図６】図６は、第１の実施形態に係る仮想イベントの一覧の一例を示す図である。
【図７】図７は、第１の実施形態に係る端末装置による自動実行について説明するための図である。
【図８】図８は、第１の実施形態に係る端末装置による自動実行について説明するための図である。
【図９】図９は、第１の実施形態に係る端末装置の処理の流れを示すフローチャートである。
【図１０】図１０は、第１の実施形態に係る端末装置の処理の流れを示すフローチャートである。
【図１１】図１１は、第１の実施形態に係る端末装置の処理の流れを示すフローチャートである。
【図１２】図１２は、プログラムが実行されることにより端末装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願に係る端末装置、イベント生成方法及びイベント生成プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【００１０】
［第１の実施形態の構成］
まず、図１を用いて、第１の実施形態に係る端末装置の構成について説明する。図１は、第１の実施形態に係る端末装置の構成の一例を示す図である。端末装置１０は、例えばパーソナルコンピュータである。図１に示すように、端末装置１０は、表示部１１、操作部１２、制御部１３及び記憶部１４を有する。表示部１１は、例えばディスプレイ等の表示装置である。また、操作部１２は、例えばマウスやキーボード等の入力装置である。
【００１１】
制御部１３は、端末装置１０全体を制御する。制御部１３は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１３は、各種のプログラムが動作することにより各種の処理部として機能する。
【００１２】
制御部１３は、ＯＳ１３１、アプリケーション１３２、仮想イベント生成部１３３及び自動実行部１３４を有する。アプリケーション１３２は、表示部１１にＧＵＩ（Graphical  User  Interface）を表示させる。アプリケーション１３２は、例えば、電子メールクライアント、ウェブブラウザ、ファイルマネージャ、表計算ソフト等である。なお、アプリケーション１３２の数は、図中の数に限定されず、任意の数とすることができる。
【００１３】
仮想イベント生成部１３３は、ユーザによる操作が行われた際に、所定の条件が満たされている場合、イベントを生成する。以降、仮想イベント生成部１３３によって生成されるイベントを仮想イベントとよぶ。仮想イベントが生成されると、自動実行部１３４は、ＯＳ１３１又はアプリケーション１３２に、生成された仮想イベントに対応した処理を実行させる。
【００１４】
仮想イベント生成部１３３は、状態取得部２０１、差分判定部２０２、条件判定部２０３及びイベント生成部２０４を有する。また、記憶部１４は、状態記憶部１４１及び条件記憶部１４２を有する。
【００１５】
状態取得部２０１は、ユーザにより特定の操作が行われるたびに、アプリケーションの状態を取得する。状態取得部２０１は、例えば、マウスクリック又はキーボードの押下が行われるたびに、各アプリケーションから状態を直接取得してもよいし、表示部１１に表示されたＧＵＩ部品に対して入力された値をアプリケーションの状態として取得してもよい。このとき、状態取得部２０１は、例えば、ＯＳ１３１から、マウスクリック又はキーボードの押下イベントを受け取る。そして、状態取得部２０１は、例えば、ＧＵＩ部品に入力された値として、テキストボックスの文字列、チェックボックスのＯＮ／ＯＦＦを示す値、リストボックスの選択された値等を取得する。
【００１６】
状態取得部２０１は、取得したアプリケーションの状態を差分判定部２０２に送信するとともに、状態記憶部１４１に記憶させる。また、状態取得部２０１は、ＯＳ１３１から受け取ったイベントを状態記憶部１４１に記憶させる。
【００１７】
差分判定部２０２は、状態取得部２０１によってアプリケーションの第１の状態が取得された場合、第１の状態と、第１の状態の直前に状態取得部２０１によって取得された第２の状態と、の間に差分があるか否かを判定する。具体的には、差分判定部２０２は、状態取得部２０１から受け取ったアプリケーションの状態を第１の状態とし、状態記憶部１４１に記憶されているアプリケーションの状態のうち、第１の状態を除き最後に格納されたものを第２の状態とする。
【００１８】
通常、ＧＵＩオブジェクトは、種別ごとに通知可能なイベントが決まっている。また、通知機能を持たないＧＵＩオブジェクトも多い。そこで、本実施形態では、差分判定部２０２によってＧＵＩの状態の差分の有無を判定することで、アプリケーションの状態変化をイベントとして取得できるようにしている。
【００１９】
条件判定部２０３は、差分判定部２０２により差分があると判定された場合、第１の状態があらかじめ設定された特定の条件を満たしているか否かを判定する。条件記憶部１４２は、条件判定部２０３が判定に用いる条件のリストを記憶している。
【００２０】
また、条件記憶部１４２は、任意に設定された特定の条件、及び任意に設定された特定のイベントを対応付けたテーブルを、条件のリストとして記憶していてもよい。このとき、条件判定部２０３は、条件記憶部１４２から取得した特定の条件を用いて判定を行う。また、イベント生成部２０４は、条件記憶部１４２から取得した特定のイベントを生成する。
【００２１】
なお、「イベントを生成する」とは、イベントを発生させることであり、イベント生成部２０４は、仮想イベント生成部１３３に含まれない自動化ツール等によっても解釈可能な形式でイベントを発生させる。
【００２２】
また、イベント生成部２０４は、条件判定部２０３により第１の状態が特定の条件を満たしていると判定された場合、特定の条件に対応した特定のイベントを生成する。また、自動実行部１３４は、仮想イベントを解釈しアプリケーション１３２に処理を実行させる自動化ツールとして機能する。
【００２３】
図２〜５を用いて仮想イベントについて説明する。まず、図２及び３を用いて、仮想イベント「詳細設定開始」について説明する。図２は、第１の実施形態に係る仮想イベントの一例を示す図である。また、図３は、第１の実施形態に係る端末装置のＧＵＩの一例を示す図である。
【００２４】
図３に示すように、ＧＵＩであるウィンドウ３０１は、チェックボックス３０２を有する。仮想イベント「詳細設定開始」は、ウィンドウ３０１のチェックボックス３０２がＯＮになった場合に生成される。
【００２５】
まず、状態取得部２０１は、ＯＳ１３１から、「Window1.Checkbox1  clicked」、つまり、「ウィンドウ３０１のチェックボックス３０２がクリックされた」というイベントを受け取る。そして、状態取得部２０１は、ウィンドウ３０１を含むＧＵＩオブジェクトの状態を取得し、取得した状態を差分判定部２０２に送信するとともに、状態記憶部１４１に記憶させる。
【００２６】
ここで、差分判定部２０２は、状態取得部２０１から受け取った各アプリケーションの状態と、状態記憶部１４１に記憶されている各アプリケーションの状態のうち、状態取得部２０１から受け取った各アプリケーションの状態を除く最新の状態と、を比較し、状態に差分が生じているアプリケーションを特定する。ここで、状態に差分が生じているアプリケーションは、マウスクリック又はキーボードの押下イベントの対象となったアプリケーションであると推測することができる。
【００２７】
ウィンドウ３０１の状態に差分が生じていた場合、条件判定部２０３は、ウィンドウ３０１の状態が、仮想イベント「詳細設定開始」を生成する条件を満たしているか否かを判定する。図２に示すように、「Window1.Checkbox1  clicked」というシステムイベントが発生したうえで、「Window1.title  ==  ‘設定’」、「Window1.Checkbox1.text  =~  ‘高度な設定’」、「Window1.Checkbox1.previousValue  ==  0」という条件が満たされていれば、条件判定部２０３は、ウィンドウ３０１の状態が、仮想イベント「詳細設定開始」を生成する条件を満たしていると判定する。
【００２８】
なお、条件「Window1.title  ==  ‘設定’」は、ウィンドウ３０１のタイトルが「設定」である場合に満たされる。また、条件「Window1.Checkbox1.text  =~  ‘高度な設定’」は、チェックボックス３０２のテキストに「高度な設定」という文字列が含まれている場合に満たされる。また、「Window1.Checkbox1.previousValue  ==  0」は、チェックボックス３０２の前値が０であった場合、すなわち未チェックであった場合に満たされる。
【００２９】
条件判定部２０３によって、ウィンドウ３０１の状態が、仮想イベント「詳細設定開始」を生成する条件を満たしていると判定された場合、イベント生成部２０４は、仮想イベント「詳細設定開始」を生成する。また、仮想イベント「詳細設定開始」が生成されると、自動実行部１３４は、例えば、詳細設定を行うためのアプリケーション１３２を起動する。
【００３０】
次に、図４及び５を用いて、仮想イベント「設備登録」について説明する。図４は、第１の実施形態に係る仮想イベントの一例を示す図である。また、図５は、第１の実施形態に係る端末装置のＧＵＩの一例を示す図である。
【００３１】
図５に示すように、ＧＵＩであるウィンドウ４０１は、ボタン４０２を有する。また、ウィンドウ４０１は、ウィンドウ４０３から呼び出される。また、仮想イベント「設備登録」は、ボタン４０２が押された場合に生成される。
【００３２】
ここで、ウィンドウ４０１のようなダイアログは、システムの様々な場所で使いまわされることが多い。ウィンドウ４０１のようなダイアログは、例えば不可逆な動作を実施する直前に表示される。このため、同じダイアログに対する操作であっても、コンテキストによって異なる仮想イベントが生成されることが望ましい。
【００３３】
まず、状態取得部２０１は、ＯＳ１３１から、「Window1.Button1  clicked」、つまり、「ウィンドウ４０１のボタン４０２がクリックされた」というイベントを受け取る。そして、状態取得部２０１は、ウィンドウ４０１を含むＧＵＩオブジェクトの状態を取得し、取得した状態を差分判定部２０２に送信するとともに、状態記憶部１４１に記憶させる。そして、差分判定部２０２は、仮想イベント「詳細設定開始」の場合と同様に、状態に差分が生じているアプリケーションを特定する。
【００３４】
ウィンドウ４０１の状態に差分が生じていた場合、条件判定部２０３は、ウィンドウ４０１の状態が、仮想イベント「設備登録」を生成する条件を満たしているか否かを判定する。図４に示すように、「Window1.Button1  clicked」というシステムイベントが発生したうえで、「Window1.title  ==  ‘確認’」、「Window1.Button1.text  =~  ‘はい’」、「Window2.title  ==  ‘新規設備登録’」という条件が満たされていれば、条件判定部２０３は、ウィンドウ４０１の状態が、仮想イベント「設備登録」を生成する条件を満たしていると判定する。
【００３５】
なお、条件「Window1.title  ==  ‘確認’」は、ウィンドウ４０１のタイトルが「確認」である場合に満たされる。また、条件「Window1.Button1.text  =~  ‘はい’」は、ボタン４０２のテキストに「はい」という文字列が含まれている場合に満たされる。また、「Window2.title  ==  ‘新規設備登録’」は、ウィンドウ４０１の呼出し元のウィンドウ、すなわちウィンドウ４０３のタイトルが「新規設備登録」であった場合に満たされる。
【００３６】
条件判定部２０３によって、ウィンドウ４０１の状態が、仮想イベント「設備登録」を生成する条件を満たしていると判定された場合、イベント生成部２０４は、仮想イベント「設備登録」を生成する。また、仮想イベント「設備登録」が生成されると、自動実行部１３４は、例えば、設備登録を行うためのアプリケーション１３２を起動する。
【００３７】
仮想イベント生成部１３３は、前述の「詳細設定開始」及び「設備登録」以外にも、図６に示すような様々な仮想イベントを生成することが考えられる。図６は、第１の実施形態に係る仮想イベントの一覧の一例を示す図である。
【００３８】
図６に示す仮想イベントの一覧は、例えば、ユーザが出張に関するメールを受け取った際に、端末装置１０上で出張に関する操作を行う場合を想定したものである。図６に示すような仮想イベントを生成することで、端末装置１０は、出張先の住所検索、出張に関するファイルの作成といった処理を、ユーザの操作にあわせて自動的に実行することが可能となる。また、図６のＮｏ．１〜４に示すように、仮想イベント生成部１３３は、仮想イベントを生成条件としてさらに仮想イベントを生成してもよい。
【００３９】
例えば、図６のＮｏ．１の仮想イベント「メールオープン」は、マウスクリック又はキーボードの押下が発生し、アプリケーション１３２の１つである電子メールクライアントの状態に差分が生じていた場合に、「電子メールクライアントが最前面ウィンドウ」、「本文が表示されている」、「本文内容がイベント発生前と異なっている」という条件が満たされることによって生成される。
【００４０】
また、図６のＮｏ．２の仮想イベント「メール読了」は、仮想イベント「メールオープン」が発生し、「本文を表示して一定時間経過」という条件が満たされた場合に生成される。
【００４１】
また、図６のＮｏ．３の仮想イベント「出張先通達」は、仮想イベント「メール読了」が発生し、「本文に住所あり」という条件が満たされた場合に生成される。さらに、仮想イベント「出張先通達」が生成された場合、自動実行部１３４は、アプリケーション１３２の１つであるウェブブサウザに、ウェブ上のマップから住所検索を実行させる。
【００４２】
また、図６のＮｏ．４の仮想イベント「書式指定」は、仮想イベント「メール読了」が発生し、「本文に共有ファイルサーバのｐａｔｈあり」という条件が満たされた場合に生成される。さらに、仮想イベント「書式指定」が生成された場合、自動実行部１３４は、アプリケーション１３２の１つであるファイルマネージャに、共有ファイルサーバのｐａｔｈで指定されるフォルダを開くという処理を実行させる。
【００４３】
また、図６のＮｏ．５の仮想イベント「書式ファイルコピー」は、ファイルコピーが発生し、ファイルマネージャの状態に差分が生じていた場合に、「デスクトップへのファイルコピー」、「ファイル名に“日帰旅費”を含む」という条件が満たされることによって生成される。さらに、仮想イベント「書式ファイルコピー」が生成された場合、自動実行部１３４は、ファイルマネージャに、コピーされたファイルのファイル名末尾に本日の日付を追加させる。なお、ファイルがデスクトップにコピーされたか否か、といったファイルに関する状態は、ＧＵＩから取得できない場合もあるため、状態取得部２０１は、ファイルシステムからファイルに関する状態を取得してもよい。
【００４４】
また、図６のＮｏ．６の仮想イベント「セル内容変更」は、マウスクリック又はキーボードの押下が発生し、表計算ソフトの状態に差分が生じていた場合に、「表計算ソフトが最前面ウィンドウ」、「フォーカスの位置が変化」、「イベント前にフォーカスがあった位置のセルの値が変化」という条件が満たされることによって生成される。
【００４５】
また、図６のＮｏ．７の仮想イベント「行き先確定」は、仮想イベント「セル内容変更」が発生し、「ファイル名に“日帰旅費”を含む」、「変更セルが目的地指定セル」という条件が満たされた場合に生成される。さらに、仮想イベント「行き先確定」が生成された場合、自動実行部１３４は、ウェブブラウザに、経路検索サイトＡで経路検索を実行させる。
【００４６】
また、図６のＮｏ．８の仮想イベント「経路確定」は、マウスクリック又はキーボードの押下が発生し、ウェブブラウザの状態に差分が生じていた場合に、「ウェブブラウザが最前面ウィンドウ」、「ＵＲＬが経路検索サイトＡのものである」、「選択された経路がイベント発生前と異なっている」という条件が満たされることによって生成される。さらに、仮想イベント「経路確定」が生成された場合、自動実行部１３４は、表計算ソフトに、選択された経路情報と料金を日帰旅費ファイルに転記させる。ここで、日帰旅費ファイルとは、仮想イベント「行き先確定」が発生した表計算ソフトの文書である。
【００４７】
ここで、自動実行が行われている際の表示部１１に表示される画面の例を図７及び８を用いて説明する。図７及び８は、第１の実施形態に係る端末装置による自動実行について説明するための図である。まず、図７は、「メールオープン」、「メール読了」、「出張先通達」、「書式設定」の順で仮想イベントが生成され、自動実行部１３４による処理が行われた際に表示部１１に表示される画面を示している。図７に示すように、電子メールクライアント１３２ａには、住所として「Ａ県Ｂ市Ｃ１−７−１」が表示されており、ウェブブラウザ１３２ｂは、ウェブ上のマップから当該住所を検索している。また、電子メールクライアント１３２ａには、共有ファイルサーバのｐａｔｈとして「\\サーバ1\００＿申請\０３＿旅費」が表示されており、ファイルマネージャ１３２ｃは、当該ｐａｔｈで指定されたフォルダを開いている。
【００４８】
また、図８は、図７の状態からさらに、「書式ファイルコピー」、「セル内容変更」、「行き先確定」の順で仮想イベントが生成され、自動実行部１３４による処理が行われた際に表示部１１に表示される画面を示している。表計算ソフト１３２ｄには、目的地指定セルである出張先セルに値が設定されており、ウェブブラウザ１３２ｂは、当該値を目的地とする経路を経路検索サイトＡで検索している。この後、生成条件が満たされ、仮想イベント「経路確定」が生成されると、表計算ソフト１３２ｄの経路入力欄に、ウェブブラウザ１３２ｂ上で選択された経路が入力される。
【００４９】
［第１の実施形態の処理］
図９を用いて、端末装置１０の処理の流れについて説明する。図９は、第１の実施形態に係る端末装置の処理の流れを示すフローチャートである。図９に示すように、まず、端末装置１０の状態取得部２０１は、ユーザによる特定の操作が行われるまで待機する（ステップＳ１０１、Ｎｏ）。状態取得部２０１は、ユーザによる特定の操作が行われた場合（ステップＳ１０１、Ｙｅｓ）、アプリケーションの状態を取得する（ステップＳ１０２）。
【００５０】
差分判定部２０２は、状態取得部２０１によって取得されたアプリケーションの状態と、状態記憶部１４１に記憶された直前のアプリケーションの状態との間に差分があるか否かを判定する（ステップＳ１０３）。差分判定部２０２によって差分があると判定されなかった場合（ステップＳ１０３、Ｎｏ）、端末装置１０は処理を終了する。
【００５１】
差分判定部２０２によって差分があると判定された場合（ステップＳ１０３、Ｙｅｓ）、状態取得部２０１は、取得したアプリケーションの状態を状態記憶部１４１に格納する（ステップＳ１０４）。なお、状態取得部２０１がアプリケーションの状態を状態記憶部１４１に格納するタイミングは、差分判定部２０２による差分判定の前であってもよい。
【００５２】
次に、条件判定部２０３は、仮想イベントを生成する条件が満たされているか否かを判定する（ステップＳ１０５）。条件判定部２０３によって条件が満たされていると判定されなかった場合（ステップＳ１０５、Ｎｏ）、端末装置１０は処理を終了する。また、条件判定部２０３によって条件が満たされていると判定された場合（ステップＳ１０５、Ｙｅｓ）、イベント生成部２０４は、仮想イベントを生成する（ステップＳ１０６）。このとき、仮想イベントに対応した処理が設定されている場合、自動実行部１３４は、処理を自動実行させる（ステップＳ１０７）。
【００５３】
また、図１０を用いて、仮想イベント「セル値変化」を生成する場合の例について説明する。図１０は、第１の実施形態に係る端末装置の処理の流れを示すフローチャートである。表計算ソフトの文書が編集中でない場合（ステップＳ２０１、Ｎｏ）、端末装置１０は仮想イベント「セル値変化」を生成しないため、処理を終了する。表計算ソフトの文書が編集中の場合（ステップＳ２０１、Ｙｅｓ）、状態取得部２０１は、フォーカスされているセルの座標を取得する（ステップＳ２０２）。
【００５４】
ここで、差分判定部２０２は、状態取得部２０１によって取得されたセルの座標が、前回取得されたセルの座標と同じであるか否かを判定する（ステップＳ２０３）。差分判定部２０２によって、状態取得部２０１によって取得されたセルの座標が、前回取得されたセルの座標と同じであると判定された場合（ステップＳ２０３、Ｙｅｓ）、端末装置１０は処理を終了する。
【００５５】
また、差分判定部２０２によって、状態取得部２０１によって取得されたセルの座標が、前回取得されたセルの座標と同じでないと判定された場合（ステップＳ２０３、Ｎｏ）、状態取得部２０１は、フォーカスされているセルの座標と内容を状態記憶部１４１に記憶させる（ステップＳ２０４）。このように、差分判定部２０２は、アプリケーションの状態の一例であるフォーカスされているセルの座標に基づいて差分の有無を判定することができる。
【００５６】
ここで、状態取得部２０１は、さらに、前回の座標の内容（現在値）を取得する（ステップＳ２０５）。ここで、前回の座標とは、フォーカスが移動する前の座標である。そして、条件判定部２０３は、フォーカスが移動する前のセルの、状態記憶部１４１に記憶されている内容と、現在値とを比較し、一致した場合（ステップＳ２０６、Ｙｅｓ）は処理を終了する。また、一致しなかった場合（ステップＳ２０６、Ｎｏ）、イベント生成部２０４は、仮想イベント「セル値変化」を生成する（ステップＳ２０７）。この場合、自動実行部１３４は、例えば、ウェブブラウザを起動させ、変化したセルの内容を検索サイトで検索した結果を所定のセルに書き込むといった処理を実行させることができる。
【００５７】
図１１を用いて、仮想イベント「チェックボックスＯＮ」及び「チェックボックスＯＦＦ」を生成する場合の例について説明する。図１１は、第１の実施形態に係る端末装置の処理の流れを示すフローチャートである。システムイベントであるマウスクリックイベントが発生した場合に、状態取得部２０１は、クリック位置にあるＧＵＩの状態を取得する。このとき、差分判定部２０２は、クリック位置にあるのがチェックボックスである場合（ステップＳ３０１、Ｙｅｓ）、又はフォーカスされているのがチェックボックスである場合（ステップＳ３０２、Ｙｅｓ）、当該チェックボックスのＯＮ／ＯＦＦを示す値が、状態記憶部１４１に記憶されている値と一致しているか否かを判定する（ステップＳ３０３）。
【００５８】
なお、ステップＳ３０１及びＳ３０２のいずれの条件も満たされていない場合、端末装置１０は処理を終了する。また、差分判定部２０２によって、チェックボックスのＯＮ／ＯＦＦを示す値が、状態記憶部１４１に記憶されている値と一致していると判定された場合（ステップＳ３０３、Ｙｅｓ）、端末装置１０は処理を終了する。
【００５９】
差分判定部２０２によって、チェックボックスのＯＮ／ＯＦＦを示す値が、状態記憶部１４１に記憶されている値と一致していないと判定された場合（ステップＳ３０３、Ｎｏ）、状態取得部２０１は、取得したチェックボックスのＯＮ／ＯＦＦを示す値を状態記憶部１４１に記憶させる（ステップＳ３０４）。
【００６０】
条件判定部２０３は、チェックボックスの現在値がＯＮを示す値であるか否かを判定する（ステップＳ３０５）。条件判定部２０３によってチェックボックスの現在値がＯＮを示す値であると判定された場合（ステップＳ３０５、Ｙｅｓ）、イベント生成部２０４は、仮想イベント「チェックボックスＯＮ」を生成する（ステップＳ３０６）。また、条件判定部２０３によってチェックボックスの現在値がＯＮを示す値でないと判定された場合（ステップＳ３０５、Ｎｏ）、イベント生成部２０４は、仮想イベント「チェックボックスＯＦＦ」を生成する（ステップＳ３０６）。
【００６１】
［第１の実施形態の効果］
制御部１３は、表示部１１にＧＵＩを表示させるアプリケーション１３２を実行する。また、状態取得部２０１は、ユーザにより特定の操作が行われるたびに、アプリケーションの状態を取得する。また、差分判定部２０２は、状態取得部２０１によってアプリケーションの第１の状態が取得された場合、第１の状態と、第１の状態の直前に状態取得部２０１によって取得された第２の状態と、の間に差分があるか否かを判定する。
【００６２】
条件判定部２０３は、差分判定部２０２により差分があると判定された場合、第１の状態があらかじめ設定された特定の条件を満たしているか否かを判定する。また、イベント生成部２０４は、条件判定部２０３により第１の状態が特定の条件を満たしていると判定された場合、特定の条件に対応した特定のイベントを生成する。また、自動実行部１３４は、イベント生成部２０４によって生成されたイベントに基づいて、アプリケーション１３２に所定の処理を自動的に実行させる。
【００６３】
これにより、ユーザの操作をシステムイベントとして取得することができない場合であっても、仮想イベントとして定義しておくことで、当該ユーザの操作に基づく処理を端末に自動的に実行させることが可能となる。このように、本実施形態によれば、端末に処理を自動実行させる際に、ユーザの多様な操作に柔軟に対応することができるようになる。
【００６４】
状態取得部２０１は、マウスクリック又はキーボードの押下が行われるたびに、表示部１１に表示されたＧＵＩ部品に対して入力された値をアプリケーションの状態として取得するようにしてもよい。特にパーソナルコンピュータにおいて、ユーザの操作はマウスクリック又はキーボードの押下による値の入力である場合が多いので、マウスクリック又はキーボードの押下をトリガとして仮想イベントを生成する処理を行うことで、多くの操作に対応することができる。
【００６５】
条件記憶部１４２は、任意に設定された特定の条件、及び任意に設定された特定のイベントを対応付けたテーブルを記憶する。このとき、条件判定部２０３は、条件記憶部１４２から取得した特定の条件を用いて判定を行う。また、イベント生成部２０４は、条件記憶部１４２から取得した特定のイベントを生成する。これにより、任意の条件及びイベントをあらかじめ設定しておくことができるため、ユーザの多様な操作に対応した多様なイベントを生成することができるようになる。
【００６６】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６７】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６８】
［プログラム］
一実施形態として、端末装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の仮想イベント生成を実行する仮想イベント生成プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の仮想イベント生成プログラムを情報処理装置に実行させることにより、情報処理装置を端末装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００６９】
また、端末装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の仮想イベント生成に関するサービスを提供する仮想イベント生成サーバ装置として実装することもできる。例えば、仮想イベント生成サーバ装置は、システムイベント及びアプリケーションの状態を入力とし、仮想イベントを出力とする仮想イベント生成サービスを提供するサーバ装置として実装される。この場合、仮想イベント生成サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の仮想イベント生成に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００７０】
図１２は、プログラムが実行されることにより端末装置が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００７１】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００７２】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、端末装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、端末装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００７３】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００７４】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００７５】
１０  端末装置
１１  表示部
１２  操作部
１３  制御部
１４  記憶部
１３１  ＯＳ
１３２  アプリケーション
１３２ａ  電子メールクライアント
１３２ｂ  ウェブブラウザ
１３２ｃ  ファイルマネージャ
１３２ｄ  表計算ソフト
１３３  仮想イベント生成部
１３４  自動実行部
１４１  状態記憶部
１４２  条件記憶部
２０１  状態取得部
２０２  差分判定部
２０３  条件判定部
２０４  イベント生成部
３０１、４０１、４０３  ウィンドウ
３０２  チェックボックス
４０２  ボタン
【図１】
2018067267.tif 000003
【図２】
2018067267.tif 000004
【図３】
2018067267.tif 000005
【図４】
2018067267.tif 000006
【図５】
2018067267.tif 000007
【図６】
2018067267.tif 000008
【図７】
2018067267.tif 000009
【図８】
2018067267.tif 000010
【図９】
2018067267.tif 000011
【図１０】
2018067267.tif 000012
【図１１】
2018067267.tif 000013
【図１２】
2018067267.tif 000014