(57)【特許請求の範囲】
【請求項１】
表示画面に対する入力を制御する入力制御方法であって、コンピュータが、
第１のプログラムの実行により生成され画面に表示されるウィンドウの情報を、第２のプログラムの実行により取得し、
前記第２のプログラムの実行により、データ記憶部に記憶された入力制御の対象とする対象ウィンドウを示す対象ウィンドウ情報に基づいて、取得した前記ウィンドウの情報が入力制御の対象とする対象ウィンドウに該当することを検出し、
前記第２のプログラムの実行により、前記データ記憶部に記憶された、前記対象ウィンドウのサイズに対応する高透明性の領域と前記対象ウィンドウに備えられた入力用の構成要素のうち入力可能とする構成要素の配置位置に発生するイベントを透過可能な穴あけ領域とが指定されたプレートウィンドウを定義するプレート情報に基づいて、前記対象ウィンドウに該当すると判定された前記ウィンドウに対応するプレートウィンドウを作成し、
前記第２のプログラムの実行により、作成した前記プレートウィンドウを、検出した前記対象ウィンドウに該当すると判定された前記ウィンドウの上に配置して表示する処理を、実行する
ことを特徴とする入力制御方法。
【請求項２】
前記コンピュータが、
前記第２のプログラムの実行により、検出した前記対象ウィンドウに該当すると判定された前記ウィンドウにスクロール操作領域が設けられているかを判定し、
前記第２のプログラムの実行により前記プレートウィンドウを作成する処理において、判定した前記スクロール操作領域を除外したサイズのプレートウィンドウを作成し、
前記第２のプログラムの実行により、前記スクロール操作領域を除外したプレートウィンドウが上に配置されて表示された前記ウィンドウの上でスクロール操作を検出し、検出した前記スクロール操作のスクロール量に基づいて表示された前記プレートウィンドウの表示開始位置を移動して表示する処理を、実行する
ことを特徴とする請求項１に記載の入力制御方法。
【請求項３】
前記コンピュータが、
前記第２のプログラムの実行により前記プレートウィンドウを作成する処理において、前記プレートウィンドウに、文字列またはイメージを表示するコメント表示領域を設定する処理を、実行する
ことを特徴とする請求項１または請求項２に記載の入力制御方法。
【請求項４】
前記穴あけ領域が、円状または矩形または多角形またはこれらの任意の組み合わせの形状の領域である
ことを特徴とする請求項１ないし請求項３に記載の入力制御方法。
【請求項５】
表示画面に対する入力を制御する入力制御プログラムであって、コンピュータに、
第１のプログラムの実行により生成され画面に表示されるウィンドウの情報を取得し、
データ記憶部に記憶された入力制御の対象とする対象ウィンドウを示す対象ウィンドウ情報に基づいて、取得した前記ウィンドウの情報が入力制御の対象とする対象ウィンドウに該当することを検出し、
前記データ記憶部に記憶された、前記対象ウィンドウのサイズに対応する高透明性の領域と前記対象ウィンドウに備えられた入力用の構成要素のうち入力可能とする構成要素の配置位置に発生するイベントを透過可能な穴あけ領域とが指定されたプレートウィンドウを定義するプレート情報に基づいて、前記対象ウィンドウに該当すると判定された前記ウィンドウに対応するプレートウィンドウを作成し、
作成した前記プレートウィンドウを、検出した前記対象ウィンドウに該当すると判定された前記ウィンドウの上に配置して表示する処理を、実行させる
ための入力制御プログラム。
【請求項６】
表示画面に対する入力を制御する入力制御装置であって、
入力制御の対象とする対象ウィンドウを示す対象ウィンドウ情報と、前記対象ウィンドウのサイズに対応する高透明性の領域と前記対象ウィンドウに備えられた入力用の構成要素のうち入力可能とする構成要素の配置位置に発生するイベントを透過可能な穴あけ領域とが指定されたプレートウィンドウを定義するプレート情報とを記憶するデータ記憶部と、
プログラムの実行により生成され画面に表示されるウィンドウの情報を取得し、前記データ記憶部に記憶された前記対象ウィンドウ情報に基づいて、取得した前記ウィンドウの情報が入力制御の対象とする対象ウィンドウに該当することを検出する対象ウィンドウ検出部と、
前記データ記憶部に記憶された前記プレート情報に基づいて、前記対象ウィンドウに該当すると判定された前記ウィンドウに対応するプレートウィンドウを作成し、作成した前記プレートウィンドウを、検出した前記対象ウィンドウに該当すると判定された前記ウィンドウの上に配置して表示するプレート操作部とを備える
ことを特徴とする入力制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウィンドウ内に配置された入力領域への入力を制御する入力制御方法、プログラム、および入力制御装置に関する。
【背景技術】
【０００２】
ソフトウェア（コンピュータプログラム）には、ユーザによる入力を受け付けるウィンドウを出力するグラフィカル・ユーザ・インタフェース（ＧＵＩ）を備えるものがある。しかし、表示されたウィンドウに複数の入力項目が設けられている場合に、ユーザに全ての入力項目に入力させる必要があるとは限らず、ユーザに入力して欲しい入力項目と入力して欲しくない入力項目とが混在することがある。
【０００３】
ウィンドウの入力項目の一部がユーザに入力して欲しくないものである場合に、ウィンドウを表示するプログラム自身において、入力して欲しくない入力項目毎に入力不可の状態を設定することによって、ユーザのウィンドウへの入力を制限していた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２−４４４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の入力項目が設けられたウィンドウであっても、入力して欲しい入力項目と入力してほしくない入力項目とがユーザ毎に異なることがある。
【０００６】
従来手法では、ウィンドウを表示するためにコンピュータで実行されるプログラムに対して、当該プログラムの管理者がユーザに入力して欲しくない入力項目に「入力不可」を設定するという改変を、ユーザ毎に行う必要があった。しかし、ユーザは多様であり、ユーザ毎に、入力可否の設定を変更したプログラムを用意して対応することには限界があり、実際には困難である。
【０００７】
本発明の目的は、ユーザの入力を受け付けるウィンドウにおいて入力制御を行うために、コンピュータにおいて実行させることによりウィンドウを表示するプログラムの改変を行うことなく、プログラムの外部から、ウィンドウに設けられた入力項目毎に入力を制御できる入力制御方法、入力制御プログラム、および入力制御装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一態様として開示する入力制御方法は、表示画面に対する入力を制御する入力制御方法であって、コンピュータが、１）第１のプログラムの実行により生成され画面に表示されるウィンドウの情報を、第２のプログラムの実行により取得し、２）前記第２のプログラムの実行により、データ記憶部に記憶された入力制御の対象とする対象ウィンドウを示す対象ウィンドウ情報に基づいて、取得した前記ウィンドウの情報が入力制御の対象とする対象ウィンドウに該当することを検出し、３）前記第２のプログラムの実行により、前記データ記憶部に記憶された、前記対象ウィンドウのサイズに対応する高透明性の領域と前記対象ウィンドウに備えられた入力用の構成要素のうち入力可能とする構成要素の配置位置に発生するイベントを透過可能な穴あけ領域とが指定されたプレートウィンドウを定義するプレート情報に基づいて、前記対象ウィンドウに該当すると判定された前記ウィンドウに対応するプレートウィンドウを作成し、４）前記第２のプログラムの実行により、作成した前記プレートウィンドウを、検出した前記対象ウィンドウに該当すると判定された前記ウィンドウの上に配置して表示する処理を、実行するものである。
【発明の効果】
【０００９】
上記の入力制御方法によれば、ユーザの入力を受け付けるウィンドウを表示するために、コンピュータが実行するプログラム自身を改変することなく、ウィンドウに対する入力を制御することができ、ユーザに、特に意識させることなく、入力して欲しい入力項目のみに入力をさせるという入力制御を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】開示する入力制御方法において、表示されるウィンドウと、このウィンドウに対する入力制御に用いるプレート例を示す図である。
【図２】開示する入力制御方法において、入力制御の対象となるアプリウィンドウとプレートウィンドウとの関係を示す図である。
【図３】開示する入力制御方法を実現する入力制御システムのブロック構成例を示す図である。
【図４】一実施の形態において、データ記憶部に記憶される情報の例を示す図である。
【図５】本実施の形態における、プレート編集処理例を示す図である。
【図６】本実施の形態における、入力制御処理例を示す図である。
【図７】本実施の形態における、プレートの追随表示処理例を示す図である。
【図８】対象ウィンドウのスクロールに追随するプレートのスクロール表示例を示す図である。
【図９】プレート定義装置のプレート定義処理の処理フロー例を示す図である。
【図１０】定義されるプレートの例を示す図である。
【図１１】プレート定義装置のプレート編集処理の処理フロー例を示す図である。
【図１２】プレート定義装置のプレート編集処理の処理フロー例を示す図である。
【図１３】入力制御装置のプレート表示処理の処理フロー例を示す図である。
【図１４】入力制御装置のイベント監視処理の処理フロー例を示す図である。
【図１５】一実施例における対象ウィンドウ例を示す図である。
【図１６】一実施例におけるプレート例を示す図である。
【図１７】一実施例における対象画像情報、プレート情報、対象ウィンドウ・プレート対応情報の例を示す図である。
【図１８】入力制御装置およびプレート定義装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の一態様として開示する入力制御方法について説明する。
【００１２】
図１および図２は、開示する入力制御方法を説明するための図である。
【００１３】
図１は、コンピュータがアプリケーションプログラムを実行することにより生成されるアプリウィンドウと、このウィンドウに対する入力制御に用いるプレートウィンドウ例とを示す図である。なお、以下の説明では、アプリウィンドウを単にウィンドウと、プレートウィンドウを単にプレートと呼ぶことがある。
【００１４】
開示する入力制御方法では、図１（Ａ）に示すように、コンピュータがアプリケーションプログラムを実行することにより生成されるウィンドウであって、入力制御の対象となるウィンドウ（対象ウィンドウ）に、対象ウィンドウのアプリケーションプログラムによるデータが表示される表示領域と同一のサイズのプレートを定義するプレート情報が作成される。なお、本実施例のコンピュータは、オペレーティングシステム（ＯＳ）を実行することにより、作成された各ウィンドウを重畳させて表示させることが可能であるものとする。
【００１５】
プレート上には、さらに、図１（Ｂ）に示すように、対象ウィンドウの入力項目のうち、ユーザ（特定の組織、グループ、個人等）に入力させたい入力項目に対応してプレートを切り抜いた領域（穴あけ領域）が設定される。穴あけ領域は、矩形、円形、多角形、またはこれらの形状の任意の組み合わせの形状の領域である。
【００１６】
プレートは、当該プレートウィンドウの画面の奥側に配置されるウィンドウを十分に視認できる程度の透過性が設定され、穴あけ領域は、下に配置されるウィンドウにイベント（メッセージ）を透過できる完全透過性が設定されている。一例として、プレートの穴あけ領域では、ウィンドウの透過を制御するアルファ値（ａｌｐｈａ）が０（完全透過）に設定され、プレートの穴あけ領域以外の領域では、非常に小さい値、例えばアルファ値＝１に設定される。この設定により、プレートが穴あけ領域で切り抜かれている状態となる。
【００１７】
なお、プレート上には、メッセージやアイコンなどを表示するコメント表示領域が設定されてもよい。
【００１８】
その後、コンピュータにおいてアプリケーションプログラムが実行されることにより対象ウィンドウが表示されると、プレート情報をもとに、表示された対象ウィンドウに合わせてプレートが作成され、重ねて表示される。
【００１９】
図２は、入力制御の対象となる対象ウィンドウとプレートの関係を示している。対象ウィンドウ上にプレートが重ねて配置されるため、ユーザ操作はプレート上で行われることになり、穴あけ領域のみで、入力イベント（メッセージ）が下の対象ウィンドウに渡される。すなわち、ユーザは、対象ウィンドウに対する入力操作を行おうとした場合に、プレートの穴あけ領域では、対象ウィンドウに触れることができ入力できるが、穴あけ領域以外の領域では、対象ウィンドウに触れることができず、入力項目が見えるだけで入力できない。
【００２０】
開示する入力制御方法により、対象ウィンドウの入力させたい部分に対応させて穴あけ領域が設定されたプレートを生成し、対象ウィンドウに重ねて表示することによって、アプリケーションプログラム自身を改変することなく、対象ウィンドウの入力制御を簡単に実現することができる。ユーザ毎の入力制御を行う場合に、入力させたい項目に対応させた穴あけ領域を設定したユーザ毎のプレート情報を作成し、対象ウィンドウの表示を検出してプレートを表示する必要があるが、アプリケーションプログラム自身でユーザ毎に入力項目の設定を変更することに比べて、より簡単にウィンドウへの入力制御を行うことができる。
【００２１】
図３は、開示する入力制御方法を実現する入力制御システムのブロック構成例を示す図である。
【００２２】
図３に示す入力制御システム１０は、入力制御装置１およびプレート定義装置３を備える。
【００２３】
入力制御装置１は、コンピュータがアプリケーションプログラムを実行することにより、生成されるウィンドウに対する入力制御をする装置であって、対象ウィンドウ検出部１１、イベント監視部１３、プレート操作部１５、およびデータ記憶部１７を備える。
【００２４】
対象ウィンドウ検出部１１は、コンピュータがアプリケーションプログラムを実行することによって入力制御の対象ウィンドウが生成され、コンピュータのＯＳにより表示装置に表示されているかを検出する。
【００２５】
イベント監視部１３は、表示された対象ウィンドウおよびプレート上でのイベント発生を監視する。
【００２６】
プレート操作部１５は、対象ウィンドウの表示が検出された場合に、対象ウィンドウに対応するプレート情報をもとにプレートを作成し、表示中の対象ウィンドウに重ねて表示する。またプレート操作部１５は、イベント監視部１３により対象ウィンドウのスクロールが検出されると、検出したスクロールにもとづいてプレートのスクロール表示を行う。
【００２７】
データ記憶部１７は、入力制御装置１が使用する種々の情報、例えば対象ウィンドウ情報、プレート情報、対象ウィンドウ・プレート対応情報などを記憶する。
【００２８】
プレート定義装置３は、入力制御装置１が使用する種々の情報を生成、編集および定義する装置であって、プレート定義装置３は、情報取得部３１、プレート編集部３３を備える。
【００２９】
情報取得部３１は、コンピュータがアプリケーションプログラムを実行することにより生成されるウィンドウであって入力を制御したい対象ウィンドウを特定する対象ウィンドウ情報、対象ウィンドウに設けられた入力用の構成要素（コントロール）を特定する対象コントロール情報を取得する。
【００３０】
ウィンドウの入力用の構成要素（コントロール）は、例えば、指示用ボタン、選択用ボタン、選択用のラジオボタン、チェックボックス、セレクトボックス、テキスト入力フィールド等である。なお、以下の説明で、ウィンドウの入力用構成要素の領域を、入力領域と呼ぶことがある。
【００３１】
プレート編集部３３は、対象ウィンドウに重ねて表示させるプレートを編集し、プレートを定義するプレート情報、および対象ウィンドウとプレートとの対応関係を示す対象ウィンドウ・プレート対応情報を作成する。
【００３２】
プレート定義装置３で作成された上記の情報は、記録媒体または通信を介して、入力制御装置１のデータ記憶部１７に格納される。
【００３３】
図４は、データ記憶部１７に記憶される情報の例を示す図である。
【００３４】
対象ウィンドウ情報は、対象ウィンドウ毎に作成され、例えば、対象ウィンドウの識別情報（対象ウィンドウＩＤ）、対象ウィンドウの名称（ウィンドウテキストの文字列等）、対象ウィンドウの種別（ウィンドウ種別：コモンダイアログ、システムダイアログ等）、対象ウィンドウを制御するプログラムやプロセスの名称（プロセス名称）、対象ウィンドウの入力用の構成要素を示す情報（対象コントロール情報）等を含む。
【００３５】
対象コントロール情報は、入力用の構成要素毎に、例えば、構成要素の識別情報（コントロールＩＤ）、構成要素の種別（コントロール種別：ボタン、ボックス、入力フィールド等）、構成要素（コントロール要素）の配置座標等を含む。
【００３６】
プレート情報は、プレート毎に作成され、例えば、プレート情報の識別情報（プレートＩＤ）、プレートに設定される穴あけ領域に関する情報（穴あけ情報）、プレートのサイズ、プレートの配置座標等を含む。
【００３７】
穴あけ情報は、穴あけ領域毎に、例えば、穴あけ情報の識別情報（穴あけ情報ＩＤ）、設定された穴あけ領域の図形情報等を含む。
【００３８】
図形情報は、各穴あけ領域の形状、サイズ、配置位置を示す。図形情報は、図形情報の識別情報（図形情報ＩＤ）、穴あけ領域の種別（矩形、円、コメント等）、穴あけ領域の種別に応じた形状の指定および配置の情報（矩形座標、円座標、コメント情報等）を含む。
【００３９】
なお、穴あけ領域の種別がコメントである場合、当該穴あけ領域はコメント表示領域となる。コメント表示領域は、コメント情報で定義されたメッセージ（コメント文字列）やアイコン（指定されたイメージデータ）等が表示される領域である。コメント表示領域では、マウスイベントは、下に表示されている対象ウィンドウへ透過されない。
【００４０】
対象ウィンドウ・プレート対応情報は、対象ウィンドウの識別情報（対応ウィンドウＩＤ）、入力用の構成要素の識別番号（コントロールＩＤ）、対象ウィンドウに対応づけられたプレートの識別情報（プレートＩＤ）が関連付けられて格納される。
【００４１】
次に、本実施の形態における入力制御装置１およびプレート定義装置３の処理を説明する。
【００４２】
図５は、本実施の形態における、プレート編集処理例を示す図である。
【００４３】
（ａ）  プレート定義装置３の情報取得部３１は、編集者により操作されることにより、コンピュータがアプリケーションプログラムを実行することにより生成されるウィンドウ（アプリウィンドウ）から、入力制御の対象とするウィンドウ（対象ウィンドウ）を選択する。
【００４４】
（ｂ）  情報取得部３１は、対象ウィンドウに関する情報（ウィンドウテキスト、ウィンドウ種別、表示するプログラムのプロセス名、対象ウィンドウの各構成要素のコントロール名称、各構成要素の配置座標等）を取得する。
【００４５】
（ｃ）  情報取得部３１は、取得した情報（対象ウィンドウ情報）をプレート編集部３３へ伝達する。
【００４６】
（ｄ）  プレート編集部３３は、伝達された情報をもとに、プレートを定義するプレート情報（クラス）を作成する。
【００４７】
（ｅ、ｆ）  プレート編集部３３は、作成されたプレート情報を受信し、プレート（プレートオブジェクト）を作成し、表示する。
【００４８】
（ｇ）  プレート編集部３３は、表示されたプレート上で、編集者のマウスクリック等によって穴あけ領域が指定されると、指定された各穴あけ領域の情報（図形の形状、配置座標、コメント文字列等）を取得し、プレート情報を更新する。なお、プレート編集部３３の編集処理は、既知の図形編集処理で実施可能であるので、処理についての詳細説明は省略する。
【００４９】
（ｈ）  プレート編集部３３は、対象ウィンドウ情報、プレート情報、対象画像・プレート対応情報を作成する。作成された情報は、データ記憶部１７に格納される。
【００５０】
図６は、本実施の形態における、入力制御処理例を示す図である。
【００５１】
（ａ）  対象ウィンドウ検出部１１は、入力制御装置１のＯＳを介して、表示される全てのウィンドウの情報（ウィンドウテキストの文字列、ウィンドウ種別、プロセス名称等）を取得して、ウィンドウの表示を監視する。
【００５２】
（ｂ）  対象ウィンドウ検出部１１は、表示されている各ウィンドウの情報をデータ記憶部１７の対象ウィンドウ情報と照合する。
【００５３】
（ｃ）  対象ウィンドウ検出部１１は、対象ウィンドウ情報と照合できたウィンドウを対象ウィンドウとして抽出する。
【００５４】
（ｄ）  対象ウィンドウ検出部１１は、対象ウィンドウの対象ウィンドウ情報をプレート操作部１５に伝達する。
【００５５】
（ｅ）  プレート操作部１５は、伝達された対象ウィンドウ情報をもとに、データ記憶部１７の、対象ウィンドウに対応づけられたプレート情報を参照する。
【００５６】
（ｆ）  プレート操作部１５は、参照したプレート情報をもとに、対象ウィンドウの表示領域に対応するサイズで穴あけ領域を設けたプレート（オブジェクト）を作成し、表示中の対象ウィンドウの上に配置して表示する。
【００５７】
対象ウィンドウにスクロール操作領域（スクロールバー）が設けられていない場合には、プレート操作部１５は、対象ウィンドウの表示領域のサイズのプレートを作成する。対象ウィンドウにスクロールバーが設けられている場合には、プレート操作部１５は、対象ウィンドウのスクロールバーの配置位置を取得し、対象ウィンドウの表示領域からスクロールバーの領域を除外したサイズのプレートを作成する。そして、プレート操作部１５は、対象ウィンドウのスクロール表示に追随して、プレートのスクロール表示を行う。
【００５８】
スクロールバーの有無は、例えば、対象ウィンドウのウィンドウサイズに対する表示領域のサイズの比から検出することができる。ウィンドウサイズに対する表示領域のサイズは、スクロールバーが存在する場合の方が、スクロールバーが存在しない場合よりも小さくなるためである。また、現在のスクロール量を示す値を検出することにより、スクロール量を示す値がない場合にスクロールバーがないウィンドウであると推定することもできる。
【００５９】
図７は、本実施の形態における、プレートの追随表示処理例を示す図である。
【００６０】
（ｇ）  スクロールバーが備えられた対象ウィンドウにプレートを重ねて表示している場合に、イベント監視部１３は、対象ウィンドウでのイベント発生を監視する。
【００６１】
（ｈ）  イベント監視部１３は、対象ウィンドウで発生したイベントをフックし、イベントの情報（イベント種類、内容）を取得する。
【００６２】
（ｉ）  イベント監視部１３は、フックしたイベントが、対象ウィンドウのスクロールバーでのイベントであれば、そのイベント情報（スクロール量、スクロール方向）をプレート操作部１５へ伝達する。
【００６３】
（ｊ）  プレート操作部１５は、伝達されたイベント情報をもとに、プレートの領域と穴あけ領域の配置位置を計算し、計算結果をもとにプレートを作成して対象ウィンドウの上に表示する。
【００６４】
（ｋ）  イベント監視部１３は、フックしたイベントを対象ウィンドウに渡す。
【００６５】
図８は、対象ウィンドウのスクロールに追随するプレートのスクロール表示例を示す図である。
【００６６】
図８（Ａ）に示すように、表示装置に対象ウィンドウの一部が表示され、上／下方向にスクロール可能であるとする。プレートは、図８（Ｂ）に示すように、対象ウィンドウの原点（左上座標）から表示される領域の開始座標までのスクロール量をもとに、プレート情報で定義されたプレートのうち、表示する領域が決定される。プレートに設けられた穴あけ領域も、スクロール量をもとに配置位置が計算される。
【００６７】
以下、本実施の形態における、入力制御装置１およびプレート定義装置３の処理フローを説明する。
【００６８】
図９は、プレート定義装置３のプレート定義処理の処理フロー例を示す図である。
【００６９】
プレート定義装置３の情報取得部３１は、コンピュータがアプリケーションプログラムを実行することにより生成され表示されるウィンドウから、対象ウィンドウを選択すると（ステップＳ１）、プレート定義装置３のＯＳを介して対象ウィンドウの情報を取得し（ステップＳ２）、取得した対象ウィンドウの情報をプレート編集部３３へ伝達する（ステップＳ３）。
【００７０】
プレート編集部３３は、対象ウィンドウにスクロールバーがあるかを判定する（ステップＳ４）。対象ウィンドウにスクロールバーがなければ（ステップＳ４のＮ）、プレート編集部３３は、図１０（Ａ）に示すように、対象ウィンドウの表示領域に重なる形（サイズ）でプレートを作成する（ステップＳ５）。対象ウィンドウにスクロールバーがあれば（ステップＳ４のＹ）、プレート編集部３３は、図１０（Ｂ）に示すように、対象ウィンドウの表示領域からスクロールバーの領域を除去した形（サイズ）でプレートを作成する（ステップＳ６）。
【００７１】
図１１および図１２は、プレート定義装置３のプレート編集処理の処理フロー例を示す図である。
【００７２】
プレート定義装置３のプレート編集部３３は、編集対象として、既にプレートに設定されている領域（既存領域）が選択されているかを調べる（ステップＳ１１）。既存領域が選択されていなければ（ステップＳ１１の“選択なし”）、プレート編集部３３は、作成された穴あけ領域の種別（形状）を判定する（ステップＳ１２）。
【００７３】
作成された領域の種別が“円”であれば（ステップＳ１２の“円”）、プレート編集部３３は、プレート上でマウスクリックとドラッグラバーバンドを表示し、編集者操作により指定された領域に接する円の領域を穴あけ領域とし、その領域を示す円座標（ｘ，ｙ，半径）をプレート情報に書き込む（ステップＳ１３）。作成された領域の種別が“矩形”であれば（ステップＳ１２の“矩形”）、プレート編集部３３は、プレート上でマウスクリックとドラッグラバーバンドを表示し、編集者の操作により指定された矩形領域を穴あけ領域とし、その領域を示す矩形座標（ｔｏｐ，ｌｅｆｔ，ｂｏｔｔｏｍ，ｒｉｇｈｔ）をプレート情報に書き込む（ステップＳ１４）。作成された領域の種別が“コメント”であれば（ステップＳ１２の“コメント”）、プレート編集部３３は、プレート上でマウスクリックと文字列入力フィールドを表示し、指定された領域をコメント表示領域とし、領域の座標と入力された文字列のコメント情報（ｘ，ｙ，コメント文字列）をプレート情報に書き込む（ステップＳ１５）。
【００７４】
操作が確定されたかを判定し（ステップＳ１６）、操作が確定でなければ（ステップＳ１６のＮ）、ステップＳ１２の処理へ戻り、操作が確定であれば（ステップＳ１６のＹ）、プレート編集部３３は、処理を終了する。
【００７５】
穴あけ領域として既存領域が選択されていれば（ステップＳ１１の“選択中”）、プレート編集部３３は、指定された操作が削除か編集かを判定し（ステップＳ１７）、操作が削除であれば（ステップＳ１７の“削除”）、選択中の既存領域を削除し（ステップＳ１８）、操作が確定されたかを判定し（ステップＳ１９）、確定でなければ（ステップＳ１９のＮ）、ステップＳ１８の処理へ戻り、確定であれば（ステップＳ１９のＹ）、プレート編集部３３は、処理を終了する。
【００７６】
一方、操作が編集であれば（ステップＳ１７の“編集”）、プレート編集部３３は、選択中の既存領域を変更し（ステップＳ１１０）、変更された穴あけ領域の種別（形状）を判定する（ステップＳ１１１）。領域の種別が“円”であれば（ステップＳ１１１の“円”）、プレート編集部３３は、プレート上でマウスクリックとドラッグラバーバンドを表示し、編集者の操作により変更された領域に接する円の領域を示す円座標（ｘ，ｙ，半径）でプレート情報を更新する（ステップＳ１１２）。領域の種別が“矩形”であれば（ステップＳ１１１の“矩形”）、プレート編集部３３は、プレート上でマウスクリックとドラッグラバーバンドを表示し、編集者の操作により変更された領域を示す矩形座標（ｔｏｐ，ｌｅｆｔ，ｂｏｔｔｏｍ，ｒｉｇｈｔ）でプレート情報を更新する（ステップＳ１１３）。領域の種別が“コメント”であれば（ステップＳ１１１の“コメント”）、プレート編集部３３は、プレート上でマウスクリックと文字列入力フィールドを表示し、変更された領域の座標と入力された文字列のコメント情報（ｘ，ｙ，コメント文字列）でプレート情報を更新する（ステップＳ１１４）。
【００７７】
プレート編集部３３は、操作が確定されたかを判断し（ステップＳ１１５）、操作が確定でなければ（ステップＳ１１５のＮ）、ステップＳ１１１の処理へ戻り、操作が確定であれば（ステップＳ１１５のＹ）、プレート編集部３３は、処理を終了する。
【００７８】
図１３は、入力制御装置１のプレート表示処理の処理フロー例を示す図である。
【００７９】
入力制御装置１の対象ウィンドウ検出部１１は、入力制御装置１が対象とする処理装置で表示されるウィンドウを列挙し（ステップＳ２１）、各ウィンドウのプロセス名を列挙し（ステップＳ２２）、各ウィンドウのウィンドウテキストを列挙する（ステップＳ２３）。
【００８０】
対象ウィンドウ検出部１１は、ウィンドウ毎に、ループ処理を行う（ステップＳ２４〜Ｓ２７）。ループ処理では、対象ウィンドウ検出部１１は、対象ウィンドウ情報をもとに、そのウィンドウが対象ウィンドウであるかを判定する（ステップＳ２５）。対象ウィンドウ検出部１１は、ウィンドウが対象ウィンドウであると判断した場合には（ステップＳ２５のＹ）、プレート操作部１５は、対象ウィンドウに対応づけられたプレート情報を参照してプレートを作成し、対象ウィンドウに重ねて表示する（ステップＳ２６）。対象ウィンドウ検出部１１は、ウィンドウが対象ウィンドウではないと判断した場合には（ステップＳ２５のＮ）、未処理のウィンドウについてループ処理を行う。
【００８１】
その後、対象ウィンドウ検出部１１は、終了の指示があるかを判定し（ステップＳ２８）、終了の指示がなければ（ステップＳ２８のＮ）、ステップＳ２１の処理へ戻り、終了の指示があれば（ステップＳ２８のＹ）、処理を終了する。
【００８２】
図１４は、入力制御装置１のイベント監視処理の処理フロー例を示す図である。
【００８３】
入力制御装置１のイベント監視部１３は、対象ウィンドウのプロセスをターゲットプロセスに設定し（ステップＳ３１）、イベントフックにより、ターゲットプロセスのイベント監視ループ処理を行う（ステップＳ３２〜Ｓ３９）。
【００８４】
ループ処理では、イベント監視部１３は、フックしたイベントを判定する（ステップＳ３３）。イベントがスクロールであると判断された場合に（ステップＳ３３の“スクロール”）、プレート操作部１５は、スクロール量、スクロール方向を取得して（ステップＳ３４）、プレートのスクロールを行う（ステップＳ３５）。イベント監視部１３は、対象ウィンドウにスクロールイベントを渡す（ステップＳ３６）。イベントが対象ウィンドウの表示終了であると判断された場合に（ステップＳ３３の“ウィンドウ終了”）、プレート操作部１５は、プレートの表示を終了する（ステップＳ３７）。イベント監視部１３は、対象ウィンドウに終了イベントを渡す（ステップＳ３８）。
【００８５】
その後、イベント監視部１３は、終了の指示があったかを判定し（ステップＳ３１０）、終了の指示がなければ（ステップＳ３１０のＮ）、ステップＳ３３の処理へ戻り、終了の指示があれば（ステップＳ３１０のＹ）処理を終了する。
【００８６】
以下に、図１５〜図１７を用いて、入力制御のより具体的な実施例を示す。
【００８７】
図１５は、一実施例における対象ウィンドウ例を示す図である。図１５に示す対象ウィンドウは、ウィンドウ名（ウィンドウテキスト）が「アドレス帳に追加」であり、複数の入力用の構成要素を備えている。この対象ウィンドウの構成要素（コントロール）のうち、「表示名」のテキスト入力フィールドと「ＯＫ」ボタンのみを、ユーザ入力可能とするように入力制御することを想定する。
【００８８】
プレート定義装置３は、プレート編集部３３は、対象ウィンドウのウィンドウサイズに対する表示領域のサイズの比から、スクロールバーが存在するかを判断する。プレート編集部３３は、対象ウィンドウにスクロールバーがないと判断し、対象ウィンドウの表示領域と同じ大きさの領域を持つプレート（プレートウィンドウ）を定義する。そして、プレート編集部３３は、編集者の編集操作にもとづいて、図１６に示すように、対象ウィンドウの「表示名」の入力フィールドに対応する穴あけ領域と、「ＯＫ」ボタンに対応する穴あけ領域とをプレート上に設定し、各穴あけ領域を示す穴あけ情報（穴あけ情報ＩＤ＝１、穴あけ情報ＩＤ＝２）の定義をプレート情報に追加する。
【００８９】
プレート定義装置３で作成された、図１７に示す対象画像情報、プレート情報、対象ウィンドウ・プレート対応情報は、入力制御装置１のデータ記憶部１７に記憶される。
【００９０】
その後、図１５に示す対象ウィンドウが表示され、入力制御装置１の対象ウィンドウ検出部１１が対象ウィンドウを検出すると、プレート操作部１５は、表示された対象ウィンドウに対応するプレート情報を参照し、図１６に示す、２つの穴あけ領域が設定されたプレートを対象ウィンドウ上に重ねて表示する。
【００９１】
これにより、ユーザは、対象ウィンドウの「表示名」へのテキスト入力と「ＯＫ」ボタンの選択のみが可能となる。
【００９２】
入力制御装置１およびプレート定義装置３は、図１８に示す構成の各コンピュータに実装することよって、実施することができる。コンピュータ２００は、図１８に示すように、入力制御プログラム、オペレーティングシステム、およびアプリケーションプログラムを含む種々のプログラムを実行する演算装置（ＣＰＵ）２０１、種々のプログラムを実行させるために必要な情報を記憶する主記憶装置２０２、補助記憶装置２０３、媒体駆動装置２０４、外部にネットワークを介して情報を送受信するためのネットワーク接続装置２０５、データを入力するあるいは対象画像データ、プレートデータを含む画面情報を出力する入出力装置２０６等を備え、これらの各装置がバスＢで内部接続されている。
【００９３】
入力制御装置１およびプレート定義装置３は、コンピュータのソフトウェアとしても実施することができる。入力制御装置１およびプレート定義装置３の各処理部の機能をコンピュータ２００に実行させるプログラムを作成し、当該プログラムをコンピュータ２００の主記憶装置２０２に読み込ませて実行させることによって、入力制御装置１およびプレート定義装置３を実現することができる。
【００９４】
入力制御装置１およびプレート定義装置３を実現するプログラムは、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ等やフレキシブルディスク等の記録媒体だけでなく、通信回線の先に備えられた他の記憶装置やコンピュータのハードディスク等の記憶装置に記憶されるものであってもよい。
【００９５】
なお、入力制御装置１およびプレート定義装置３を構成する要素は、任意の組み合わせで実現されてよい。複数の構成要素が１つの部材として実現されてもよく、１つの構成要素が複数の部材から構成されてもよい。例えば、上述の説明では、入力制御装置１とプレート定義装置３とが異なる装置として実施される場合を例としているが、入力制御装置１とプレート定義装置３とが１つの処理装置として実施されてもよい。また、入力制御装置１およびプレート定義装置３は、上述した実施形態に限定されず、本発明の要旨を逸脱しない範囲において、各種の改良および変更を行ってもよいことは当然である。
【００９６】
以上説明したように、開示した入力制御装置１によれば、アプリケーションプログラムが提供するＧＵＩにおける入力をユーザ毎に制御したい場合に、アプリケーションプログラム自体をユーザ毎に変更する必要がなく、いわば、アプリケーションプログラムの外部において作成したプレート情報を用いて、ユーザ毎の入力制御を行うことが可能となる。
【００９７】
また、開示したプレート定義装置３によれば、上記の入力制御装置１で実行する入力制御に必要なプレート情報を、入力制御の対象とするウィンドウを表示させて、表示させたウィンドウ上で簡単に編集して生成することができる。
【００９８】
ユーザは、コンピュータがアプリケーションプログラムを実行することにより生成されたウィンドウが表示された表示画面上で入力する必要がない入力項目や入力が禁止される項目に対する入力を行えなくなることから、アプリケーションに慣れていないユーザでも、迷わずに入力できるという効果を奏する。さらに、ユーザが入力してはいけない項目に入力してしまい、データが書き換えられるという状況を防止するという効果を奏する。
【符号の説明】
【００９９】
１０  入力制御システム
１  入力制御装置
１１  対象ウィンドウ検出部
１３  イベント監視部
１５  プレート操作部
１７  データ記憶部
３  プレート定義装置
３１  情報取得部
３３  プレート編集部
【図１】
0005935448.tif 000002
【図２】
0005935448.tif 000003
【図３】
0005935448.tif 000004
【図４】
0005935448.tif 000005
【図５】
0005935448.tif 000006
【図６】
0005935448.tif 000007
【図７】
0005935448.tif 000008
【図８】
0005935448.tif 000009
【図９】
0005935448.tif 000010
【図１０】
0005935448.tif 000011
【図１１】
0005935448.tif 000012
【図１２】
0005935448.tif 000013
【図１３】
0005935448.tif 000014
【図１４】
0005935448.tif 000015
【図１５】
0005935448.tif 000016
【図１６】
0005935448.tif 000017
【図１７】
0005935448.tif 000018
【図１８】
0005935448.tif 000019