(57)【要約】【課題】拡張アプリの汎用性を確保することができる画像処理装置を提供する。【解決手段】拡張アプリ３０３が対応する従来の仕様と異なる仕様のＭＦＰ１０１は、接続されたＵＳＢデバイスが拡張アプリ３０３に対応しない操作キーデバイス１１０である場合、接続されたＵＳＢデバイスをＯＳモジュール３０２によって制御する。【選択図】図５
2018029223.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステム及び機能を拡張するための拡張アプリケーションを備える画像処理装置であって、
前記画像処理装置に接続デバイスが接続された際に当該接続デバイスと通信する通信手段と、
前記接続デバイスを前記オペレーティングシステム及び前記拡張アプリケーションのいずれかによって制御する制御手段と、
前記接続デバイスが前記画像処理装置を操作する所定の操作デバイスであるか否かを判別する判別手段とを備え、
前記接続デバイスが前記所定の操作デバイスである場合、前記制御手段は、前記接続デバイスを前記オペレーティングシステムによって制御することを特徴とする画像処理装置。
【請求項２】
前記拡張アプリケーションによって制御する接続デバイスの種別をユーザに設定させる設定手段を更に備え、
前記接続デバイスが前記所定の操作デバイスである場合、前記設定手段の設定に関わらず、前記制御手段は、前記接続デバイスを前記オペレーティングシステムによって制御することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記接続デバイスが前記拡張アプリケーションによって制御する旨が設定された種別であるにも関わらず、前記接続デバイスが前記所定の操作デバイスであるので前記接続デバイスを前記オペレーティングシステムによって制御する場合、前記設定手段の設定と異なる制御を行う旨を通知する通知手段を更に備えることを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記判別手段は、前記接続デバイスから取得した当該接続デバイスを識別するベンダＩＤ及びプロダクトＩＤに基づいて前記接続デバイスが前記所定の操作デバイスであるか否かを判別することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記所定の操作デバイスは、ＵＳＢ規格に準拠したＵＳＢ  ＨＩＤクラスのＵＳＢデバイスであることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
オペレーティングシステム及び機能を拡張するための拡張アプリケーションを備える画像処理装置の制御方法であって、
前記画像処理装置に接続デバイスが接続された際に当該接続デバイスと通信する通信ステップと、
前記接続デバイスを前記オペレーティングシステム及び前記拡張アプリケーションのいずれかによって制御する制御ステップと、
前記接続デバイスが前記画像処理装置を操作する所定の操作デバイスであるか否かを判別する判別ステップとを有し、
前記接続デバイスが前記所定の操作デバイスである場合、前記制御ステップは、前記接続デバイスを前記オペレーティングシステムによって制御することを特徴とする画像処理装置の制御方法。
【請求項７】
オペレーティングシステム及び機能を拡張するための拡張アプリケーションを備える画像処理装置の制御方法をコンピュータに実行させるプログラムであって、
前記画像処理装置の制御方法は、
前記画像処理装置に接続デバイスが接続された際に当該接続デバイスと通信する通信ステップと、
前記接続デバイスを前記オペレーティングシステム及び前記拡張アプリケーションのいずれかによって制御する制御ステップと、
前記接続デバイスが前記画像処理装置を操作する所定の操作デバイスであるか否かを判別する判別ステップとを有し、
前記接続デバイスが前記所定の操作デバイスである場合、前記制御ステップは、前記接続デバイスを前記オペレーティングシステムによって制御することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
コピー、スキャン、及びＦＡＸ通信等の標準機能を実現する画像処理装置としてのＭＦＰが知られている。ＭＦＰは、タッチパネルや操作キー等の操作部を備え、ユーザの操作部の操作によって各標準機能に対応するジョブの実行指示等を受け付ける。ＭＦＰには、ＯＳ（Operating System）モジュールが予め組み込まれており、ＵＳＢメモリやＵＳＢキーボード等のＵＳＢデバイスが接続されると、ＭＦＰは接続されたＵＳＢデバイスをＯＳモジュールによって制御して該ＵＳＢデバイスをＭＦＰの一部として使用する。また、ＭＦＰは、拡張アプリケーションモジュール（以下、単に「拡張アプリ」という。）をインストールしてＭＦＰの標準機能では実現できない機能を拡張可能であり、拡張アプリもＭＦＰに接続されたＵＳＢデバイスを制御する。拡張アプリは汎用性を確保するように設計され、複数のＭＦＰの機種や複数のＵＳＢデバイスの機種に対応している。
【０００３】
ＭＦＰでは、一つのＵＳＢデバイスに対してＯＳモジュール及び拡張アプリの両方が制御を行うと、該ＵＳＢデバイスが誤動作を引き起こしてしまう。これに対して、ＭＦＰが拡張アプリのインストール時に該拡張アプリから拡張アプリが制御可能なＵＳＢデバイスを識別する識別情報を取得し、接続されたＵＳＢデバイスをＯＳモジュール及び拡張アプリの何れで制御するかを識別情報に基づいて決定する技術が提案されている（例えば、特許文献１参照）。識別情報は、ＵＳＢデバイスの機種に対する拡張アプリの汎用性を確保するために、例えば、ＵＳＢデバイスの単体を識別する情報ではなく、ＵＳＢデバイスの種別を識別する情報が設定される。
【０００４】
ところで、ＭＦＰでは、コスト削減の観点で操作部のうち操作キー部をＵＳＢデバイスとして外付けするといった新たな構成が検討されている。新たな構成のＭＦＰでは、従来と異なり、操作キー部も拡張アプリの制御対象に含まれ、この拡張アプリをそのまま新たな構成のＭＦＰにインストールすると、操作キー部が誤動作を引き起こす可能性がある。操作キー部の誤動作を防止するために、例えば、操作キー部を含むＵＳＢデバイスの種別（以下、「操作デバイス種別」という。）の設定を識別情報から削除することが考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１６５１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、操作デバイス種別の設定を識別情報から削除すると、拡張アプリにおいて、操作キー部以外の操作デバイス種別に対応する他のＵＳＢデバイスの使用も制限され、ＵＳＢデバイスに対する拡張アプリの汎用性を確保することができない。また、ＵＳＢデバイスに対する拡張アプリの汎用性を考慮して、新たな構成のＭＦＰ専用のアプリとして、操作デバイス種別の設定を削除した識別情報を含む拡張アプリを開発すると、当該拡張アプリは他のＭＦＰで使用することができない。そのため、ＭＦＰの機種に対する拡張アプリの汎用性を確保することができない。すなわち、従来では、ＭＦＰにおいて拡張アプリの識別情報に対応する仕様が従来のＭＦＰの仕様と異なる場合、拡張アプリの汎用性を確保することができない。
【０００７】
本発明の目的は、拡張アプリの汎用性を確保することができる画像処理装置及びその制御方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の画像処理装置は、オペレーティングシステム及び機能を拡張するための拡張アプリケーションを備える画像処理装置であって、前記画像処理装置に接続デバイスが接続された際に当該接続デバイスと通信する通信手段と、前記接続デバイスを前記オペレーティングシステム及び前記拡張アプリケーションのいずれかによって制御する制御手段と、前記接続デバイスが前記画像処理装置を操作する所定の操作デバイスであるか否かを判別する判別手段とを備え、前記接続デバイスが前記所定の操作デバイスである場合、前記制御手段は、前記接続デバイスを前記オペレーティングシステムによって制御することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、拡張アプリの汎用性を確保することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る画像処理装置としてのＭＦＰの構成を概略的に示すブロック図である。
【図２】図１の制御部の構成を概略的に示すブロック図である。
【図３】図１のＭＦＰのソフトウェアモジュールの構成を概略的に示すブロック図である。
【図４】図１の操作部に表示される設定画面の一例を示す図である。
【図５】図１のＭＦＰで実行されるドライバ選択処理の手順を示すフローチャートである。
【図６】本実施の形態における所定の操作デバイスの設定を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面を参照しながら詳述する。
【００１２】
本実施の形態では、画像処理装置としてのＭＦＰに本発明を適用した場合について説明するが、本発明の適用先はＭＦＰに限られず、例えば、接続されたＵＳＢデバイスと通信可能なＰＣ等の情報処理装置であれば本発明を適用することができる。
【００１３】
図１は、本発明の実施の形態に係る画像処理装置としてのＭＦＰ１０１の構成を概略的に示すブロック図である。
【００１４】
図１において、ＭＦＰ１０１は、制御部１０２、スキャナ部１０３、プリンタ部１０４、ＨＤＤ１０５、及び操作部１０８を備え、制御部１０２は、スキャナ部１０３、プリンタ部１０４、ＨＤＤ１０５、及び操作部１０８のそれぞれと接続されている。操作部１０８はＬＣＤパネル１０９及び操作キーデバイス１１０（接続デバイス）を備え、操作キーデバイス１１０は後述する図２のＵＳＢＩ／Ｆ２１１（通信手段）を介してＭＦＰ１０１と接続されている。
【００１５】
ＭＦＰ１０１は、コピー、スキャン、及びＦＡＸ通信等の各ジョブを実行し、また、ＭＦＰ１０１は後述する図２のＵＳＢＩ／Ｆ２１１を介して接続されたＵＳＢデバイスをＭＦＰ１０１の一部として使用可能である。さらに、ＭＦＰ１０１は複数の拡張アプリケーションをインストール可能である。
【００１６】
制御部１０２は接続されたスキャナ部１０３、プリンタ部１０４、ＨＤＤ１０５、及び操作部１０８を統括的に制御する。スキャナ部１０３は、図示しない原稿台に配置された原稿を読み取って画像データを生成し、該画像データをＨＤＤ１０５に出力する。プリンタ部１０４は、スキャナ部１０３で生成された画像データをＨＤＤ１０５から取得し、該画像データに基づいて用紙に印刷を行う。また、プリンタ部１０４は印刷された用紙を図示しない出力トレイ等に出力する。ＨＤＤ１０５は不揮発性メモリであり、アプリ格納領域１０６及び画像格納領域１０７を備える。アプリ格納領域１０６には、インストールされた拡張アプリの実行プログラム等が格納され、画像格納領域１０７にはスキャナ部１０３で生成された画像データ等が格納される。操作部１０８はＭＦＰ１０１のユーザインターフェースである。ＬＣＤパネル１０９はユーザのタッチ操作によって入力可能なタッチパネル機能を備える。操作キーデバイス１１０はテンキーや複数の操作キーを備え、ＵＳＢ規格に準拠し、且つ比較的安価な部品で構成される後述する図２のＵＳＢＩ／Ｆ２１１を介して通信可能なＵＳＢデバイスである。ＵＳＢデバイスには該ＵＳＢデバイスの種別を示すクラスＩＤが予め設定されており、操作キーデバイス１１０には各情報を入力するＵＳＢデバイスの種別を示すＵＳＢ  ＨＩＤ（Human Interface Device）クラスのクラスＩＤが設定されている。また、後述する図２のＵＳＢメモリ２１５等のデータを記憶するようなＵＳＢデバイスにはＵＳＢマスストレージクラスのクラスＩＤが設定されている。
【００１７】
図２は、図１の制御部１０２の構成を概略的に示すブロック図である。
【００１８】
図２において、制御部１０２は、ＣＰＵ２０１、ＲＡＭ２０２、スキャナＩ／Ｆ２０３、プリンタＩ／Ｆ２０４、ディスクコントローラ２０５、フラッシュメモリ２０６、パネルＩ／Ｆ２１０、及びＵＳＢＩ／Ｆ２１１を備える。ＣＰＵ２０１、ＲＡＭ２０２、スキャナＩ／Ｆ２０３、プリンタＩ／Ｆ２０４、ディスクコントローラ２０５、パネルＩ／Ｆ２１０、及びＵＳＢＩ／Ｆ２１１はシステムバス２１２を介して互いに接続されている。
【００１９】
ＣＰＵ２０１は、フラッシュメモリ２０６やＨＤＤ１０５に格納されたプログラムを実行して後述する図３のソフトウェアモジュール３００の各処理を行う。ＲＡＭ２０２はＣＰＵ２０１の作業領域として用いられ、また、ＲＡＭ２０２は各データの一時格納領域として用いられる。スキャナＩ／Ｆ２０３はスキャナ部１０３とデータ通信を行い、プリンタＩ／Ｆ２０４はプリンタ部１０４とデータ通信を行う。ディスクコントローラ２０５はＨＤＤ１０５及びフラッシュメモリ２０６へ各データを書き込む処理や、ＨＤＤ１０５及びフラッシュメモリ２０６に格納された各データを読み出す処理を行う。
【００２０】
フラッシュメモリ２０６は不揮発性メモリであり、ファーム格納領域２０７、設定値格納領域２０８、及び識別情報格納領域２０９を備える。ファーム格納領域２０７にはＣＰＵ２０１が実行する各プログラムが格納され、設定値格納領域２０８にはＭＦＰ１０１の各設定情報が格納される。識別情報格納領域２０９には拡張アプリのインストール時に当該拡張アプリから取得された識別情報が格納される。識別情報は拡張アプリが制御可能なＵＳＢデバイスの種別を示すクラスＩＤ、或いはベンダＩＤ及びプロダクトＩＤの少なくともいずれかを含む。
【００２１】
パネルＩ／Ｆ２１０はＬＣＤパネル１０９とデータ通信を行う。ＵＳＢＩ／Ｆ２１１は接続されたＩＣカードリーダ２１３、ＵＳＢキーボード２１４、及びＵＳＢメモリ２１５等のＵＳＢデバイスとデータ通信を行う。本実施の形態では、ＵＳＢＩ／Ｆ２１１を介して操作部１０８の操作キーデバイス１１０がＭＦＰ１０１に接続され、ＵＳＢＩ／Ｆ２１１はユーザの操作キーデバイス１１０の操作によって入力された入力情報をＣＰＵ２０１に送信する。
【００２２】
図３は、図１のＭＦＰ１０１のソフトウェアモジュール３００の構成を概略的に示すブロック図である。
【００２３】
図３において、ソフトウェアモジュール３００は、ファームウェアモジュール３０１、オペレーティングシステムモジュール（以下、「ＯＳモジュール」という。）、拡張アプリ３０３、及びＵＳＢマスストレージドライバモジュール３０４を備える。また、ソフトウェアモジュール３００は、ＵＳＢ  ＨＩＤドライバモジュール３０５、汎用ドライバモジュール３０６、ドライバ選択モジュール３０７、及びＵＳＢＩ／Ｆ制御モジュール３０８を備える。拡張アプリ３０３はＨＤＤ１０５に格納され、上述したソフトウェアモジュール３００のうち、拡張アプリ３０３以外のモジュールはフラッシュメモリ２０６に格納されている。ソフトウェアモジュール３００の各処理は、ＣＰＵ２０１がフラッシュメモリ２０６やＨＤＤ１０５に格納されたプログラムを実行することによって行われる。
【００２４】
ファームウェアモジュール３０１はＯＳモジュール３０２の実行環境を提供するためのモジュールである。ＯＳモジュール３０２は制御部１０２の各処理を制御するモジュールであり、ＭＦＰ１０１の各モジュールを制御する。例えば、ＯＳモジュール３０２はＵＳＢＩ／Ｆ２１１を介して接続されたＵＳＢデバイスのうちＯＳモジュール３０２の制御対象デバイスをＵＳＢマスストレージドライバモジュール３０４及びＵＳＢ  ＨＩＤドライバモジュール３０５によって制御する。拡張アプリ３０３はＭＦＰ１０１の標準機能では実現できない拡張機能を実現するためのモジュールであり、ＭＦＰ１０１の各モジュールを制御する。例えば、拡張アプリ３０３はＵＳＢＩ／Ｆ２１１を介して接続されたＵＳＢデバイスのうち拡張アプリ３０３の制御対象デバイスを汎用ドライバモジュール３０６によって制御する。本実施の形態では、ユーザの図４の設定画面４００の操作により、拡張アプリ３０３による制御を行うか、若しくはＯＳモジュール３０２による制御を行うかのいずれかを示す制御設定情報をＵＳＢデバイスのクラスＩＤ毎に設定可能である。設定画面４００は設定ボタン４０１，４０２を備える。
【００２５】
設定ボタン４０１はＵＳＢ  ＨＩＤクラスのＵＳＢデバイスに対して拡張アプリ３０３による制御を行うか、若しくはＯＳモジュール３０２による制御を行うかのいずれかを設定するボタンである。設定ボタン４０１が「ＯＮ」に設定されると、ＵＳＢ  ＨＩＤクラスのＵＳＢデバイスに対して拡張アプリ３０３による制御を行う旨が設定される。一方、設定ボタン４０１が「ＯＦＦ」に設定されると、ＵＳＢ  ＨＩＤクラスのＵＳＢデバイスに対してＯＳモジュール３０２による制御を行う旨が設定される。
【００２６】
設定ボタン４０２はＵＳＢマスストレージクラスのＵＳＢデバイスに対して拡張アプリ３０３による制御を行うか、若しくはＯＳモジュール３０２による制御を行うかのいずれかを設定するボタンである。設定ボタン４０２が「ＯＮ」に設定されると、ＵＳＢマスストレージクラスのＵＳＢデバイスに対して拡張アプリ３０３による制御を行う旨が設定される。一方、設定ボタン４０２が「ＯＦＦ」に設定されると、ＵＳＢマスストレージクラスのＵＳＢデバイスに対してＯＳモジュール３０２による制御を行う旨が設定される。なお、本実施の形態では、設定画面４００における制御設定情報の設定をＵＳＢ  ＨＩＤクラス及びＵＳＢマスストレージクラスである場合について説明したが、これに限られない。例えば、ＵＳＢ  ＨＩＤクラス及びＵＳＢマスストレージクラス以外の他のクラスの制御設定情報の設定を設定画面４００で行ってもよい。設定画面４００の操作によって設定された制御設定情報はフラッシュメモリ２０６の設定値格納領域に格納される。
【００２７】
ＵＳＢマスストレージドライバモジュール３０４はＯＳモジュール３０２の制御対象デバイスのうちＵＳＢマスストレージクラスのＵＳＢデバイスを制御するモジュールである。ＵＳＢ  ＨＩＤドライバモジュール３０５はＯＳモジュール３０２の制御対象デバイスのうちＵＳＢ  ＨＩＤクラスのＵＳＢデバイスを制御するモジュールである。汎用ドライバモジュール３０６は拡張アプリ３０３の制御対象デバイスや、ＵＳＢ  ＨＩＤクラス及びＵＳＢマスストレージクラス以外の他のクラスＩＤのＵＳＢデバイスを制御するモジュールである。
【００２８】
ドライバ選択モジュール３０７は、ＭＦＰ１０１にＵＳＢデバイスが接続されたことを検知すると、当該ＵＳＢデバイスを制御するドライバモジュールを選択する。具体的に、ドライバ選択モジュール３０７は、ＭＦＰ１０１に接続されたＵＳＢデバイスの種別に応じてＵＳＢマスストレージドライバモジュール３０４、ＵＳＢ  ＨＩＤドライバモジュール３０５、及び汎用ドライバモジュール３０６の中から１つのドライバモジュールを選択する。ＵＳＢＩ／Ｆ制御モジュール３０８はＵＳＢＩ／Ｆ２１１を制御する。本実施の形態では、ＵＳＢマスストレージドライバモジュール３０４、ＵＳＢ  ＨＩＤドライバモジュール３０５、及び汎用ドライバモジュール３０６は、ＵＳＢＩ／Ｆ制御モジュール３０８を介してＭＦＰ１０１に接続されたＵＳＢデバイスを制御する。
【００２９】
図５は、図１のＭＦＰ１０１で実行されるドライバ選択処理の手順を示すフローチャートである。
【００３０】
図５の処理は、ＣＰＵ２０１がフラッシュメモリ２０６に格納されたプログラムを実行することによって行われる。図５の処理は、ＭＦＰ１０１の起動中にＵＳＢデバイスが接続された場合や、停止中のＭＦＰ１０１にＵＳＢデバイスが接続された状態でＭＦＰ１０１が起動した場合等に行われる。また、図５の処理は、ＭＦＰ１０１に複数のＵＳＢデバイスが接続された場合、各ＵＳＢデバイスに対して実行される。
【００３１】
ここで、ＭＦＰ１０１は、拡張アプリ３０３が対応する従来のＭＦＰの仕様と異なり、コスト削減の観点で操作部１０８のうち操作キー部を操作キーデバイス１１０として外付けする構成である。ＭＦＰ１０１では、従来と異なり、ＭＦＰ１０１の操作キー部である操作キーデバイス１１０も拡張アプリ３０３の制御対象に含まれ、拡張アプリ３０３をそのままＭＦＰ１０１にインストールすると操作キーデバイス１１０が誤動作を引き起こす可能性がある。操作キーデバイス１１０の誤動作を防止するために、例えば、識別情報からＵＳＢ  ＨＩＤクラスの設定を削除することが考えられる。ＵＳＢ  ＨＩＤクラスの設定を識別情報から削除すると、拡張アプリ３０３において、操作キーデバイス１１０以外のＵＳＢ  ＨＩＤクラスの他のＵＳＢデバイス、例えば、ＵＳＢキーボード２１４の使用も制限され、ＵＳＢデバイスに対する拡張アプリ３０３の汎用性を確保することができない。また、ＵＳＢデバイスに対する拡張アプリの汎用性を考慮して、ＭＦＰ１０１専用の拡張アプリとして、ＵＳＢ  ＨＩＤクラスの設定を削除した識別情報を含む拡張アプリ３０３を開発すると、拡張アプリ３０３が他のＭＦＰに使用することができない。そのため、ＭＦＰの機種に対する拡張アプリ３０３の汎用性を確保することができない。すなわち、従来では、ＭＦＰ１０１において、拡張アプリ３０３の識別情報に対応する仕様が、該拡張アプリ３０３が対応する従来のＭＦＰの仕様と異なると、拡張アプリの汎用性を確保することができない。
【００３２】
これに対応して、本実施の形態では、接続されたＵＳＢデバイスが拡張アプリ３０３に対応しない所定の操作デバイスである場合、接続されたＵＳＢデバイスがＯＳモジュール３０２によって制御される。
【００３３】
図５において、まず、ＣＰＵ２０１は、接続されたＵＳＢデバイスから、ＵＳＢ規格で定められたディスクリプタ情報を取得する（ステップＳ５０１）。ディスクリプタ情報はＵＳＢデバイスのクラスＩＤや、ＵＳＢデバイス単体を識別する情報、具体的に、ベンダＩＤ及びプロダクトＩＤを含む。次いで、ＣＰＵ２０１は、取得されたディスクリプタ情報が拡張アプリ３０３に対応しない所定の操作デバイスである操作キーデバイス１１０に対応するか否かを判別する（ステップＳ５０２）。所定の操作デバイスは予め設定されている。ステップＳ５０２では、取得されたディスクリプタ情報のベンダＩＤ及びプロダクトＩＤが操作キーデバイス１１０のベンダＩＤ及びプロダクトＩＤと一致する場合、ＣＰＵ２０１はディスクリプタ情報が操作キーデバイス１１０に対応すると判別する。一方、取得されたディスクリプタ情報のベンダＩＤ及びプロダクトＩＤが操作キーデバイス１１０のベンダＩＤ及びプロダクトＩＤと一致しない場合、ＣＰＵ２０１はディスクリプタ情報が操作キーデバイス１１０に対応しないと判別する。
【００３４】
ステップＳ５０２の判別の結果、ディスクリプタ情報が操作キーデバイス１１０に対応
するとき、ＣＰＵ２０１は、接続されたＵＳＢデバイスをＯＳモジュール３０２によって制御することを決定し、後述するステップ５０７以降の処理を行う。すなわち、本実施の形態では、接続されたＵＳＢデバイスが操作キーデバイス１１０である場合、設定画面４００の設定に関わらず、接続されたＵＳＢデバイスがＯＳモジュール３０２によって制御される。
【００３５】
ステップＳ５０２の判別の結果、ディスクリプタ情報が操作キーデバイス１１０に対応しないとき、ＣＰＵ２０１はディスクリプタ情報がフラッシュメモリ２０６に格納された識別情報に対応するか否かを判別する（ステップＳ５０３）。ステップＳ５０３では、ディスクリプタ情報のクラスＩＤが識別情報に含まれるクラスＩＤ、或いはベンダＩＤ及びプロダクトＩＤと一致する場合、ＣＰＵ２０１はディスクリプタ情報が識別情報に対応すると判別する。一方、ディスクリプタ情報のクラスＩＤが識別情報に含まれるクラスＩＤ、或いはベンダＩＤ及びプロダクトＩＤと一致しない場合、ＣＰＵ２０１はディスクリプタ情報が識別情報に対応しないと判別する。
【００３６】
ステップＳ５０３の判別の結果、ディスクリプタ情報が識別情報に対応するとき、ＣＰＵ２０１は接続されたＵＳＢデバイスを制御するドライバモジュールとして汎用ドライバモジュール３０６を選択し（ステップＳ５０４）、本処理を終了する。
【００３７】
ステップＳ５０３の判別の結果、ディスクリプタ情報が識別情報に対応しないとき、ＣＰＵ２０１は接続されたＵＳＢデバイスのクラスＩＤをディスクリプタ情報に基づいて特定する。その後、ＣＰＵ２０１は接続されたＵＳＢデバイスがＵＳＢ  ＨＩＤクラス又はＵＳＢマスストレージクラスであるか否かを判別する（ステップＳ５０５）。
【００３８】
ステップＳ５０５の判別の結果、接続されたＵＳＢデバイスがＵＳＢ  ＨＩＤクラス及びＵＳＢマスストレージクラスのいずれでもないとき、ＣＰＵ２０１はステップＳ５０４以降の処理を行う。一方、ステップＳ５０５の判別の結果、接続されたＵＳＢデバイスがＵＳＢ  ＨＩＤクラス又はＵＳＢマスストレージクラスであるとき、ＣＰＵ２０１はフラッシュメモリ２０６に格納された制御設定情報を確認する。ＣＰＵ２０１は、制御設定情報において、接続されたＵＳＢデバイスの種別に対して拡張アプリ３０３による制御を行う旨が設定されているか否かを判別する（ステップＳ５０６）。
【００３９】
ステップＳ５０６の判別の結果、拡張アプリ３０３による制御を行う旨が設定されているとき、ＣＰＵ２０１はステップＳ５０４以降の処理を行う。一方、ステップＳ５０６の判別の結果、拡張アプリ３０３による制御を行う旨が設定されていないとき、つまり、ＯＳモジュール３０２による制御を行う旨が設定されているとき、ＣＰＵ２０１は接続されたＵＳＢデバイスのクラスＩＤがＵＳＢ  ＨＩＤクラスであるか否かを判別する（ステップＳ５０７）。
【００４０】
ステップＳ５０７の判別の結果、ＵＳＢ  ＨＩＤクラスであるとき、ＣＰＵ２０１は接続されたＵＳＢデバイスを制御するドライバモジュールとしてＵＳＢ  ＨＩＤドライバモジュール３０５を選択し（ステップＳ５０８）、本処理を終了する。一方、ステップＳ５０７の判別の結果、ＵＳＢ  ＨＩＤクラスでないとき、ＣＰＵ２０１は接続されたＵＳＢデバイスを制御するドライバモジュールとしてＵＳＢマスストレージドライバモジュール３０４を選択し（ステップＳ５０９）、本処理を終了する。
【００４１】
上述した図５の処理によれば、接続されたＵＳＢデバイスが拡張アプリ３０３に対応しない操作キーデバイス１１０である場合、接続されたＵＳＢデバイスがＯＳモジュール３０２によって制御される。これにより、拡張アプリ３０３に対応しないことに起因する操作キーデバイス１１０の誤動作を防止するために拡張アプリ３０３の識別情報を変更する必要をなくすことができ、もって、拡張アプリ３０３の汎用性を確保することができる。
【００４２】
また、上述した図５の処理では、接続されたＵＳＢデバイスが操作キーデバイス１１０である場合、設定画面４００の設定に関わらず、接続されたＵＳＢデバイスがＯＳモジュール３０２によって制御される。これにより、拡張アプリ３０３に対応しないことに起因する操作キーデバイス１１０の誤動作を確実に防止することができる。
【００４３】
さらに、上述した図５の処理では、接続されたＵＳＢデバイスから取得した当該ＵＳＢデバイスを識別するベンダＩＤ及びプロダクトＩＤに基づいて、接続されたＵＳＢデバイスが操作キーデバイス１１０であるか否かが判別される。これにより、接続されたＵＳＢデバイスが操作キーデバイス１１０であるか否かを確実に特定することができる。
【００４４】
上述した図５の処理では、ＵＳＢデバイスは、比較的安価な部品で構成されたＵＳＢＩ／Ｆ２１１を介して通信可能なＵＳＢ  ＨＩＤクラスのデバイスである。これにより、従来のＭＦＰより生産コストを削減することができる。
【００４５】
上述した本実施の形態では、所定の操作デバイスとして操作キーデバイス１１０が予め設定された場合について説明したが、所定の操作デバイスは操作キーデバイス１１０に限られず、他の機能を実現するＵＳＢデバイスであっても良い。また、所定の操作デバイスは、１つに限られず、図６に示すように複数のＵＳＢデバイスを所定の操作デバイスとして設定しても良い。
【００４６】
また、上述した本実施の形態では、接続されたＵＳＢデバイスが拡張アプリ３０３による制御を行う旨が設定された種別であっても操作キーデバイス１１０であるので、当該接続されたＵＳＢデバイスをＯＳモジュール３０２によって制御する場合、設定画面４００の設定と異なる制御を行う旨をＬＣＤパネル１０９等に表示（通知）しても良い。これにより、設定画面４００の設定と異なる制御が行われることをユーザが容易に把握することができる。
【００４７】
本発明は、上述の実施の形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４８】
１０１  ＭＦＰ
１０９  ＬＣＤパネル
１１０  操作キーデバイス
２０１  ＣＰＵ
２１１  ＵＳＢ  Ｉ／Ｆ
３０２  ＯＳモジュール
３０３  拡張アプリ
４００  設定画面
【図１】
2018029223.tif 000003
【図２】
2018029223.tif 000004
【図３】
2018029223.tif 000005
【図４】
2018029223.tif 000006
【図５】
2018029223.tif 000007
【図６】
2018029223.tif 000008