以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図1は、本実施の形態におけるMFPの外観を示す斜視図である。図2は、MFPのハードウェア構成の概要を示すブロック図である。図1および図2を参照して、画像処理装置として機能するMFP(Multifunction Peripheral)100は、メイン回路110と、原稿を読み取るための原稿読取部130と、原稿を原稿読取部130に搬送するための自動原稿搬送装置120と、原稿読取部130が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部140と、画像形成部140に用紙を供給するための給紙部150と、ユーザーインターフェースとしての操作パネル160とを含む。
メイン回路110は、CPU111と、通信インターフェース(I/F)部112と、ROM113と、RAM114と、大容量記憶装置としてのハードディスクドライブ(HDD)115と、ファクシミリ部116と、外部記憶装置117と、を含む。CPU111は、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150および操作パネル160と接続され、MFP100の全体を制御する。
自動原稿搬送装置120は、原稿給紙トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部130のプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部130により原稿画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部130は、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部140に出力する。給紙部150は、給紙トレイに収納された用紙を画像形成部140に搬送する。
画像形成部140は、周知の電子写真方式により画像を形成するものであって、原稿読取部130から入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部150により搬送される用紙に画像を形成する。
ファクシミリ部116は、公衆交換電話網(PSTN)に接続され、PSTNにファクシミリデータを送信する、またはPSTNからファクシミリデータを受信する。ファクシミリ部116は、受信したファクシミリデータを、HDD115に記憶するか、または、画像形成部140でプリント可能なプリントデータに変換して、画像形成部140に出力する。これにより、画像形成部140は、ファクシミリ部116により受信されたファクシミリデータを用紙に画像を形成する。また、ファクシミリ部116は、HDD115に記憶されたデータをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。
通信I/F部112は、ネットワークにMFP100を接続するためのインターフェースである。通信I/F部112は、TCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)等の通信プロトコルで、ネットワークに接続された他のコンピューターまたは画像形成装置と通信する。なお、通信I/F部112が接続されるネットワークは、ローカルエリアネットワーク(LAN)であり、接続形態は有線または無線を問わない。またネットワークは、LANに限らず、ワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)、インターネット等であってもよい。
ROM113は、CPU111が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。RAM114は、CPU111がプログラムを実行する際の作業領域として用いられる。また、RAM114は、原稿読取部130から連続的に送られてくる読取画像を一時的に記憶する。
操作パネル160は、液晶表示装置(LCD)165と、LCD165の表示を制御する表示制御部161と、VRAM(Video RAM)163と、タッチパネル169と、ハードキー部170と、タッチパネル169およびハードキー部170を制御する入力制御部167と、を含む。LCD165およびハードキー部170は、MFP100の上面に設けられる。
表示制御部161は、CPU111、VRAM163およびLCD165と接続される。VRAM163は、表示制御部161の作業領域として用いられ、LCD165に表示する画像を一時記憶する。表示制御部161は、CPU111により制御されて、LCD165を制御し、LCD165にVRAM163に記憶された画像を表示させる。
ハードキー部170は、複数のハードキーを含む。ハードキーは、接点スイッチであり、入力制御部167に接続される。ハードキーは、操作ユーザーにより押下されると接点を閉じて、入力制御部167に接続される回路を閉じる。ハードキーは、MFP100を操作する操作ユーザーにより押下されている間は回路を閉じ、操作ユーザーにより押下されていない間は回路を開く。
タッチパネル169は、LCD165の上面または下面に設けられ、操作ユーザーにより押下された位置の座標を入力制御部167に出力する。タッチパネル169は、操作ユーザーが指またはスタイラスペンで指示した位置を検出し、検出した位置の座標を入力制御部167に出力する。タッチパネル169は、LCD165の表示面と同じまたはそれ以上のサイズであるのが好ましい。タッチパネル169は、LCD165に重畳して設けられるので、タッチパネル169は、操作ユーザーがLCD165の表示面を指示すれば、LCD165の表示面中で操作ユーザーが指示した位置の座標を入力制御部167に出力する。タッチパネルは、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式を用いることができ、その方式は限定されない。
入力制御部167は、ハードキー部170のうちで回路を閉じたハードキーが存在する場合、回路を閉じたハードキーの識別情報をCPU111に出力する。また、入力制御部167は、タッチパネル169が操作ユーザーにより指示された位置を検出する場合、タッチパネル169から出力される座標を、LCD165の表示面の位置を示す位置情報としてCPU111に出力する。
外部記憶装置117は、CPU111により制御され、CD−ROM(Compact Disk Read Only Memory)118、または半導体メモリが装着される。CPU111は、外部記憶装置117を介してCD−ROM118にアクセス可能である。CPU111は、外部記憶装置117に装表されたCD−ROM118に記録されたプログラムをRAM114にロードして実行する。なお、CPU111が実行するプログラムは、CD−ROM118に記録されたプログラムに限られず、HDD115に記憶されたプログラムをRAM114にロードして実行するようにしてもよい。この場合、通信I/F部112に接続されるネットワークを介して、ネットワークに接続された他のコンピューターが、MFP100のHDD115に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、MFP100が、ネットワークに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをHDD115に記憶するようにしてもよい。ここでいうプログラムは、CPU111が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
なお、CPU111が実行するプログラムを記憶する媒体としては、CD−ROM118に限られず、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc)))、ICカード、光カード、マスクROM、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)などの半導体メモリであってもよい。
図3は、操作パネル160の平面図である。図3を参照して、操作パネル160は、LCD165と、LCD165に重畳して設けられたタッチパネル169と、LCD165の右側に、ハードキー部170と、を含む。ハードキー部170は、キー識別情報が「start」のスタートキー171と、キー識別情報が「stop」のストップキー173と、キー識別情報が「Reset」のリセットキー175と、10個のキーからなる数字キー群177と、を含む。数字キー群177は、キー識別情報が「0」〜「9」の10個の数字キーを含む。
図4は、CPUのソフトウェアアーキテクチャの一例を示す図である。図4を参照して、CPU111には、オペレーティングシステム(OS)層が形成され、その上の階層に、MFPプロセス層が形成される。MFPプロセス層の上層に、アプリケーションプラットフォーム(PF)層、アプリケーション層の順に形成される。
OS層は、CPU111がOSプログラムを実行するタスクが属する。OS層に属するタスクは、MFP100のハードウェア資源を制御する処理を実行する。ハードウェア資源は、ここでは、通信I/F部112、ROM113、RAM114、HDD115、ファクシミリ部116、外部記憶装置117、自動原稿搬送装置120、原稿読取部130、画像形成部140、給紙部150、表示制御部161および入力制御部167を含む。OS層に属するタスクは、MFPプロセス層から入力されるオペレーティングコマンドにしたがって、ハードウェア資源を制御する。また、OS層は、MFPプロセス層との間で、入力制御部167が受け付け可能な複数種類の操作それぞれを識別するための操作識別情報を共有しており、OS層に属するタスクは、入力制御部167によって操作ユーザーによる操作が検出されることに応じて、検出された操作を識別するための操作識別情報をMFPプロセス層に出力する。
アプリケーション層は、CPU111がアプリケーションプログラムを実行するタスクが属する。複数種類のアプリケーションプログラムがMFP100にインストールされる場合、アプリケーション層に、複数種類のアプリケーションプログラムをそれぞれ実行する複数のタスクが属する場合がある。アプリケーションプログラムは、MFP100に、コピー処理、スキャン処理、プリント処理、ファクシミリ送受信処理、データ送受信処理等を実行させるために、ユーザーインターフェース等をカスタマイズするためのプログラムを含む。なお、アプリケーションプログラムは、これらに限定されることなく、これとは別のアプリケーションプログラムであってもよい。
アプリケーションプログラムを実行するタスクは、アプリケーションプログラムによって定められた複数種類の処理を実行する。複数種類の処理は、MFPプロセス層において実行される処理をMFPプロセス層に属するタスクに実行させる処理を含む。アプリケーションプログラムを実行するタスクは、MFPプロセス層に属するタスクに処理を実行させる場合、アプリコマンドを出力する。アプリコマンドは、API(Application Program Interface)として、公開されたコマンドである。
さらに、アプリケーションプログラムを実行するタスクは、MFP100を操作する操作ユーザーによる指示に基づいて、アプリケーションプログラムによって定められた複数種類の処理のうちから実行する処理を特定し、処理を実行する。このため、アプリケーションプログラムにおいては、複数種類の処理それぞれに対応する受付操作を定めており、アプリケーションプログラムを実行するタスクは、受付操作を識別するための操作識別情報が入力されることに応じて、その操作識別情報で識別される受付操作に対応する種類の処理を実行する。一方、MFP100を操作する操作ユーザーによる指示は、操作ユーザーがタッチパネル169およびハードキー部170を操作して入力することにより、OS層において受け付けられる。本実施の形態においては、MFP100を操作するユーザーによる指示に基づいて受付操作を特定する処理を、アプリケーションPF層が担当する。このため、アプリケーションプログラムは、アプリケーションPF層との間で、アプリケーションプログラムにより定められる複数の受付操作それぞれに対応する操作識別情報を共有しており、アプリケーションプログラムを実行するタスクは、アプリケーションPF層に属するタスクから操作識別情報が入力されることに応じて、複数種類の処理のうちアプリケーションPF層から入力される操作識別情報で識別される受付操作に対応する処理を実行する。
アプリケーションPF層は、アプリケーション層とMFPプロセス層との間に配置され、アプリケーション層に属する複数のタスクを調停するとともに、アプリケーション層に属する複数のタスクが出力するアプリコマンドを制御するタスクが属する。具体的には、アプリケーションPF層は、アプリケーション層に属する複数のタスクのいずれか1つをデータの入出力が可能なカレント状態に決定する。アプリケーションPF層は、アプリケーション層に属する複数のタスクのうちカレント状態に決定したタスクが出力するアプリコマンドを受け付け、また、MFPプロセス層に属するタスクから入力される操作識別情報を、カレント状態に決定したタスクに出力する。また、アプリケーションPF層に属するタスクは、アプリケーション層に属する複数のタスクそれぞれが出力するアプリコマンドを、予め定められた規則に従って変換することにより標準化し、MFPプロセス層に出力する。このため、複数のアプリケーションプログラム間で、バージョンが異なる場合等に対応することができる。アプリケーションPF層からMFPプロセス層に出力されるアプリコマンドは、アプリケーション層から出力されるアプリコマンドと同じであってもよいし、異なっていてもよい。また、アプリケーションPF層からMFPプロセス層に出力されるアプリコマンドは、公開されていてもよいし、公開されていなくてもよい。
また、アプリケーションPF層に属するタクスは、OS層からMFPプロセス層を介して操作識別情報が入力されることに応じて、入力される操作識別情報を、カレント状態に決定されているタスクに出力する。
MFPプロセス層は、アプリケーションPF層とOS層との間に配置され、CPU111がMFPプロセスプログラムを実行するタスクが属する。MFPプロセス層は、アプリケーションPF層に属するタスクが出力するアプリコマンドを、OS層に属するタスクが解釈可能なオペレーティングコマンドに変換し、OS層に属するタスクにオペレーティングコマンドを出力するタスクが属する。なお、実際には、MFPプロセスプログラムを実行するタスクは、アプリコマンドを、OS層に属するタスクが実行可能な1以上のオペレーティングコマンドに変換するが、ここでは説明のために、アプリコマンドとOS層に属するタスクが実行可能な1以上のオペレーティングコマンドとの関係は1対1として、説明する。また、MFPプロセス層は、OS層に属するタスクから操作識別情報が入力されると、その操作識別情報をアプリケーションPF層に出力する。
上述したように、アプリケーションプログラムは、MFP100に、コピー処理、スキャン処理、プリント処理、ファクシミリ送受信処理、データ送信処理等を実行させるためのアプリケーションプログラムであるが、以下の説明では、アプリケーションプログラムがCPU111に実行させる処理のうちで、操作パネル160を制御する処理に関連する部分を主に説明する。
図5は、MFPが備えるCPUが有する機能の一例を、HDDに記憶される情報とともに示すブロック図である。図5に示す機能は、MFP100が備えるCPU111が、ROM113、HDD115またはCD−ROM118に記憶されたプログラムを実行することにより、CPU111により実現される機能である。具体的には、CPU111が、OSプログラム、操作標準化プログラム、およびアプリケーションプログラムを実行することにより、CPU111により実現される。操作標準化プログラムは、操作拡張プログラムのうち操作通知プログラムを含む。ここでは、MFP100に、アプリケーションプログラムとして、第1アプリケーションプログラム、第2アプリケーションプログラム、および操作拡張プログラムのうちの関連付テーブル生成プログラムがインストールされている場合におけるCPU111の機能を示している。
図5を参照して、CPU111は、アプリケーション部51と、調停部53と、操作変換部55と、オペレーティング部57と、を含む。アプリケーション部51は、図4に示したソフトウェアアーキテクチャにおいて、アプリケーション層に属する。アプリケーション部51は、ユーザー特定部69と、関連付部61と、未対応操作特定部63と、第1アプリ実行部65と、第2アプリ実行部67と、を含む。
HDD115には、マスターテーブル91が予め記憶されている。マスターテーブル91は、複数の操作識別情報それぞれに、ハードキー部170が備える複数のハードキーそれぞれのキー識別情報を予め関連付ける。
図6は、マスターテーブルの一例を示す図である。図6を参照して、マスターテーブル91は、ハードキー部170に対応しており、複数の操作識別情報ごとにマスターレコードを含む。マスターレコードは、操作識別情報の項目と、通常操作(キー識別情報)の項目と、を含む。操作識別情報の項目には、アプリケーションプログラムが受け付けることが可能な受付操作の操作識別情報が設定され、通常操作(キー識別情報)の項目には、ハードキー部170に含まれるスタートキー171、ストップキー173、リセットキー175、数字キー群177いずれかのキー識別情報が設定される。マスターテーブル91は、ハードキー部170に含まれるスタートキー171、ストップキー173、リセットキー175、数字キー群177それぞれに対してデフォルトの操作識別情報が対応付けられている。例えば、操作識別情報「”0”入力」が通常操作の項目に設定されたマスターレコードは、デフォルトのキー識別情報として数字キー群177に含まれる0のキーを示す「0」が対応付けられている。
図5に戻って、第1アプリ実行部65は、CPU111が第1アプリケーションプログラムを実行するタスクによって実行される機能である。第2アプリ実行部67は、CPU111が第2アプリケーションプログラムを実行するタスクによって実行される機能である。第1アプリ実行部65および第2アプリ実行部67それぞれは、アプリコマンドを調停部53に出力する。
第1アプリ実行部65は、MFP100を操作する操作ユーザーによる指示に基づいて、第1アプリケーションプログラムによって定められた複数種類の処理のうちから実行する処理を特定し、処理を実行する。第2アプリ実行部67は、MFP100を操作する操作ユーザーによる指示に基づいて、第2アプリケーションプログラムによって定められた複数種類の処理のうちから実行する処理を特定し、処理を実行する。
ここでは、第1アプリ実行部65が実行するアプリケーションプログラムが、上下左右それぞれの方向に表示をスクロールさせるための受付操作と、コピー画面を表示する受付操作と、FAX画面を表示する受付操作と、スキャン画面を表示する受付操作と、を含む場合を例に説明する。ここでは、右方向に表示をスクロールさせるための受付操作の操作識別情報を、「右スクロール」とし、左方向に表示をスクロールさせるための受付操作の操作識別情報を、「左スクロール」とし、上方向に表示をスクロールさせるための受付操作の操作識別情報を、「上スクロール」といい、下方向に表示をスクロールさせるための受付操作の操作識別情報を、「下スクロール」といい、コピー画面を表示する受付操作の操作識別情報を「コピー画面へ遷移」といい、FAX画面を表示する受付操作の操作識別情報を「FAX画面へ遷移」といい、スキャン画面を表示する受付操作の操作識別情報を「スキャン画面に遷移」と、する。
このようなアプリケーションプログラムは、例えば、MFP100とは別の画像形成装置であって、ハードキー部170が備える複数のハードキーとは別に、上下左右それぞれの方向を示す4つの矢印キーと、コピー画面を表示する指示を受け付けるコピー画面遷移キーと、FAX画面を表示する指示を受け付けるFAX画面線キーと、スキャン画面を表示する指示を受け付けるスキャン画面遷移キーと、を含む画像形成装置で実行させるために開発されたアプリケーションプログラムである。
ユーザー特定部69は、MFP100を操作するユーザーを特定する。LCD165にログイン画面を表示し、ユーザーがハードキー部170またはタッチパネル169に入力するユーザーIDを受け付けることによりユーザーを特定する。ユーザー特定部69は、ユーザーを特定すると、特定したユーザーを識別するためのユーザー識別情報を関連付部61に出力する。なお、MFP100を操作する権限が与えられたユーザーであることを確認するために、パスワードなどの認証情報を用いてユーザーを特定するようにしてもよい。
未対応操作特定部63は、アプリケーションプログラムがインストールされる段階、またはインストールされたアプリケーションプログラムが実行される段階で、そのアプリケーションプログラムが定める複数種類の受付操作のうち未対応操作を特定する。未対応操作は、ハードキー部170が備える複数のハードキーの何れにも割り当てられていない操作である。例えば、アプリケーションプログラムが、MFP100とは別の画像形成装置に対応して開発されたプログラムの場合であって、MFP100とは別の画像形成装置が備えるハードキーが、ハードキー部170が備える複数のハードキーとは別の1以上のハードキーを含む場合、アプリケーションプログラムが定める複数種類の受付操作のうちには、ハードキー部170が備える複数のハードキーとは別のハードキーが割り当てられた受付操作が含まれる場合がある。そのような受付操作を未対応操作として特定する。
具体的には、アプリケーションプログラムは、そのアプリケーションプログラムが受け付け可能な全ての受付操作各々の操作識別情報を含む。また、HDD115は、ハードキー部170が備える複数のハードキー各々に対して、そのハードキーのキー識別情報と、ハードキーに割り当てられた操作識別情報とを関連付けたマスターテーブル91を記憶している。未対応操作特定部63は、アプリケーションプログラムに含まれる複数の受付操作にそれぞれ対応する複数の操作識別情報と、マスターテーブルとを用いて、アプリケーションプログラムに含まれる複数の操作識別情報のうちで、マスターテーブルによってキー識別情報と関連付けられていない操作識別情報の受付操作を未対応操作に特定する。未対応操作特定部63は、特定された未対応操作を識別するための操作識別情報を関連付部61に出力する。未対応操作特定部63は、複数の未対応操作を特定する場合、複数の未対応操作にそれぞれ対応する複数の操作識別情報を関連付部61に出力する。
例えば、第1アプリ実行部65が実行するアプリケーションプログラムを例に説明すると、未対応操作特定部63は、操作識別情報「右スクロール」、操作識別情報「左スクロール」、操作識別情報「上スクロール」、操作識別情報「下スクロール」、操作識別情報「コピー画面へ遷移」、操作識別情報「FAX画面へ遷移」、操作識別情報「スキャン画面に遷移」を、無対応操作として特定する。
関連付部61は、未対応操作特定部63から未対応操作の操作識別情報が入力され、ユーザー特定部69からユーザー識別情報が入力される。関連付部61は、未対応操作を特定操作と関連付け、ユーザーごとに関連付テーブルを生成し、HDD115に記憶する。HDD115は、ユーザーごとに関連付テーブルを記憶する。
関連付部61は、関連付テーブル取得部71と、関連付テーブル編集部79と、を含む。関連付テーブル取得部71は、操作ユーザーに対応する関連付テーブルを取得する。関連付テーブル取得部71は、関連付テーブル特定部73と、テーブル生成部75と、を含む。関連付テーブル特定部73は、操作ユーザーに対応する関連付テーブルを特定する。関連付テーブル取得部71は、HDD115に、ユーザー特定部69から入力される操作ユーザーのユーザー識別情報と関連付けられた関連付テーブルが記憶されていれば、その関連付テーブルを特定する。関連付テーブル特定部73は、関連付テーブルを特定する場合、その関連付テーブルをHDD115から読出し、読み出された関連付テーブルをテーブル生成部75および関連付テーブル編集部79に出力する。関連付テーブル特定部73は、関連付テーブルを特定しない場合、テーブル生成部75に生成指示を出力する。生成指示は、操作ユーザーのユーザー識別情報を含む。
テーブル生成部75は、未対応操作特定部63から未対応操作の操作識別情報が入力され、関連付テーブル特定部73から生成指示が入力される場合、生成指示に含まれるユーザー識別情報で特定されるユーザーに対応する関連付テーブルを生成し、生成した関連付けテーブルを、操作ユーザーと関連付けてHDD115に記憶する。テーブル生成部75は、追加関連付部77を含む。
追加関連付部77は、未対応操作特定部63から未対応操作の操作識別情報が入力され、関連付テーブル特定部73から関連付テーブルが入力される場合、未対応操作特定部63から入力される操作識別情報で特定される未対応操作のうちで、関連付テーブルにおいて特定操作と関連付けていない未対応操作と特定操作とを関連付けた関連付レコードを生成し、関連付テーブルに生成された関連付レコードを追加する。追加関連付部77が、未対応操作に関連付ける特定操作は、関連付テーブル特定部73から入力される関連付テーブルにおいて、未対応操作に関連付けられている特定操作以外の特定操作である。換言すれば、関連付テーブルは、複数の特定操作それぞれを操作識別情報と関連付ける場合、複数の特定操作それぞれは、ハードキー部170が備える複数のハードキーのうち他の特定操作に含まれるキーと異なるキーを含む。追加関連付部77は、関連付レコードを追加した関連付テーブルで、HDD115に記憶されている関連付テーブルを更新する。
ここで、第1アプリ実行部65が実行するアプリケーションプログラムに対応する関連付テーブルについて具体例を示す。図7は、ユーザーAに対応する関連付テーブルの一例を示す図である。図7を参照して、関連付テーブル93Aは、ユーザーAと関連付けてHDD115に記憶され、第1アプリ実行部65が実行するアプリケーションプログラムで受け付け可能な受付操作のうちマスターテーブル91で定められていない受付操作に対して、特定操作を関連付けた関連付レコードを含む。
関連付レコードは、操作識別情報の項目と、特定操作の項目と、を含む。操作識別情報の項目には、アプリケーションプログラムが受け付けることが可能な受付操作のうちマスターテーブル91で定められていない受付操作の操作識別情報が設定される。特定操作の項目は、キー識別情報の項目と状態変化条件の項目とを含む。キー識別情報の項目は、ハードキー部170に含まれる複数のハードキーのいずれかのキー識別情報が設定され、状態変化条件の項目は、状態変化条件が設定される。状態変化条件は、ハードキー部170に含まれる複数のハードキーのいずれ1つが押下されてからのそのハードキーの状態の変化またはそのハードキーとは別のハードキーの状態の変化を示す。
具体的には、関連付テーブル93Aは、操作識別情報の項目に、操作識別情報「右スクロール」、操作識別情報「左スクロール」、操作識別情報「上スクロール」、操作識別情報「下スクロール」、操作識別情報「コピー画面へ遷移」、操作識別情報「FAX画面へ遷移」、操作識別情報「スキャン画面に遷移」が、それぞれ設定された7つの関連付レコードを含む。
「右スクロール」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「6ORstop」が設定され、状態変化条件の項目に「stopOR6」が設定される。これは、操作識別情報「右スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「6」のハードキーと、状態変化条件の項目に設定されたキー識別情報「stop」と、が関連付けられ、キー識別情報「6」のハードキーが押下されてからキー識別情報「stop」が押下される状態と、操作識別情報「右スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「stop」のハードキーと、状態変化条件の項目に設定されたキー識別情報「6」と、が関連付けられ、キー識別情報「stop」のハードキーが押下されてからキー識別情報「6」が押下される状態を示す。換言すれば、操作識別情報「右スクロール」に対して、キー識別情報「6」のハードキーとキー識別情報「stop」とを同時に押下する操作を関連付ける。
「左スクロール」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「4ORstop」が設定され、状態変化条件の項目に「stopOR4」が設定される。これは、操作識別情報「左スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「4」のハードキーと、状態変化条件の項目に設定されたキー識別情報「stop」と、が関連付けられ、キー識別情報「4」のハードキーが押下されてからキー識別情報「stop」が押下される状態と、操作識別情報「左スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「stop」のハードキーと、状態変化条件の項目に設定されたキー識別情報「4」と、が関連付けられ、キー識別情報「stop」のハードキーが押下されてからキー識別情報「4」が押下される状態を示す。換言すれば、操作識別情報「左スクロール」に対して、キー識別情報「4」のハードキーとキー識別情報「stop」とを同時に押下する操作を関連付ける。
「上スクロール」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「8ORstop」が設定され、状態変化条件の項目に「stopOR8」が設定される。これは、操作識別情報「上スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「8」のハードキーと、状態変化条件の項目に設定されたキー識別情報「stop」と、が関連付けられ、キー識別情報「8」のハードキーが押下されてからキー識別情報「stop」が押下される状態と、操作識別情報「上スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「stop」のハードキーと、状態変化条件の項目に設定されたキー識別情報「8」と、が関連付けられ、キー識別情報「stop」のハードキーが押下されてからキー識別情報「8」が押下される状態を示す。換言すれば、操作識別情報「上スクロール」に対して、キー識別情報「8」のハードキーとキー識別情報「stop」とを同時に押下する操作を関連付ける。
「下スクロール」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「2ORstop」が設定され、状態変化条件の項目に「stopOR2」が設定される。これは、操作識別情報「下スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「2」のハードキーと、状態変化条件の項目に設定されたキー識別情報「stop」と、が関連付けられ、キー識別情報「2」のハードキーが押下されてからキー識別情報「stop」が押下される状態と、操作識別情報「下スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「stop」のハードキーと、状態変化条件の項目に設定されたキー識別情報「2」と、が関連付けられ、キー識別情報「stop」のハードキーが押下されてからキー識別情報「2」が押下される状態を示す。換言すれば、操作識別情報「下スクロール」に対して、キー識別情報「2」のハードキーとキー識別情報「stop」とを同時に押下する操作を関連付ける。
「コピー画面へ遷移」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「1」が設定され、状態変化条件の項目に「長押し」が設定される。これは、操作識別情報「コピー画面へ遷移」に対して、キー識別情報の項目に設定されたキー識別情報「1」のハードキーが押下されながら所定時間が経過する状態を示す。換言すれば、操作識別情報「コピー画面へ遷移」に対して、キー識別情報「1」のハードキーを所定時間以上押下する操作を関連付ける。
「FAX画面へ遷移」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「2」が設定され、状態変化条件の項目に「長押し」が設定される。これは、操作識別情報「FAX画面へ遷移」に対して、キー識別情報の項目に設定されたキー識別情報「2」のハードキーが押下されながら所定時間が経過する状態を示す。換言すれば、操作識別情報「FAX画面へ遷移」に対して、キー識別情報「2」のハードキーを所定時間以上押下する操作を関連付ける。
「スキャン画面へ遷移」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「3」が設定され、状態変化条件の項目に「長押し」が設定される。これは、操作識別情報「スキャン画面へ遷移」に対して、キー識別情報の項目に設定されたキー識別情報「3」のハードキーが押下されながら所定時間が経過する状態を示す。換言すれば、操作識別情報「スキャン画面へ遷移」に対して、キー識別情報「3」のハードキーを所定時間以上押下する操作を関連付ける。
図8は、ユーザーBに対応する関連付テーブルの一例を示す図である。図8を参照して、関連付テーブル93Bは、ユーザーBと関連付けてHDD115に記憶され、第1アプリ実行部65が実行するアプリケーションプログラムで受け付け可能な受付操作のうちマスターテーブル91で定められていない受付操作に対して、特定操作を関連付けた関連付レコードを含む。
具体的には、「右スクロール」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「6ORreset」が設定され、状態変化条件の項目に「resetOR6」が設定される。これは、操作識別情報「右スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「6」のハードキーと、状態変化条件の項目に設定されたキー識別情報「reset」と、が関連付けられ、キー識別情報「6」のハードキーが押下されてからキー識別情報「reset」が押下される状態と、操作識別情報「右スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「reset」のハードキーと、状態変化条件の項目に設定されたキー識別情報「6」と、が関連付けられ、キー識別情報「reset」のハードキーが押下されてからキー識別情報「6」が押下される状態を示す。換言すれば、操作識別情報「右スクロール」に対して、キー識別情報「6」のハードキーとキー識別情報「reset」とが同時に押下される操作を関連付ける。
「左スクロール」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「4ORreset」が設定され、状態変化条件の項目に「resetOR4」が設定される。これは、操作識別情報「左スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「4」のハードキーと、状態変化条件の項目に設定されたキー識別情報「reset」と、が関連付けられ、キー識別情報「4」のハードキーが押下されてからキー識別情報「reset」が押下される状態と、操作識別情報「左スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「reset」のハードキーと、状態変化条件の項目に設定されたキー識別情報「4」と、が関連付けられ、キー識別情報「reset」のハードキーが押下されてからキー識別情報「4」が押下される状態を示す。換言すれば、操作識別情報「左スクロール」に対して、キー識別情報「4」のハードキーとキー識別情報「reset」とが同時に押下される操作を関連付ける。
「上スクロール」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「8ORreset」が設定され、状態変化条件の項目に「resetOR8」が設定される。これは、操作識別情報「上スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「8」のハードキーと、状態変化条件の項目に設定されたキー識別情報「reset」と、が関連付けられ、キー識別情報「8」のハードキーが押下されてからキー識別情報「reset」が押下される状態と、操作識別情報「上スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「reset」のハードキーと、状態変化条件の項目に設定されたキー識別情報「8」と、が関連付けられ、キー識別情報「reset」のハードキーが押下されてからキー識別情報「8」が押下される状態を示す。換言すれば、操作識別情報「上スクロール」に対して、キー識別情報「8」のハードキーとキー識別情報「reset」とが同時に押下される操作を関連付ける。
「下スクロール」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「2ORreset」が設定され、状態変化条件の項目に「resetOR2」が設定される。これは、操作識別情報「下スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「2」のハードキーと、状態変化条件の項目に設定されたキー識別情報「reset」と、が関連付けられ、キー識別情報「2」のハードキーが押下されてからキー識別情報「reset」が押下される状態と、操作識別情報「下スクロール」に対して、キー識別情報の項目に設定されたキー識別情報「reset」のハードキーと、状態変化条件の項目に設定されたキー識別情報「2」と、が関連付けられ、キー識別情報「reset」のハードキーが押下されてからキー識別情報「2」が押下される状態を示す。換言すれば、操作識別情報「下スクロール」に対して、キー識別情報「2」のハードキーとキー識別情報「reset」とが同時に押下される操作を関連付ける。
「コピー画面へ遷移」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「1」が設定され、状態変化条件の項目に「ダブルプッシュ」が設定される。これは、操作識別情報「コピー画面へ遷移」に対して、キー識別情報の項目に設定されたキー識別情報「1」のハードキーが所定時間以内に2回押下される状態を示す。換言すれば、操作識別情報「コピー画面へ遷移」に対して、キー識別情報「1」のハードキーを所定時間以内に2回押下する操作を関連付ける。
「FAX画面へ遷移」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「2」が設定され、状態変化条件の項目に「ダブルプッシュ」が設定される。これは、操作識別情報「FAX画面へ遷移」に対して、キー識別情報の項目に設定されたキー識別情報「2」のハードキーが押下されながら所定時間が経過する状態を示す。換言すれば、操作識別情報「FAX画面へ遷移」に対して、キー識別情報「2」のハードキーを所定時間以内に2回押下する操作を関連付ける。
「スキャン画面へ遷移」が特定操作の項目に設定された関連付レコードは、キー識別情報の項目に「3」が設定され、状態変化条件の項目に「ダブルプッシュ」が設定される。これは、操作識別情報「スキャン画面へ遷移」に対して、キー識別情報の項目に設定されたキー識別情報「3」のハードキーが押下されながら所定時間が経過する状態を示す。換言すれば、操作識別情報「スキャン画面へ遷移」に対して、キー識別情報「3」のハードキーを所定時間以内に2回押下する操作を関連付ける。
図5に戻って、関連付テーブル編集部79は、関連付テーブル取得部71から入力される関連付テーブルを、ユーザーの操作に基づいて変更し、変更後の関連付テーブルで、HDD115に記憶されている関連付テーブルを更新する。具体的には、LCD165に関連付テーブルを含む編集画面を表示し、ユーザーがタッチパネル169またはハードキー部170に入力する操作に基づいて、関連付テーブルを編集する。関連付テーブル編集部79は、関連付テーブルに含まれる複数の関連付レコードそれぞれの特定操作を別の特定操作に変更する。ただし、関連付テーブル編集部79は、関連付レコードのキー識別情報の項目および状態変化条件の項目のみを変更し、操作識別情報の項目の変更はしない。さらに、関連付テーブル編集部79は、関連付レコードの削除はしない。
また、関連付テーブル編集部79は、アプリケーションプログラムが実行される段階で、関連付テーブルをLCD165に表示する。具体的には、関連付テーブル編集部79は、アプリケーションプログラムの実行が指示されると、アプリケーションプログラムの実行を指示したユーザーに関連付けられた関連付テーブルをHDD115から読出し、関連付テーブルのうちからアプリケーションプログラムで定められる複数の受付操作のうち関連付テーブルで定められる受付操作に対応する関連付レコードを抽出し、抽出された関連付レコードを表示する特定操作表示画面をLCD165に表示する。このため、ユーザーに、アプリケーションプログラムを実行するタスクが処理を実行する前の段階で、特定操作を通知することができる。
調停部53および操作変換部55は、CPU111が操作標準化プログラムを実行するタスクによって実行される機能である。調停部53は、図4に示したソフトウェアアーキテクチャにおいて、アプリケーションPF層に属する。操作変換部55は、図4に示したソフトウェアアーキテクチャにおいて、アプリケーションPF層およびMFPプロセス層に属する。なお、操作変換部55が有する機能の少なくとも一部をアプリケーションPF層の機能とし、他の部分をMFPプロセス層の機能としたが、操作変換部55が有する機能のすべてをアプリケーションPF層の機能としてもよい。
調停部53は、第1アプリ実行部65および第2アプリ実行部67のうちいずれか1つを、データの入出力が可能なカレント状態に決定する。以下、調停部53が、第1および第2アプリ実行部65,67のうちカレント状態に決定しているものを、カレントタスクという。調停部53は、第1アプリ実行部65および第2アプリ実行部67のうちカレントタスクが出力するアプリコマンドが入力され、カレントタスクを識別するためのアプリ識別情報とアプリコマンドとを操作変換部55に出力する。調停部53は、第1アプリ実行部65がカレント状態の場合、第1アプリ実行部65がカレントタスクなので、第1アプリ実行部65を識別するためのアプリ識別情報と第1アプリ実行部65が出力するアプリコマンドを操作変換部55に出力する。調停部53は、第2アプリ実行部67がカレント状態の場合、第2アプリ実行部67がカレントタスクなので、第2アプリ実行部67を識別するためのアプリ識別情報と第2アプリ実行部67が出力するアプリコマンドとを操作変換部55に出力する。
調停部53は、第1および第2アプリ実行部65,67それぞれから複数のアプリコマンドが出力される場合、それらの順番を決定し、順に操作変換部55に出力する。例えば、複数のアプリコマンドを同時に実行できない場合に、一方のアプリコマンドの操作変換部55による実行が終了するのを待って他方のアプリコマンドを操作変換部55に出力する。また、一方のアプリコマンドを実行した後でなければ、他方のアプリコマンドを実行できない場合には、他方のアプリコマンドが一方のアプリコマンドより先に入力される場合であっても、一方のアプリコマンドを先に出力する。
操作変換部55は、調停部53からアプリコマンドが入力され、アプリコマンドを、予め定められた規則に従って変換することにより標準化する。このため、第1アプリケーションプログラムおよび第2アプリケーションプログラムとのバージョンが異なり、互いに異なるバージョンのアプリコマンドを出力する場合であっても、標準化されたアプリコマンドに変換することができる。さらに、操作変換部55は、標準化されたアプリコマンドを、オペレーティングコマンドに変換し、オペレーティングコマンドをオペレーティング部57に出力する。オペレーティングコマンドは、操作変換部55とオペレーティング部57との間で予め定められた、オペレーティング部57が解釈可能なコマンドである。
オペレーティング部57は、CPU111がOSプログラムを実行するタスクによって実行される機能である。オペレーティング部57は、図4に示したソフトウェアアーキテクチャにおいて、OS層に属する。
オペレーティング部57は、操作変換部55が出力するオペレーティングコマンドが入力され、オペレーティングコマンドに従って、ハードウェア資源を制御する。ハードウェア資源として、ここでは、HDD115、入力制御部167および表示制御部165を例に説明する。オペレーティング部57は、HDD115を制御して、HDD115にデータの保存する、またはHDD115に記憶されたデータを読み出す。オペレーティング部57は、表示制御部165を制御して、LCD165に画像を表示させる。
さらに、オペレーティング部57は、入力制御部167が出力するハードキーのキー識別情報またはLCD165の表示面の位置を示す位置情報を受け付ける。オペレーティング部57は、入力制御部167からハードキーのキー識別情報または位置情報を受け付ける場合、受け付けられたハードキーの識別情報または位置情報を操作識別情報として、操作変換部55に出力する。操作識別情報は、ハードキー部170およびタッチパネル169が受け付けることのできる複数種類の操作のうちMFP100を操作する操作ユーザーにより指示された指示操作を識別するための情報である。
オペレーティング部57は、入力制御部167から同時に2以上のハードキーのキー識別情報または位置情報を受け付ける場合がある。例えば、操作ユーザーが、ハードキー部170が有する複数のハードキーのうち2以上を同時に押下する場合、押下された2以上のハードキーそれぞれのキー識別情報を受け付ける。また、操作ユーザーが、LCD165の表示面の異なる2つの部分を、2つの指で同時に指示する場合、指示された表示面の2つの位置それぞれを示す位置情報を受け付ける。さらに、操作ユーザーが、ハードキー部170が有する複数のハードキーのうち1つを押下しながら、LCD165の表示面を指で指示する場合、押下されたハードキーのキー識別情報と、指示された表示面の位置を示す位置情報とを受け付ける。オペレーティング部57は、入力制御部167から同時に2以上のハードキーのキー識別情報または位置情報を受け付ける場合、2以上のハードキーのキー識別情報または位置情報を、操作変換部55に出力する。
操作変換部55は、操作判断部81と、操作特定部83と、操作通知部85と、を含む。操作判断部81は、オペレーティング部57から入力されるハードキーのキー識別情報で特定される操作が特定操作と通常操作とのいずれであるかを判断する。操作判断部81は、MFP100を操作する操作ユーザーのユーザー識別情報をユーザー特定部69から取得し、そのユーザー識別情報と関連付けられた関連付テーブルがHDD15に記憶されているか否か判断する。操作判断部81は、そのような関連付テーブルがHDD15に記憶されていなければ、オペレーティング部57から入力されるハードキーのキー識別情報を通常操作と判断し、通常操作であることを示す信号とキー識別情報との組を操作特定部83に出力する。
操作判断部81は、MFP100を操作する操作ユーザーのユーザー識別情報と関連付けられた関連付テーブルがHDD115に記憶されているならばその関連付テーブルをHDD115から読み出す。例えば、操作ユーザーがユーザーAの場合、関連付テーブル93AをHDD115から読み出す。操作判断部81は、オペレーティング部57から入力されるハードキーのキー識別情報がキー識別情報の項目に設定された関連付レコードを抽出し、抽出された関連付レコードで定められる状態変化条件を満たすか否かを判断する。
具体例として、ユーザーAがMFP100を操作する場合について説明する。この場合、図7に示した関連付テーブル93AがHDD115から読み出される。ユーザーAが数字キー群177のキー識別情報「6」のハードキーを押下すれば、操作識別情報の項目に「右スクロール」が設定された関連付レコードを抽出する。そして、「6」のハードキーを押下した状態で、状態変化条件の項目に設定されたキー識別情報「stop」で特定されるハードキーが押下されると、状態変化条件が成立すると判断する。キー識別情報「stop」で特定されるハードキーが押下されることなく、キー識別情報「6」のハードキーが押下されなくなると、状態変化条件を満たさないと判断する。ユーザーAが数字キー群177のキー識別情報「1」のハードキーを押下すれば、操作識別情報の項目に「コピー画面へ遷移」が設定された関連付レコードを抽出する。そして、「1」のハードキーを押下した状態が所定時間以上経過すると、状態変化条件が成立すると判断する。キー識別情報「1」のハードキーが押下されてから所定時間経過する前に押下されなくなると、状態変化条件を満たさないと判断する。
また、ユーザーBがMFP100を操作する場合、図8に示した関連付テーブル93BがHDD115から読み出される。ユーザーBが数字キー群177のキー識別情報「6」のハードキーを押下すれば、操作識別情報の項目に「右スクロール」が設定された関連付レコードを抽出する。そして、「6」のハードキーを押下した状態で、状態変化条件の項目に設定されたキー識別情報「reset」で特定されるハードキーが押下されると、状態変化条件が成立すると判断する。キー識別情報「reset」で特定されるハードキーが押下されることなく、キー識別情報「6」のハードキーが押下されなくなると、状態変化条件を満たさないと判断する。ユーザーBが数字キー群177のキー識別情報「1」のハードキーを押下すれば、操作識別情報の項目に「コピー画面へ遷移」が設定された関連付レコードを抽出する。そして、「1」のハードキーを所定時間以内に2回押下すると、状態変化条件が成立すると判断する。キー識別情報「1」のハードキーが所定時間以内に2回押下されなければ、状態変化条件を満たさないと判断する。例えば、キー識別情報「1」のハードキーが所定時間以上継続して押下される場合は、状態変化条件を満たさないと判断する。
操作判断部81は、状態変化条件を満たすと判断する場合、特定操作と判断し、状態変化条件を満たさないと判断する場合、通常操作と判断する。操作判断部81は、特定操作と判断する場合、特定操作であることを示す信号と関連付レコードとの組を操作特定部83に出力する。操作判断部81は、通常操作と判断する場合、通常操作であることを示す信号とキー識別情報との組を操作特定部83に出力する。
操作特定部83は、操作判断部81から通常操作であることを示す信号とキー識別情報との組が入力される場合、マスターテーブル91を参照して、そのキー識別情報に対してデフォルトで定められた操作識別情報を操作通知部85に出力する。操作特定部83は、操作判断部81から特定操作であることを示す信号と関連付レコードとの組が入力される場合、その関連付レコードの操作識別情報の項目に設定された操作識別情報を操作通知部85に出力する。
操作通知部85は、操作特定部83から操作識別情報が入力されることに応じて、その操作識別情報を調停部53に出力する。調停部53は、操作識別情報を、第1アプリ実行部65および第2アプリ実行部67のうちカレントタスクに出力する。
図9は、関連付テーブル生成処理の流れの一例を示すフローチャートである。関連付テーブル生成処理は、MFP100が備えるCPU111が、ROM113、HDD115またはCD−ROM118に記憶された関連付テーブル生成プログラムを実行することにより、CPU111により実行される処理である。関連付テーブル生成プログラムは、操作拡張プログラムの一部である。
図9を参照して、CPU111は、アプリケーションプログラムがインストールされたか否かを判断する。新たなアプリケーションプログラムがインストールされるまで待機状態となり(ステップS01でNO)、新たなアプリケーションプログラムがインストールされたならば処理をステップS02に進める。換言すれば、関連付テーブル生成処理は、新たなアプリケーションプログラムがインストールされることを条件に実行される処理である。なお、アプリケーションプログラムがインストールされる場合とは別に、アプリケーションプログラムが実行されることを条件に、関連付テーブル生成処理を実行するようにしてもよい。
ステップS02においては、新たにインストールされたアプリケーションプログラムによって定められる複数種類の受付操作各々の操作識別情報を取得する。アプリケーションプログラムをインストールする最中に、アプリケーションプログラムに記述されている複数の操作識別情報を取得する。なお、インストールされたアプリケーションプログラムを実行するタスクから複数の操作識別情報を取得するようにしてもよい。
ステップS03においては、HDD115に記憶されているマスターテーブル91を読み出す。そして、ステップS02において取得された複数の操作識別情報のうちから1つを処理対象に選択する(ステップS04)。次のステップS05においては、処理対象に選択された操作識別情報で特定される受付操作が通常操作か否かを判断する。マスターテーブル91は、通常操作とキー識別情報とを関連付けたマスターレコードを含むので、処理対象に選択された操作識別情報が操作識別情報の項目に設定されたマスターレコードが存在すれば、通常操作と判断し、そのようなマスターレコードが存在しなければ通常操作でないと判断する。処理対象に選択された操作識別情報で特定される受付操作が通常操作でないと判断する場合は処理をステップS06に進めるが、通常操作と判断する場合はステップS06をスキップして処理をステップS07に進める。ステップS06においては、処理対象に選択された操作識別情報で特定される受付操作を未対応操作に設定し、処理をステップS07に進める。
ステップS07においては、ステップS02において取得された複数の操作識別情報のうちステップS04において選択されていない操作識別情報が存在するか否かを判断する。そのような操作識別情報が存在すれば処理をステップS04に戻すが、そうでなければ処理をステップS08に進める。
ステップS08においては、HDD115に関連付テーブルが記憶されているか否かを判断する。HDD115に少なくとも1つの関連付テーブルが記憶されていれば、処理をステップS09に進めるが、そうでなければ処理をステップS16に進める。ステップS09においては、HDD115に記憶されている1以上の関連付テーブルのうちから1つを読み出す。
ステップS10においては、ステップS06において設定された1以上の未対応操作のうちから1つを処理対象に選択する。次のステップS11においては、処理対象に選択された未対応操作が、ステップS09において読み出された関連付テーブルに登録されているか否かを判断する。未対応操作が関連付テーブルに登録されていなければ処理をステップS12に進めるが、登録されていれば処理をステップS14に進める。関連付テーブルは、受付操作の操作識別情報と、特定操作とを関連付けた関連付レコードを含むので、処理対象に選択された未対応操作の操作識別情報と同じ操作識別情報が操作識別情報の項目に設定された関連付レコードが存在すれば、未対応操作が関連付テーブルに登録されていると判断し、そうでなければ登録されていないと判断する。
ステップS12においては、関連付レコードを生成する。処理対象に選択された未対応操作の操作識別情報を操作識別情報の項目に設定し、キー識別情報の項目および状態変化条件の項目に、他の関連付レコードに設定されていないキー識別情報および状態変化条件の組を設定する。例えば、キー識別情報と状態変化条件との組に優先順位を付与した候補操作を予め準備しておき、優先順の高い候補操作から順に選択して、選択された候補操作のキー識別情報と状態変化条件の組を関連付レコードに設定するようにすればよい。また、複数の候補操作をLCD165に表示し、表示された複数の候補操作のうちからユーザーがタッチパネル169またはハードキー部170を操作することにより選択した候補操作のキー識別情報と状態変化条件の組を関連付レコードに設定するようにしてもよい。
次のステップS13においては、生成された関連付レコードを、ステップS09において読み出した関連付テーブルに追加し、処理をステップS14に進める。次のステップS14においては、ステップS06において設定された1以上の未対応操作のうちで、ステップS10において処理対象に選択されていない未対応操作が存在するか否かを判断する。そのような未対応操作が存在すれば処理をステップS10に戻し、存在しなければ処理をステップS15に進める。
ステップS15においては、HDD115に記憶されている関連付テーブルを、ステップS13において関連付レコードが追加された関連付テーブルで更新し、処理をステップS16に進める。ステップS16においては、HDD115に記憶されている1以上の関連付テーブルのうちに、ステップS09において読み出されていない関連付テーブルが存在するか否かを判断する。そのような関連付テーブルが存在すれば処理をステップS09に戻すが、そうでなければ処理を終了する。
一方、ステップS17においては、ステップS06において設定された1以上の未対応操作のうちから1つを処理対象に選択する。次のステップS18においては、ステップS12と同様に、関連付レコードを生成する。そして、生成された関連付レコードを、新たな関連付けレコードに追加する(ステップS19)。次のステップS20においては、ステップS06において設定された1以上の未対応操作のうちで、ステップS17において処理対象に選択されていない未対応操作が存在するか否かを判断する。そのような未対応操作が存在すれば処理をステップS17に戻し、存在しなければ処理をステップS21に進める。ステップS21においては、ステップS19において関連付レコードが追加された新たな関連付テーブルをHDD115に記憶し、処理を終了する。
本実施の形態においては、HDD115にMFP100を操作する複数の操作ユーザーそれぞれに関連付けて関連付テーブルを記憶する。アプリケーションプログラムをインストールする段階では、インストールを指示するユーザーが、複数の操作ユーザーのいずれか一人である。このため、ステップS09〜ステップS16が実行されることによって、複数の操作ユーザーにそれぞれ関連付けられた複数の関連付テーブルのすべてを更新する。なお、アプリケーションプログラムが実行される段階で、関連付テーブルを更新する場合には、アプリケーションプログラムの実行を指示した操作ユーザーに関連付けられた関連付テーブルのみを更新するようにしてもよい。
また、処理がステップS17に進む場合は、関連付テーブルがHDD115に1つも記憶されていない場合である。この場合には、ステップS17〜ステップS21が実行されて、新たな関連付テーブルがHDD115に記憶される。この関連付テーブルは、複数の操作ユーザーのいずれにも関連付けられていないため、複数の操作ユーザーによって共有される関連付テーブルとすればよい。また、複数の操作ユーザーによって共有される関連付テーブルを、コピーした新たな関連付テーブルを、複数の操作ユーザーのいずれかに関連付けるようにしてもよい。
図10は、操作通知処理の流れの一例を示すフローチャートである。操作通知処理は、MFP100が備えるCPU111が、ROM113、HDD115またはCD−ROM118に記憶された操作通知プログラムを実行することにより、CPU111により実行される処理である。操作通知プログラムは、操作拡張プログラムの一部である。
図10を参照して、CPU111は、MFP100を操作するユーザーを操作ユーザーに特定する(ステップS21)。LCD165にログイン画面を表示し、ユーザーがハードキー部170またはタッチパネル169に入力するユーザーIDを受け付けることによりユーザーを特定する。なお、パスワードなどの認証情報を用いて、MFP100を操作する権限が与えられたユーザーであることを確認する場合に、ユーザーを特定するようにしてもよい。次のステップS22においては、HDD115から操作ユーザーと関連付けられた関連付テーブルを読み出す。
ステップS23においては、ハードキーの押下を検出したか否かを判断する。ハードキーの押下を検出するまで待機状態となり(ステップS23でNO)、ハードキーの押下を検出したならば(ステップS23でYES)、処理をステップS24に進める。ステップS24においては、関連付けレコードを特定できたか否かを判断する。関連付レコードを検出できたならば処理をステップS25に進めるが、そうでなければ処理をステップS29に進める。ステップS22において読み出した関連付テーブルに含まれる複数の関連付レコードのうちで、ステップS23において押下されたことが検出されたハードキーのキー識別情報と同じキー識別情報がキー識別情報の項目に設定された関連付レコードを特定する。
ステップS25においては、状態変化条件が成立したか否かを判断する。状態変化条件が成立すると判断する場合は、処理をステップS26に進めるが、そうでなければ処理をステップS29に進める。ステップS24において特定された関連付レコードで定められる状態変化条件の項目に設定された状態変化が発生するか否かを判断する。具体例として、ユーザーAがMFP100を操作する場合について説明する。この場合、ステップS22において図7に示した関連付テーブル93AがHDD115から読み出される。ユーザーAが数字キー群177のキー識別情報「6」のハードキーを押下すれば、操作識別情報の項目に「右スクロール」が設定された関連付レコードを抽出する。そして、「6」のハードキーを押下した状態で、状態変化条件の項目に設定されたキー識別情報「stop」で特定されるハードキーが押下されると、状態変化条件が成立すると判断する。キー識別情報「stop」で特定されるハードキーが押下されることなく、キー識別情報「6」のハードキーが押下されなくなると、状態変化条件を満たさないと判断する。また、ユーザーAが数字キー群177のキー識別情報「1」のハードキーを押下すれば、操作識別情報の項目に「コピー画面へ遷移」が設定された関連付レコードを抽出する。そして、「1」のハードキーを押下した状態が所定時間以上経過すると、状態変化条件が成立すると判断する。キー識別情報「1」のハードキーが押下されてから所定時間経過する前に押下されなくなると、状態変化条件を満たさないと判断する。
ステップS26においては、ステップS23において押下されたことが検出されたハードキーに対するユーザーによる操作を特定操作に決定し、処理をステップS27に進める。ステップS27においては、ステップS24において特定された関連付レコードから操作識別情報を決定し、処理をステップS28に進める。具体的には、関連付レコードの操作識別情報の項目に設定されている操作識別情報を取得する。ステップS28においては、処理がステップS27から進む場合、ステップS27において決定された操作識別情報を、アプリケーションプログラムを実行するカレントタスクに出力し、処理をステップS31に進める。
ステップS29においては、ステップS23において押下されたことが検出されたハードキーに対するユーザーによる操作を通常操作に決定し、処理をステップS30に進める。ステップS30においては、マスターテーブル91から操作識別情報を決定する。具体的には、HDD115に記憶されたマスターテーブル91に含まれる複数のマスターレコードのうちで、ステップS23において押下されたことが検出されたハードキーのキー識別情報と同じキー識別情報がキー識別情報の項目に設定されたマスターレコードを特定し、特定されたマスターレコードから操作識別情報を決定し、処理をステップS28に進める。具体的には、マスターレコードの操作識別情報の項目に設定されている操作識別情報を取得する。ステップS28においては、処理がステップS30から進む場合、ステップS30において特定された操作識別情報を、アプリケーションプログラムを実行するカレントタスクに出力し、処理をステップS31に進める。
ステップS31においては、操作ユーザーがログアウトしたか否かを判断する。操作ユーザーがログアウトしたならば処理を終了するが、そうでなければ処理をステップS23に戻す。
以上説明したように、本実施の形態におけるMFP100は、画像処理装置として機能し、アプリケーションプログラムがインストールされる段階、または、アプリケーションプログラムが実行される段階で、アプリケーションプログラムが定める複数種類の受付操作のうち複数のキーのいずれか1つのみに対応する複数の通常操作のいずれとも関連付けられていない未対応操作を特定し、特定された未対応操作を、ハードキー部170が有する複数のハードキーのうち1つのハードキーと、当該ハードキーが押下されてからの当該ハードキーまたは別のハードキーの状態の変化を示す状態変化条件との組み合わせからなる特定操作と関連付ける。そして、MFP100は、複数種類の受付操作のいずれかが特定操作と関連付けられる場合、ハードキー部170が有する複数のハードキーのうちいずれかがユーザーにより指示されることに応じて、特定操作と通常操作とのいずれであるかを判断し、通常操作と判断される場合、指示されたハードキーに対応する通常操作と関連付けられた受付操作を特定し、特定操作と判断される場合、指示されたハードキーに対応する特定操作と関連付けられた受付操作を特定する。このため、アプリケーションプログラムが、ハードキー部170が有する複数のハードキーのいずれにも対応しない受付操作を定める場合であっても、その受付操作を複数のハードキーを用いて受け付けることができる。換言すれば、ハードキー部170が有する複数のハードキーを用いて受け付けること受け付けることが可能な操作を、複数のハードキーの数よりも多くすることができる。
また、アプリケーションプログラムが複数の未対応操作を定める場合、複数の未対応操作に複数の特定操作のいずれかを関連付けるが、複数の未対応操作に関連付けられる複数の特定操作それぞれは、複数のハードキーのうち他の特定操作に含まれるハードキーと異なるハードキーを含む。このため、複数の特定操作を複数のハードキーのいずれかで判別することができ、操作を容易にすることができる。
また、MFP100は、操作識別情報と特定操作とを関連付けた関連付レコードを含む関連付テーブル93A,93Bを生成するので、受付操作と特定操作とを容易に関連付けることができる。
また、MFP100は、複数のアプリケーションプログラムに共通の関連付テーブルを生成するので、複数のアプリケーションプログラム間で同じ受付操作を、1つの特定操作と関連付けることができる。このため、複数のアプリケーションプログラムのいずれが実行される場合であっても、ユーザーは共通の特定操作を入力すればよいので、操作を容易にすることができる。
また、MFP100は、アプリケーションプログラムで定められる未対応操作が複数の場合、関連付テーブルに登録されていない未対応操作が存在しないことを条件に、関連付テーブルに登録されていない未対応操作の操作識別情報と、特定操作と関連付けた関連付レコードを生成する。このため、複数の未対応操作間で特定操作が重複しないようにすることができる。
さらに、MFP100は、複数のユーザーそれぞれに対応する関連付テーブルを記憶する場合、MFP100を操作する操作ユーザーに対応する関連付テーブルを特定し、特定された関連付テーブルを用いて、受付操作を特定する。このため、複数のユーザーごとに、特定操作を異ならせることができる。
また、特定操作に含まれる状態変化条件は、組になるキーが押下されてから押下されなくなるまでの時間が所定の時間以上である第1の条件、組になるキーが押下されてから押下されなくなるまでの間に別のキーが押下される第2の条件、組になるキーが所定時間以内に複数回に押下される第3の条件のいずれかを含むので、1つのキーに複数の操作を対応付けることができる。
なお、本実施の形態においては、関連付テーブル取得部71は、HDD115に関連付テーブル93A,93Bが記憶されている場合には、その関連付テーブル93A,93Bを取得するようにした。これに代えて、関連付テーブル取得部71は、MFP100とネットワークを介して接続されたサーバー、または他のMFPから関連付テーブルを取得するようにしてもよい。この場合には、複数のMFPで関連付テーブルを同じにすることができる。また、本実施の形態においては、HDD115にユーザーAとユーザーBとで、異なる関連付テーブル93A,93Bを記憶するようにしたが、HDD115に単一の関連付テーブルを記憶するようにし、複数のユーザーで共通の関連付テーブルを記憶するようにしてもよい。
なお、上述した実施の形態においては、画像処理装置の一例としてMFP100について説明したが、図9および図10に示した処理を、MFP100に実行させる操作拡張化方法、また、その操作拡張方法をMFP100を制御するCPU111に実行させる操作標拡張プログラムとして、発明を捉えることができるのは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。