(57)【要約】【課題】  デバイスを管理するための管理情報を、使用する環境に応じて、好適に管理、設定することができる情報処理装置及びその制御方法、プログラムを提供する。【解決手段】  処理対象のデバイスの機種を示すデバイス機種情報を取得する。取得したデバイス機種情報に基づいて、デバイス制御情報を生成する。生成されたデバイス制御情報を、前記処理対象のデバイスの管理情報に対し設定する。【選択図】  図６
2005196261.tif 000002
【特許請求の範囲】
【請求項１】
デバイスを管理するための管理情報の設定を制御するデバイス制御情報を作成する情報処理装置であって、
処理対象のデバイスの機種を示すデバイス機種情報を取得する取得手段と、
前記取得手段で取得したデバイス機種情報に基づいて、デバイス制御情報を生成する生成手段と、
前記生成手段で生成されたデバイス制御情報を、前記処理対象のデバイスの管理情報に対し設定する設定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記処理対象のデバイスを選択する選択手段を更に備え、
前記取得手段は、前記選択手段で選択されたデバイスのデバイス機種情報を取得する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、情報ファイルに登録されているデバイス機種情報を前記処理対象のデバイスのデバイス機種情報として取得する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記取得手段は、データベースに登録されているデバイス情報を参照して、前記処理対象のデバイスのデバイス機種情報を取得する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記設定手段による設定の完了後、前記処理対象のデバイスに対応する前記管理情報であるデバイスオブジェクトを削除する削除手段を更に備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記削除手段は、更に、前記処理対象のデバイスに対応するポート情報を削除する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記管理情報は、当該情報処理装置上で動作するオペレーティングシステムによって作成され、かつ所定のデータベース上に登録されており、
前記デバイス制御情報は、前記処理対象のデバイスと同一あるいは同一機種のデバイスが接続された場合に、該デバイスに対応する前記管理情報を前記オペレーティングシステムが複数作成することを禁止するための情報である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記設定手段による設定の完了後、前記処理対象のデバイスのデバイス機種情報を情報ファイルに登録する登録手段を更に備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
デバイスの接続を検知する検知手段と、
前記検知手段の検知結果に基づいて、前記取得手段、前記生成手段及び前記設定手段を実行する制御手段と
を更に備えることを請求項１に記載の情報処理装置。
【請求項１０】
同一機種のデバイスの接続回数を計数する計数手段と、
前記計数手段の計数結果に基づいて、前記取得手段、前記生成手段及び前記設定手段を実行する制御手段と
を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項１１】
デバイスを管理するための管理情報の設定を制御するデバイス制御情報を作成する情報処理装置の制御方法であって、
処理対象のデバイスの機種を示すデバイス機種情報を取得する取得工程と、
前記取得工程で取得したデバイス機種情報に基づいて、デバイス制御情報を生成する生成工程と、
前記生成工程で生成されたデバイス制御情報を、前記処理対象のデバイスの管理情報に対し設定する設定工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項１２】
デバイスを管理するための管理情報の設定を制御するデバイス制御情報を作成する情報処理装置の制御を実現するプログラムであって、
処理対象のデバイスの機種を示すデバイス機種情報を取得する取得工程のプログラムコードと、
前記取得工程で取得したデバイス機種情報に基づいて、デバイス制御情報を生成する生成工程のプログラムコードと、
前記生成工程で生成されたデバイス制御情報を、前記処理対象のデバイスの管理情報に対し設定する設定工程のプログラムコードと
を備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスを管理するための管理情報の設定を制御するデバイス制御情報を作成する情報処理装置及びその制御方法、プログラムに関するものである。
【背景技術】
【０００２】
コンピュータのオペレーティングシステム（以下、ＯＳ）には、プラグアンドプレイという概念が存在する。これは、コンピュータ本体にハードウェア／外部機器を接続するだけで、そのハードウェア／外部機器を使用できる  ようにする仕組みである。例えば、プラグアンドプレイの規格に対応したＵＳＢデバイス（ＵＳＢインターフェースを有するデバイス（例えば、プリンタ、スキャナ等））は、ハードウェア情報（例えば、機種情報（ベンダーＩＤ（Ｖｉｄ）とプロダクトＩＤ（Ｐｉｄ））や個体情報（個体ＩＤ））をＵＳＢデバイスを特定するための固有識別情報として、コンピュータのＯＳに伝達し、ＯＳはその固有識別情報を元に、そのＵＳＢデバイスを管理し、使用可能にするために、そのデバイスドライバやデバイス設定情報をインストールしたり、設定したりする。
【０００３】
ＵＳＢデバイスの好適な一例であるＵＳＢプリンタにおいて、米国マイクロソフト社のＯＳであるＷｉｎｄｏｗｓ（登録商標）では、いままでに接続されたことの無いプリンタが接続された場合、プラグアンドプレイにより取得したハードウェアＩＤをユーザにわかりやすい名称（以下、プリンタ名称）で表現し、ＯＳが提供するグラフィックユーザインターフェース上にそのプリンタ名称を持ったプリンタオブジェクトを作成する。
【０００４】
そして、プリンタオブジェクトが既に作成済みであるプリンタが再度接続された場合は、該当するプリンタオブジェクトを有効にする。この場合、ユーザは、プリンタを使用するとき、有効になったプリンタオブジェクトを選択することとなる。
【０００５】
ここで、既にプリンタドライバがインストール済みのプリンタと同じ機種情報を有するプリンタ、つまり、同機種の接続したことのない別個体のＵＳＢプリンタを接続した場合を考える。この場合、ＯＳは個体情報を比較し、既に接続されたことがあるプリンタと同じ機種情報を有するものでも別のＵＳＢプリンタと判断する。その結果、既にインストールされたプリンタオブジェクトの複製を作成して、それを接続されたプリンタに割り当て管理する。
【０００６】
また、特許文献１では、過去に接続された周辺機器のベンダーＩＤ（Ｖｉｄ）とプロダクトＩＤ（Ｐｉｄ）とデバイスＩＤと接続パス情報と、現在接続されている周辺機器の情報とを比較する。そして、比較した情報同士が一致する場合、過去に付与したポート名称と同一のポート名称をその周辺機器に付与する。一方、比較した情報同士が一致しない場合は、新たにポート名称を作成し、現在接続されている周辺機器のベンダーＩＤと及びデバイスＩＤと共に接続パス情報と生成したポート名称とをホストコンピュータの記憶装置に記憶することが記載されている。
【特許文献１】特開２００３−１９６２２４
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、プラグアンドプレイ機能を有するＷｉｎｄｏｗｓ（登録商標）環境では、例えば、同機種のプリンタであっても異なる個体ＩＤを持ったプリンタを新規にコンピュータに接続した場合には、既にインストールされた同機種のプリンタオブジェクトの複製が作成されることになる。
【０００８】
しかしながら、この方法では同じ機種情報を持つ、つまり、同機種のプリンタを複数所有し、使用しているユーザにとって不便が生じる場合がある。
【０００９】
つまり、ユーザにとって同機種のプリンタが複数台あったとしても、それを交互に使う場合、プリンタ設定情報やプリンタオブジェクトは同じものを使用したい要求があるからである。例えば、１０名の営業マンが５台のモバイルプリンタを使用する場合、各営業マンは同一のモバイルプリンタを使用するわけではなく、使用したい日に空いている任意のモバイルプリンタを客先等に持参して、自分のノートパソコンに接続して提案資料等を印刷するなどの場合が考えられる。
【００１０】
このように、プリンタの個数分プリンタオブジェクトが存在すると、ユーザは、使用するプリンタオブジェクトを適宜切り替えなければならず、また、印刷の設定も個々に設定しなおさなければいけないと言う手間が生じる。つまり、上記の例では、各営業マンは最大５個までのプリンタオブジェクトが自己のノートパソコンに存在してしまい、印刷時に実際に接続されているモバイルプリンタを確認して切り替える手間が生じる。
【００１１】
また、プリンタの故障時にそのプリンタの代替機を使用する場合は、代替機を接続することによって、その故障したプリンタに対するプリンタオブジェクトに加えて、代替機に対応する新しいプリンタオブジェクトが作成されることになる。しかしながら、作成されるプリンタオブジェクトは、故障機と代替機とで区別して表示されるわけではないので、どのプリンタオブジェクトが代替機のものであるかを容易に判別することができない。加えて、同一機種にも関わらず、プリンタ設定等の初期設定を再度行わなければならず手間が生じる。
【００１２】
また、特許文献１では、ベンダーＩＤ（Ｖｉｄ）とプロダクトＩＤ（Ｐｉｄ）に基づいて、接続される周辺機器を識別しているが、新たな周辺機器が接続された場合には、新たなポートが付与されてしまい、上記例と同様の課題があった。
【００１３】
本発明は上記の課題を解決するためになされたものであり、デバイスを管理するための管理情報を、使用する環境に応じて、好適に管理、設定することができる情報処理装置及びその制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
デバイスを管理するための管理情報の設定を制御するデバイス制御情報を作成する情報処理装置であって、
処理対象のデバイスの機種を示すデバイス機種情報を取得する取得手段と、
前記取得手段で取得したデバイス機種情報に基づいて、デバイス制御情報を生成する生成手段と、
前記生成手段で生成されたデバイス制御情報を、前記処理対象のデバイスの管理情報に対し設定する設定手段と
を備える。
【００１５】
また、好ましくは、前記処理対象のデバイスを選択する選択手段を更に備え、
前記取得手段は、前記選択手段で選択されたデバイスのデバイス機種情報を取得する。  また、好ましくは、前記取得手段は、情報ファイルに登録されているデバイス機種情報を前記処理対象のデバイスのデバイス機種情報として取得する。
【００１６】
また、好ましくは、前記取得手段は、データベースに登録されているデバイス情報を参照して、前記処理対象のデバイスのデバイス機種情報を取得する。
【００１７】
また、好ましくは、前記設定手段による設定の完了後、前記処理対象のデバイスに対応する前記管理情報であるデバイスオブジェクトを削除する削除手段を更に備える。
【００１８】
また、好ましくは、前記削除手段は、更に、前記処理対象のデバイスに対応するポート情報を削除する。
【００１９】
また、好ましくは、前記管理情報は、当該情報処理装置上で動作するオペレーティングシステムによって作成され、かつ所定のデータベース上に登録されており、
前記デバイス制御情報は、前記処理対象のデバイスと同一あるいは同一機種のデバイスが接続された場合に、該デバイスに対応する前記管理情報を前記オペレーティングシステムが複数作成することを禁止するための情報である。
【００２０】
また、好ましくは、前記設定手段による設定の完了後、前記処理対象のデバイスのデバイス機種情報を情報ファイルに登録する登録手段を更に備える。
【００２１】
また、好ましくは、デバイスの接続を検知する検知手段と、
前記検知手段の検知結果に基づいて、前記取得手段、前記生成手段及び前記設定手段を実行する制御手段と
を更に備える。
【００２２】
また、好ましくは、同一機種のデバイスの接続回数を計数する計数手段と、
前記計数手段の計数結果に基づいて、前記取得手段、前記生成手段及び前記設定手段を実行する制御手段と
を更に備える。
【００２３】
上記の目的を達成するための本発明による情報処理装置の制御方法は以下の構成を備える。即ち、
デバイスを管理するための管理情報の設定を制御するデバイス制御情報を作成する情報処理装置の制御方法であって、
処理対象のデバイスの機種を示すデバイス機種情報を取得する取得工程と、
前記取得工程で取得したデバイス機種情報に基づいて、デバイス制御情報を生成する生成工程と、
前記生成工程で生成されたデバイス制御情報を、前記処理対象のデバイスの管理情報に対し設定する設定工程と
を備える。
【００２４】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
また、好ましくは、デバイスを管理するための管理情報の設定を制御するデバイス制御情報を作成する情報処理装置の制御を実現するプログラムであって、
処理対象のデバイスの機種を示すデバイス機種情報を取得する取得工程のプログラムコードと、
前記取得工程で取得したデバイス機種情報に基づいて、デバイス制御情報を生成する生成工程のプログラムコードと、
前記生成工程で生成されたデバイス制御情報を、前記処理対象のデバイスの管理情報に対し設定する設定工程のプログラムコードと
を備える。
【発明の効果】
【００２５】
本発明によれば、デバイスを管理するための管理情報を、使用する環境に応じて、好適に管理、設定することができる情報処理装置及びその制御方法、プログラムを提供できる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００２７】
＜実施形態１＞
図１は本発明の実施形態１のプリンタ制御システムの機能構成を示すブロック図である。
【００２８】
このプリンタ制御システムは、ホストコンピュータ１００とプリンタＡ２００から構成されている。また、プリンタＢ４００は、プリンタＡ２００と同機種のプリンタである。両者の間はＵＳＢケーブル３００により接続され、プリンタＡ２００とプリンタＢ４００は交互に切り替えて接続される。
【００２９】
尚、実施形態１では、プリンタＡ２００とプリンタＢ４００を交互に切り替えて接続する場合を例に挙げて説明するが、３台以上の同機種のプリンタを適宜切り替えて接続する場合についても、本発明は適用できる。
【００３０】
ホストコンピュータ１００は、ホストコンピュータ１００全体の動作を制御する中央演算処理部１０１と、記憶部１０２と、プリンタ制御部１０３と、インターフェース制御部１０４と、入力部１０５と、ディスプレイ表示部１０６とを備えている。
【００３１】
プリンタ制御部１０３は、ＯＳやユーティリティツール（ソフトウェア）で実現され、ハードディスク、ＣＤ−ＲＯＭ等の記憶媒体である記憶部１０２に格納されている。
【００３２】
ここで、ホストコンピュータ１００の構成要素の一例について、図２を用いて説明する。
【００３３】
図２は本発明の実施形態１のホストコンピュータの構成要素を示す図である。
【００３４】
図２において、ホストコンピュータ１００は、ハードウェア構成要素として、例えば、中央演算処理装置（ＣＰＵ）１１０１、ＲＡＭ１１０２、ＲＯＭ１１０３、ＬＡＮアダプタ１１０４、ビデオアダプタ１１０５、マウス１１０６、キーボード１１０７、ハードディスク１１０８、ＣＤ−ＲＯＭドライブ１１０９、ＵＳＢインターフェース１１１０を有し、これらの各種構成要素は、システムバス１１００を介して相互に接続されている。
【００３５】
ここで、システムバス１１００は、例えば、ＰＣＩバス、ＡＧＰバス、メモリバス等を意味する。また、図２では、各バス間の接続用チップやキーボードインタフェースや、いわゆるＳＣＳＩやＡＴＡＰＩのような入出力用インタフェースを省略している。
【００３６】
尚、中央演算処理装置１１０１は、図１の中央演算処理部１０１を実現する。また、ＲＡＭ１１０２、ＲＯＭ１１０３、ハードディスク１１０８及びＣＤ−ＲＯＭドライブ１１０９は、図１の記憶部１０２を実現する。また、ＬＡＮアダプタ１１０４、ビデオアダプタ１１０５及びＵＳＢインターフェース１１１０は、図１のインターフェース制御部１０４を実現する。また、マウス１１０６及びキーボード１１０７は、図１の入力部１０５を実現する。
【００３７】
中央演算処理装置１１０１は、オペレーティングシステムのプログラムやアプリケーションプログラムに基づいて、四則演算や比較演算等の各種演算、ハードウェアの制御等を行う。ＲＡＭ１１０２には、ハードディスク１１０８やＣＤ−ＲＯＭドライブ１１０９に装着されたＣＤ−ＲＯＭやＣＤ−Ｒ等の記憶媒体から読み出されたオペレーティングシステムのプログラムやアプリケーションプログラム等が一時的に記憶され、これらは中央演算処理装置１１０１の制御の元に実行される。
【００３８】
ＲＯＭ１１０３には、オペレーティングシステムと協働してハードディスク１１０８等への入出力を司るいわゆるＢＩＯＳ等が記憶される。ＬＡＮアダプタ１１０４は、中央演算処理装置１１０１によって制御されるオペレーティングシステムの通信プログラムと協働してネットワークを介した外部との通信を行う。
【００３９】
ビデオアダプタ１１０５は、ディスプレイ装置に出力する画像信号を生成する。キーボード１１０７やマウス１１０６は情報処理装置への指示を入力するために用いられる。ハードディスク１１０８は、オペレーティングシステムやアプリケーションプログラム、図１のプリンタ制御部１０３を実現するユーティリティーツール等の各種プログラムを記憶している。
【００４０】
ＣＤ−ＲＯＭドライブ１１０９は、例えば、ＣＤ−ＲＯＭやＣＤ−ＲやＣＤ−Ｒ／Ｗ等の記憶媒体を装着してアプリケーションプログラムをハードディスク１１０６にインストールするのに用いる。尚、ＣＤ−ＲＯＭドライブ１１０９の代わりに、ＣＤ−ＲドライブやＣＤ−Ｒ／ＷドライブやＭＯドライブ等の各種ディスクドライブを用いても良いことは言うまでもない。
【００４１】
図１の説明に戻る。
【００４２】
プリンタＡ２００は、ファームウェア部２０１を備えており、機種ＩＤ２０２（Ｖｉｄ、Ｐｉｄ）と個体ＩＤ２０３の２つの識別子を管理している。また、ＵＳＢインターフェース２０４を備えている。機種ＩＤ２０２は、プリンタＡ２００の機種を識別している。個体ＩＤ２０３は、プリンタＡ２００の個体を識別する固有の値である。
【００４３】
ここで、機種ＩＤの内、Ｖｉｄは、プリンタのベンダーを識別するためのベンダーＩＤであり、Ｐｉｄは、プリンタの機種を識別するためのプロダクトＩＤである。
【００４４】
また、プリンタＢ４００は、プリンタＡ２００と同機種のプリンタで、ファームウェア部４０１を備え、機種ＩＤ４０２と個体ＩＤ４０３の２つの識別子を管理している。また、ＵＳＢインターフェース４０４を備える。プリンタＢ４００はプリンタＡ２００と同ベンダーかつ同機種のプリンタであるため、プリンタＡ２００の機種ＩＤ（Ｖｉｄ、Ｐｉｄ）２０２とプリンタＢ４００の機種ＩＤ（Ｖｉｄ、Ｐｉｄ）４０２は同一である。これに対し、それぞれのプリンタの個体ＩＤ２０３と個体ＩＤ４０３は異なるものである。
【００４５】
尚、個体ＩＤ２０３及び４０３には、ＵＳＢインタフェースを識別するＵＳＢ  ＩＤを含むようにしてもよい。
【００４６】
尚、プリンタＡ２００やプリンタＢ４００の印刷方式は、例えば、インクジェット方式、レーザビーム方式、熱転写方式等の各種印刷方式を利用することができ、利用する印刷方式によって、その印刷方式を実現するためのプリンタエンジンやコントローラ、記録部を有している。
【００４７】
ここで、プリンタＡ２００やプリンタＢ４００のハードウェア構成について、図３を用いて説明する。
【００４８】
図３は本発明の実施形態１のプリンタのハードウェア構成を示す図である。
【００４９】
図３において、１９００はプリンタの電源部であり、１９０１は電源のＯＮ／ＯＦＦ操作を実現する電源スイッチである。１９０２は電源スイッチ１９０１の操作内容を示す操作信号をＭＰＵ１９０６へ伝達する信号線である。この操作信号は、信号１９０３への割込信号としてＭＰＵ１９０５へ伝達されるため、ＭＰＵ１９０５において、優先的に処理される。１９０４はプリンタコントローラ１９０５、ＭＰＵ１９０６、ＲＯＭ１９０７を接続するデータバスである。
【００５０】
ＲＯＭ１９０７には、ＭＰＵ１９０６の動作、処理を記述したプログラムが記憶されている。このプログラムは、一般的にはファームウェアと呼ばれ、図１のプリンタＡ２００のファームウェア部２０１、プリンタＢ４００のファームウェア部４０１に相当する。また、ＲＯＭ１９０７には、プリンタＡ２００ではその機種ＩＤ２０２及び個体ＩＤ２０３、プリンタＢ４００ではその機種ＩＤ４０２及び個体ＩＤ４０３が記憶されている。
【００５１】
１９０５はプリンタコントローラであり、プリンタ内の各種メモリ（例えば、ＲＯＭ１９０７、ＤＲＡＭ１９０８等）、プリンタ駆動部、インターフェース部等の動作を制御する機能を有する。ＤＲＡＭ１９０８は、ＭＰＵ１９０６が処理を行う場合にデータ等を一時的に記憶する記憶領域を提供するＲＡＭである。
【００５２】
１９０９はプリンタ駆動部内のヘッドモータ１９１１やフィードモータ１９１２の制御を行う信号を伝達する信号線である。ヘッドモータ１９１１は、例えば、インクを吐出することで記録媒体に記録を行うプリントヘッド１９１３を動作させるモータである。フィードモータ１９１２は、プリンタにセットされた記録媒体の給紙排紙や、プリントヘッド１９１３による記録に伴う記録媒体の搬送を行うためのモータである。１９１０はプリントヘッド１９１３の動作を制御する制御線である。
【００５３】
１９１４はデータバスであり、インターフェース部内のインターフェースコントローラ１９１５とプリンタコントローラ１９０５間のデータの送受信に用いられる。例えば、このデータバス１９１４によって、ホストコンピュータ１００から受信したデータがインターフェースコントローラ１９１５からプリンタコントローラへ転送される。
【００５４】
１９１８はＵＳＢインターフェース１９１８であり、プリンタＡ２００ではＵＳＢインターフェース２０４、プリンタＢ４００ではＵＳＢインターフェース４０４に相当する。
【００５５】
１９１６はフラッシュメモリであり、ＵＳＢ  ＭＰＵ１９１９がＵＳＢインターフェース１９１８を制御するためのプログラムが記憶されている。
【００５６】
１９１７はインターフェースコントローラ１９１５とフラッシュメモリ１９１６、ＵＳＢ  ＭＰＵ１９１９を相互に接続する信号線である。
【００５７】
次に、プリンタ制御部１０３の詳細構成について、図４を用いて説明する。
【００５８】
図４は本発明の実施形態１のプリンタ制御部の詳細構成を示す図である。
【００５９】
プリンタ制御部１０３は、オペレーティングシステム１０００と、その上で動作するアプリケーション１００５、プリンタドライバ１００６、ユーティリティツール１００７によって構成される。
【００６０】
オペレーティングシステム１０００は、プラグアンドプレイを実現させるプラグアンドプレイマネージャ１００１と印刷要求を管理するスプーラ１００２、ユーザインターフェース（ＵＩ）１００３、デバイスドライバの設定や、アプリケーションの設定等の各種情報を管理しているデータベースであるレジストリ１００４を備える。
【００６１】
インターフェース制御部１００９は、図１のインターフェース制御部１０４に相当する。また、ＵＳＢプリンタ１０１０は、図１のプリンタＡ２００やプリンタＢ４００に対応する。
【００６２】
ＵＳＢプリンタ１０１０が接続されると、インターフェース制御部１００９の一部であるＵＳＢインターフェースは、接続したプリンタの機種ＩＤや個体ＩＤを含むプリンタに関するプリンタ情報を取得して、プラグアンドプレイマネージャ１００１に渡す。
【００６３】
このプリンタ情報を取得した時に、そのプリンタ情報中から得られる一時的な情報は、図２のＲＡＭ１１０２等の記憶部内に保存され、オペレーティングシステム１０００等の各種プログラムが使用する。また、ここで取得する一時的な情報は、ここであげた２つの情報以外も存在し、これについては、図５を用いて後述する。
【００６４】
このように、プラグアンドプレイマネージャ１００１は、接続されたハードウェアの認識を行う。
【００６５】
スプーラ１００２は、ＵＳＢプリンタ１０１０からのプリントジョブを一時的に記憶し、順次印刷処理を行うための機構である。このスプーラ１００２のプロセスは、プリンタのポートごとに行われるものであり、オペレーティングシステム１０００が提供する機構である。このスプーラ１００２に関係するポート情報は、ＵＳＢプリンタ１０１０接続時にプラグアンドプレイマネージャ１００１が取得するプリンタ情報の中に含まれ、プラグアンドプレイマネージャ１００１はプリンタのポート名とスプーラを関連付ける処理を行う。
【００６６】
ＵＩ１００３は、オペレーティングシステム１０００がディスプレイに表示するユーザインターフェースである。プラグアンドプレイマネージャ１００１は、接続されたＵＳＢプリンタ１０１０を認識した後、ＵＩ１００３に対してプリンタオブジェクトの作成処理を行う。
【００６７】
ここで、レジストリ１００４へ登録されるプリンタ情報の一例について、図５を用いて説明する。
【００６８】
図５は本発明の実施形態１のプリンタ情報の一例を示す図である。
【００６９】
プリンタ情報１２０１は、複数種類の情報から構成されており、以下、各情報の内容について説明する。
【００７０】
まず、１２０２はプリンタサーバ名である。１２０３はプリンタ名である。このプリンタ名が、プリンタオブジェクト名となる。１２０４はネットワーク共有名であり、プリンタがネットワークで共有されているときのプリンタ名を表すものである。１２０４はポート情報であり、これには、ポート名や番号等が含まれる。
【００７１】
１２０５はプリンタドライバ名であり、このプリンタ情報１２０１に対応するプリンタが使用するプリンタドライバの名称を表すものである。１２０７はプリンタに対するコメントを表すものである。１２０８はプリンタ設定情報であり、この詳細については後述する。１２０９は区切りページファイル名であり、プリンタから印刷する際に印刷ジョブと印刷ジョブの間に注入する区切りのページファイル名を指定するものである。
【００７２】
１２１０はプリントプロセッサ名であり、プリンタが印刷処理を行うときに使用するプリントプロセッサの名称を表すものである。１２１１はスプールデータ名である。ここで、スプールデータの形式には、例えば、ＲＡＷデータやＥＭＦデータ形式等があるが、この名称はどのスプールデータ形式を使用するかを表すものである。
【００７３】
１２１２はプリンタパラメータであり、プリンタに与える各種パラメータを表すものである。１２１３はプリンタのセキュリティ情報であり、プリンタにアクセスが許可されているユーザの情報等を表すものである。１２１４は印刷ジョブの優先順位情報である。１２１５は標準ジョブの優先順位情報であり、デフォルトのジョブの優先順位情報を表すものである。１２１６は印刷可能開始設定時刻、１２１７は印刷可能終了設定時刻である。１２１８はプリンタの状態を示す状態情報である。１２１９はプリンタの保持するジョブ数を表すものである。１２２０はプリンタの平均印刷時間を表すものである。
【００７４】
図４の説明に戻る。
【００７５】
プラグアンドプレイマネージャ１００１は、接続されたＵＳＢプリンタ１０１０を認識すると、その旨をオペレーティングシステム１０００上で実行されるアプリケーション１００５に対して通知を行う。
【００７６】
例えば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム上では、ウィンドウメッセージと呼ばれる特定のメッセージを起動されているアプリケーション１００５や、ユーティリティツール１００７に対して発行する。そのメッセージを受けたアプリケーション１００５やユーティリティツール１００７は個々にプリンタの追加を認識することができる。
【００７７】
また、プラグアンドプレイマネージャ１００１は、接続されたＵＳＢプリンタ１０１０の適切なプリンタドライバ１００６の読み込みも行う。
【００７８】
ホストコンピュータ１００にインストールされているユーティリティツール１００７では、プラグアンドプレイマネージャ１００１によって登録されたＵＩ１００３の情報や、レジストリ１００４の情報を操作する仕組みを備えている。そして、ユーティリティツール１００７は、例えば、Ｗｉｎ３２ＡＰＩと呼ばれるオペレーティングシステムが備えているＡＰＩ（アプリケーションプログラムインタフェース）関数１００８を用いて、上述した情報を操作することが可能である。
【００７９】
次に、プリンタＡ２００をホストコンピュータ１００に接続した場合に、ホストコンピュータ１００が実行するプラグアンドプレイインストールについて説明する。
【００８０】
図１において、ホストコンピュータ１００にプリンタＡ２００をＵＳＢケーブル３００で接続すると、ホストコンピュータ１００のインターフェース制御部１０４は、プリンタＡ２００の機種ＩＤ２０２と個体ＩＤ２０３を含むプリンタ情報を取得する。
【００８１】
上述したとおり、このプリンタ情報はインターフェース制御部１０４を介して、記憶部１０２（例えば、レジストリ１００４やＲＡＭ１１０２等）の一時記憶領域を使用して、プリンタ制御部１０３に渡される。
【００８２】
プリンタ制御部１０３の一部であるオペレーティングシステム１０００が備えるプラグアンドプレイマネージャ１００１は、記憶部１０２より取得したプリンタ情報と、ファームウェア部４０１（例えば、フラッシュメモリ１９１６やＲＯＭ１９０７等）より取得した機種ＩＤ２０２や個体ＩＤ２０３を基に、接続されたプリンタＡ２００が新規に接続されたプリンタであるか否かを判定する。
【００８３】
そして、その判定結果に基づいて、ディスプレイ表示部１０６で表示するプリンタ管理画面内にプリンタオブジェクトを作成する。また、このプリンタオブジェクトに対応するプリンタのプリンタドライバを記憶部１０２にインストールする。
【００８４】
尚、プリンタオブジェクトとは、少なくとも一台のプリンタ毎に対応する、例えば、プリンタドライバによって用いられる管理情報であり、プリンタアイコンとしても表示可能である。また、この管理情報には、プリンタの種類等を特定することが可能な上記のプリンタ情報が含まれる。
【００８５】
例えば、プリンタオブジェクトは、例えば、Ｗｉｎｄｏｗｓ（登録商標）においては、レジストリ情報と呼ばれるデータベース（レジストリ１００４）の形式で管理されている。そして、記憶部１０２に記憶されている表示制御手段の一例であるオペレーティングシステム１０００が、該レジストリ情報を読み出すことにより、プリンタ管理画面内で生成するプリンタアイコン画像として、プリンタオブジェクトを表示する処理を制御することができる。
【００８６】
次に、プリンタＡ２００を切り離し、プリンタＢ４００を接続するとホストコンピュータ１００のインターフェース制御部１０４は、ファームウェア部４０１よりプリンタＢ４００の機種ＩＤ４０２と個体ＩＤ４０３を含むプリンタ情報を取得する。
【００８７】
プリンタ制御部１０３の一部であるオペレーティングシステム１０００が備えるプラグアンドプレイマネージャ１００１は、記憶部１０２より取得したプリンタ情報と、ファームウェア部４０１より取得した機種ＩＤ４０２や個体ＩＤ４０３を元に、接続されたプリンタＢ４００が新規に接続されたプリンタであるか否かを判定する。
【００８８】
この場合、プリンタＢ４００の機種ＩＤ４０２は、既にインストールされているプリンタＡ２００の機種ＩＤ２０２と同一であるが、個体ＩＤが異なるため、新規にプリンタオブジェクトを作成して、プリンタ管理画面内に表示する。
【００８９】
実際には、これらのインターフェース制御部１０４やプリンタ制御部１０３の処理は、中央演算処理部１０１でのソフトウェア実行により実現される。そのプログラムは、ＯＳやユーティリティソフトウェアとして実装するのが一般的であるが、専用ハードウェアで実現されても良い。
【００９０】
実施形態１では、Ｗｉｎｄｏｗｓ（登録商標）環境で実施する例を挙げて説明するが、本発明は、このような構成に限定されるものではない。
【００９１】
また、下記のように処理してもよい。ユーティリティツール１００７は、デバイスの好適な一例であるプリンタ毎に対応付けられて管理されるデバイス標識情報の一例であるプリンタアイコン（プリンタオブジェクトという場合もある。）を表示部の一例であるディスプレイ表示部１０６に表示する処理を制御する。
【００９２】
つまり、ユーティリティツール１００７は、プリンタが通信媒体の一例であるＵＳＢインタフェース３００を介してホストコンピュータ１００に接続されるのに応答して、デバイスのデバイス識別情報の一例であるプリンタ情報を、ＵＳＢインタフェース３００とオペレーティングシステム１０００を介して取得する。
【００９３】
そして、ユーティリティツール１００７は、取得したプリンタ情報をレジストリ１００４に登録する処理をオペレーティングシステム１０００を介して制御する。そして、オペレーティングシステム１０００は、レジストリ１００４に登録されたプリンタアイコンをディスプレイ表示部１０６に表示する。つまり、ユーティリティツール１００７は、プリンタアイコンをディスプレイ表示部１０６に表示する処理を制御する。
【００９４】
特に、実施形態１では、ユーティリティツール１００７は、既にレジストリ１００４に登録済みのプリンタ情報と、新たに接続されたプリンタから取得されたプリンタ情報とが一致する場合に、レジストリ１００４に新たにプリンタオブジェクトを作成することを禁止する制御情報を設定することが可能である。
【００９５】
そして、この設定により、ホストコンピュータ１００に接続される各種プリンタの内、任意の同機種のプリンタが異なるタイミングで複数回接続されても、対応するプリンタオブジェクトを複数作成することを禁止することが可能である。
【００９６】
換言すれば、制御情報が設定されているプリンタのプリンタ情報がプラグアンドプレイ（ＰｎＰ）インストールによって登録されると、それ以降に同一のプリンタのプラグアンドプレイ（ＰｎＰ）インストールが発生する状況になっても、そのプリンタのプリンタ情報を作成することが禁止される。つまり、制御情報が設定されているプリンタのプラグアンドプレイに対してオペレーティングシステム１０００（プラグアンドプレイマネージャ１００１）が実行する処理が制御される。
【００９７】
このような構成によって、ユーティリティツール１００７は、既存のプリンタ情報と、新たに取得されたプリンタとが一致する場合、既存デバイスオブジェクトを新たに表示する表示処理を禁止する制御を実行することになる。この場合、既存のプリンタオブジェクトとこれに関連付けられた設定が引き継がれ、新たに接続されたプリンタに用いることが可能となる。
【００９８】
また、プリンタ情報はプリンタから取得した機種ＩＤや個体ＩＤ等のプリンタを識別する識別情報や、取得した識別情報に基づき、オペレーティングシステム１０００により生成（登録）された情報により構成されている。
【００９９】
さらに、識別情報はオペレーティングシステム１０００あるいはユーティリティツール１００７からの問い合わせに対してプリンタが識別情報を返すことによって取得しても良いし、プリンタが定期的に送るメッセージに基づきオペレーティングシステム１０００が識別情報を取得するようにしても良い。
【０１００】
次に、ユーティリティツール１００７で、ホストコンピュータ１００で利用される各種プリンタの内、任意の同機種のプリンタに対して複数のプリンタオブジェクトを作成することを禁止するプリンタオブジェクト制御処理について、図６を用いて説明する。
【０１０１】
尚、実施形態１のプリンタオブジェクト制御処理は、上述のプリンタ制御部１０３に備わるユーティリティツール１００７によって実行されるが、オペレーティングシステム１０００の一機能として制御することも可能である。
【０１０２】
また、このプリンタオブジェクト制御処理は、ユーティリティツール１００７を任意のタイミングで起動することで、ユーザが必要とする時点で、適宜、制御対象のプリンタに対して適用することが可能である。
【０１０３】
図６は本発明の実施形態１のプリンタオブジェクト制御処理を示すフローチャートである。
【０１０４】
尚、図６では、例えば、ホストコンピュータ１００にプリンタＢ４００を接続した後に、本処理を実行する例について説明するが、本処理は、ホストコンピュータ１００にプリンタが接続されていない状態の任意のタイミングで実行することが可能である。
【０１０５】
まず、ステップＳ６０１では、ホストコンピュータ１００にインストールされているプリンタの一覧（インストール済プリンタ一覧）情報を取得する。例えば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムによると、ＥｎｕｍＰｒｉｎｔｅｒｓ（）を実行し、ホストコンピュータ１００のローカルメモリにインストールされている全プリンタのプリンタ情報を取得する。この際に、ホストコンピュータ１００では、全プリンタのプリンタ情報を一覧情報として、例えば、ＲＡＭ１１０２のメモリ領域に展開する。
【０１０６】
ステップＳ６０２では、ステップＳ６０１で取得したプリンタ情報からプリンタ名１２０３（図５）を取得して、プリンタ名一覧画面を表示する。
【０１０７】
尚、この時点では、ステップＳ６０１で取得したプリンタ情報には、同一機種のプリンタ情報が複数存在している場合があるが、ステップＳ６０２で取得するプリンタ名１２０３は、重複しない異なるプリンタ名（異なるプリンタドライバに対応する）を取得する。あるいは、同一機種のプリンタ情報が複数存在している場合でも、プリンタ条件等の設定情報が異なっている場合があるため、そのような場合には、同一機種のプリンタ情報を取得する。
【０１０８】
ここで、プリンタ名一覧画面について、図７を用いて説明する。
【０１０９】
図７は本発明の実施形態１のプリンタ名一覧画面の一例を示す図である。
【０１１０】
図７のプリンタ名一覧画面７００は、ステップＳ６０２で取得したプリンタ名の一覧を示す画面である。図７では、プリンタ名一覧として、「プリンタＡ〜Ｄ」と「その他のプリンタ」が表示されている。
【０１１１】
ここで、「その他のプリンタ」とは、このプリンタ名一覧画面表示時点では、プリンタ名が不明なプリンタであることを示している。つまり、ホストコンピュータ１００にプリンタが接続されているものの、そのプリンタに対応するプリンタドライバ１００６がインストールされていない場合には、そのプリンタに対応するプリンタ情報が取得できず、正式なプリンタ名をこの時点では取得できないからである。
【０１１２】
また、この「その他のプリンタ」は、プリンタが接続されていない、あるいはプリンタドライバがインストールされていないプリンタを、ユーザが制御対象としたいときに、ユーザが選択できるようにするための表示である。
【０１１３】
ユーザは、このプリンタ名一覧画面７００で表示されるプリンタ名から、プリンタオブジェクトの表示制御（プラグアンドプレイ制御）を適用する制御対象のプリンタを指定することができる。
【０１１４】
特に、図７では、制御対象のプリンタとして、プリンタ名「プリンタＢ」を指定する状態を示している。そして、制御対象のプリンタを指定している状態で、ＯＫボタン７０１を入力部１０５を介して押下すると、その制御対象のプリンタに対する処理として、ステップＳ６０３以降の処理を実行する。また、キャンセルボタン７０２を入力部１０５を介して押下すると、プリンタ名一覧画面７００の表示を終了する。
【０１１５】
一方、同一機種のプリンタ情報が複数存在していて、そのプリンタ条件等の設定情報が異なっている場合には、プリンタ名一覧画面７００では、それぞれのプリンタ情報に対するプリンタ名を区別可能（例えば、プリンタＡ（１）、プリンタＡ（２）、プリンタＡ（３））に表示する。これにより、複数の同一機種のプリンタ情報から、所望の設定情報のプリンタ情報のプリンタを制御対象として選択することが可能である。
【０１１６】
図６の説明に戻る。
【０１１７】
ステップＳ６０３では、制御対象のプリンタが選択されたか否かを判定する。制御対象のプリンタが選択された場合（ステップＳ６０３でＹＥＳ）、ＲＡＭ１１０２上に選択されたプリンタ名を記憶し、ステップＳ６０４へ進む。一方、制御対象のプリンタが選択されない場合（ステップＳ６０３でＮＯ）、制御対象のプリンタが選択されるまで待機する。
【０１１８】
尚、この判定は、図７のプリンタ名一覧画面７００に対する操作に基づいて実行する。つまり、プリンタ名一覧の中で任意のプリンタ名が選択された状態で、ＯＫボタン７０１が押下された場合に、その選択されているプリンタ名が制御対象のプリンタとして選択されたと判定する。
【０１１９】
ステップＳ６０４では、選択された制御対象のプリンタのプリンタドライバが既にインストールされている（つまり、過去に同機種あるいは同一のプリンタが選択されていた）か否かを判定する。プリンタドライバがインストールされている場合（ステップＳ６０４でＹＥＳ）、ステップＳ６０５へ進む。一方、プリンタドライバがインストールされていない場合（ステップＳ６０４でＮＯ）、例えば、プリンタ名一覧画面７００で「その他のプリンタ」が制御対象のプリンタとして選択されている場合、ステップＳ６０６へ進む。
【０１２０】
ステップＳ６０５では、選択された制御対象のプリンタのプリンタポートがＵＳＢであるか否かを判定する。
【０１２１】
尚、ＵＳＢであるか否かの判定は、制御対象のプリンタに対応するプリンタ情報中のポート情報１２０５（図５）に基づいて判定する。
【０１２２】
プリンタポートがＵＳＢである場合（ステップＳ６０５でＹＥＳ）、ステップＳ６０８へ進む。一方、プリンタポートがＵＳＢでない場合（ステップＳ６０５でＮＯ）、処理を終了する。
【０１２３】
ステップＳ６０６では、選択された制御対象のプリンタのプリンタドライバのインストールを促す通知を実行する。この通知は、例えば、ダイアログでメッセージを表示させるようにしても、インストールするプリンタドライバをダウンロードするための画面を表示するようにしても良い。
【０１２４】
ステップＳ６０７では、プリンタドライバがインストールされたか否かを判定する。プリンタドライバがインストールされた場合（ステップＳ６０７でＹＥＳ）、ステップＳ６０５へ進む。一方、プリンタドライバがインストールされていない場合（ステップＳ６０７でＮＯ）、プリンタドライバがインストールされるまで待機する。
【０１２５】
ステップＳ６０８では、プログラム（例えば、オペレーティングシステム１０００）中のレジストリ１００４に予め記憶されている、プリンタ情報記憶領域を含むＵＳＢデバイス情報記憶領域（例えば、レジストリ１００４中のレジストリキー）を取得する。
【０１２６】
尚、ＵＳＢデバイス情報記憶領域は、ユーティリティツール１００７のプログラム上に予め記述されている情報であっても良い。
【０１２７】
ステップＳ６０９では、ステップＳ６０３で選択された制御対象のプリンタのプリンタ名（この場合、プリンタＢ）とステップＳ６０８で取得したＵＳＢデバイス情報記憶領域（プリンタ情報記憶領域を含む）に基づいて、ステップＳ６０３で選択された制御対象のプリンタの機種を示すプリンタ機種情報を取得する。プリンタ機種情報の取得後、そのプリンタ機種情報は、ＲＡＭ１１０２のメモリ領域に展開される。
【０１２８】
例えば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムによると、ステップＳ６０３で選択された制御対象のプリンタ名「プリンタＢ」は、レジストリキー「ＨＫＥＹ＿ＬＯＣＡＬ＿ＭＡＣＨＩＮＥ￥ＳＹＳＴＥＭ￥ＣｕｒｒｅｎｔＣｏｎｔｒｏｌＳｅｔ￥Ｃｏｎｔｒｏｌ￥  Ｐｒｉｎｔ￥Ｐｒｉｎｔｅｒｓ￥プリンタＢ（プリンタ名）￥ＰｎＰＤａｔａ」に対応する。そして、このレジストリキー中の「ＤｅｖｉｃｅＩｎｓｔａｎｃｅＩｄ」の値から、プリンタＢのプリンタ機種情報を特定するための文字列を取得する。
【０１２９】
具体的には、「ＤｅｖｉｃｅＩｎｓｔａｎｃｅＩｄ」は、例えば、「ＵＳＢＰＲＩＮＴ￥プリンタＢ（プリンタ名）￥６＆１２Ｄ７８Ｆ２Ａ＆ＵＳＢ０Ｎ（Ｎ：整数）」という記述からなっており、この記述の末尾にある「＆ＵＳＢ０Ｎ」以前を走査して、初めて現れる「￥」までの間の文字列、つまり、「６＆１２Ｄ７８Ｆ２Ａ」をプリンタ機種情報を特定するための文字列として取得する。
【０１３０】
その後、予め登録されているプリンタ情報記憶領域であるレジストリキー「ＨＫＥＹ＿ＬＯＣＡＬ＿ＭＡＣＨＩＮＥ￥ＳＹＳＴＥＭ￥ＣｕｒｒｅｎｔＣｏｎｔｒｏｌＳｅｔ￥Ｅｎｕｍ￥ＵＳＢ」の子キー内にある「ＰａｒｅｎｔＩｄＰｒｅｆｉｘ」のデータを適宜取得して、先に取得した文字列「６＆１２Ｄ７８Ｆ２Ａ」と比較する。
【０１３１】
比較の結果、文字列が一致する場合、この「ＰａｒｅｎｔＩｄＰｒｅｆｉｘ」を持つキーの親キーが、プリンタＢのプリンタ機種情報（Ｖｉｄ（ベンダーＩＤ）とＰｉｄ（プロダクトＩＤ））となる。
【０１３２】
ステップＳ６１０では、ステップ６０９で取得したプリンタ機種情報に基づいて、プラグアンドプレイ（ＰｎＰ）を制御（（プリンタオブジェクトの表示を制御）するためのＰｎＰ制御情報を生成する。Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムでは、名前：ＩｇｎｏｒｅＨＷＳｅｒＮｕｍ「Ｖｉｄ」「Ｐｉｄ」  データ：０１(バイナリ)という形式（例えば、名前：ＩｇｎｏｒｅＨＷＳｅｒＮｕｍ０４ａ９１０７６  データ：０１(バイナリ)）でレジストリの値を生成することで、本実施形態を実現可能にする。
【０１３３】
尚、ＰｎＰ制御情報とＰｎＰ制御情報のバイナリデータは、ＲＡＭ１１０２に展開されても良いし、所定の情報ファイルに格納されるように構成しても良い。
【０１３４】
また、実施形態１では、特に、ＰｎＰ制御情報として、制御対象のプリンタに対するポート及びプリンタオブジェクトが、最初（初回）のプラグアンドプレイで一旦生成された後、次回以降（初回以降）の同機種あるいは同一のプリンタのプラグアンドプレイ時には、新たにポート及びプリンタオブジェクトがオペレーティングシステム１０００によって作成されることを禁止する制御情報を生成する。
【０１３５】
換言すれば、個体ＩＤが異なる同機種のプリンタに対して複数のポート及びプリンタオブジェクトがオペレーティングシステム１０００によって作成されることを禁止する制御情報を生成する。
【０１３６】
このように、実施形態１で生成するＰｎＰ制御情報は、制御対象のプリンタのポートの作成を制御する（同機種あるいは同一のプリンタの初回以降のプラグアンドプレイ時には、同一機種に対し複数のポートの作成を禁止する）ポート制御情報と言い換えることができる。また、プリンタオブジェクトの作成も制御する（同機種あるいは同一のプリンタの初回以降のプラグアンドプレイ時には、同一機種に対し複数のプリンタオブジェクトの作成を禁止する）ことになるので、プリンタオブジェクト制御情報と言い換えることもできる。
【０１３７】
ステップＳ６１１では、ステップ６１０で生成したＰｎＰ制御情報とＰｎＰ制御情報のバイナリデータを、例えば、ＲＡＭ１１０２から呼び出し、レジストリ１００４に登録する。例えば、登録する関数には、ＲｅｇＳｅｔＶａｌｕｅＥｘ（）がある。
【０１３８】
ステップＳ６１２では、現在接続されているプリンタ機種情報を取得する。現在接続されているプリンタ機種情報は、例えば、「ＨＫＥＹ_ＬＯＣＡＬ_ＭＡＣＨＩＮＥ\ＳＹＳＴＥＭ\ＣｕｒｒｅｎｔＣｏｎｔｒｏｌＳｅｔ\Ｓｅｒｖｉｃｅｓ\ｕｓｂｐｒｉｎｔ\Ｅｎｕｍ」に記述されている、現在ＵＳＢ接続を行っているプリンタのプリンタ機種情報を示す文字列を取得することで、取得可能である。
【０１３９】
実際は、関数ＲｅｇＱｕｅｒｙＶａｌｕｅＥｘ（）を、「ＨＫＥＹ_ＬＯＣＡＬ_ＭＡＣＨＩＮＥ\ＳＹＳＴＥＭ\ＣｕｒｒｅｎｔＣｏｎｔｒｏｌＳｅｔ\Ｓｅｒｖｉｃｅｓ\ｕｓｂｐｒｉｎｔ\Ｅｎｕｍ」において実行することで、プリンタ機種情報（ＶｉｄとＰｉｄ）を取得する。
【０１４０】
ステップＳ６１３では、ステップＳ６０３で選択された制御対象のプリンタのプリンタ機種情報と、ステップＳ６１２で取得したプリンタ機種情報が一致するかどうかを比較する。一致する場合（ステップＳ６１３でＹＥＳ）、ステップＳ６１６へ進む。一方、一致しない場合（ステップＳ６１３でＮＯ）、ステップＳ６１４へ進む。
【０１４１】
ステップＳ６１４では、選択された制御対象のプリンタのＵＳＢ接続を外すこと通知する。この通知は、例えば、ダイアログでメッセージを表示させるようにすれば良い。
【０１４２】
ステップＳ６１５では、ステップＳ６１４で通知した制御対象のプリンタのＵＳＢ接続が外れたか否かを判定する。ＵＳＢ接続が外れた場合（ステップＳ６１５でＹＥＳ）、ステップＳ６１６へ進む。一方、ＵＳＢ接続が外れない場合（ステップＳ６１５でＮＯ）、ＵＳＢ接続が外れるまで、待機する。
【０１４３】
ステップＳ６１６では、ステップ６０３で選択された制御対象のプリンタのプリンタオブジェクトを削除する。また、プリンタオブジェクトを削除する関数としては、例えば、ＤｅｌｅｔｅＰｒｉｎｔｅｒ（）がある。また、制御対象のプリンタのプリンタオブジェクトが既に複数存在している場合には、それらのプリンタオブジェクトをすべて削除する。
【０１４４】
ここで、ステップＳ６１６で、プリンタオブジェクトを削除するのは、ステップＳ６１１でＰｎＰ制御情報を登録すると、ステップ６０３で選択された制御対象のプリンタが使用できなくなってしまうためである。
【０１４５】
ステップＳ６１７では、ステップ６０３で選択された制御対象のプリンタのＵＳＢポート情報を削除する。ＵＳＢポート情報の削除は、例えば、ＵＳＢポート情報のあるレジストリキーをＳＨＤｅｌｅｔｅＫｅｙ（）で削除する。また、制御対象のプリンタのＵＳＢポート情報が既に複数存在している場合には、それらのＵＳＢポート情報をすべて削除する。
【０１４６】
ここで、ステップＳ６１７で、ＵＳＢポート情報を削除するのは、ＵＳＢデバイスの場合、プリンタオブジェクトを削除するだけではＵＳＢポート情報は削除できず、図８のポート名１１００１のように、ポート情報が残ってしまうので、ＵＳＢポート情報をレジストリから削除する必要があるからである。
【０１４７】
これにより、個体ＩＤが異なる同機種の制御対象のプリンタに対しては、複数のポートが作成されることがなくなり、オペレティーングシステム１０００に対する処理負荷を軽減することができる。
【０１４８】
以上説明したように、実施形態１によれば、ユーザの指定したプリンタ機種においては、オペレーティングシステム１０００によってプリンタオブジェクトが複数作成されることを禁止できる。そのため、ユーザは、異なる個体ＩＤの同機種のプリンタを交互に使い分けて使用する場合にも、常に同じプリンタオブジェクトを使用することができるので困惑することもなく、プリンタを接続する毎に新たなプリンタ設定をする必要がなくなる。
【０１４９】
また、同機種別固体のプリンタが接続されてもポートが毎回作成されないため、無駄なポートが作成されずオペレーティングシステム１０００の処理の負担を軽減することができる。
【０１５０】
＜実施形態２＞
実施形態１では、ホストコンピュータ１００にインストール済（あるいはインストールを促すことによって設定された）プリンタのプリンタ機種情報に基づいて、制御対象のプリンタに対するＰｎＰ制御情報を生成して登録することで、そのプリンタと同機種あるいは同一のプリンタのプラグアンドプレイ時には、複数のポート及びプリンタオブジェクトがオペレーティングシステム１０００によって作成されることを禁止する構成とした。
【０１５１】
これに対し、実施形態２では、ホストコンピュータ１００にインストールされていないプリンタに対しても、予め情報ファイルにそのプリンタ機種情報が登録されている場合には、そのプリンタに対するＰｎＰ制御情報を生成して登録することで、そのプリンタと同機種あるいは同一のプリンタのプラグアンドプレイ時には、複数のポート及びプリンタオブジェクトがオペレーティングシステム１０００によって作成されることを禁止する構成について説明する。
【０１５２】
以下、実施形態２のプリンタオブジェクト制御処理について、図９を用いて説明する。
【０１５３】
図９は本発明の実施形態２のプリンタオブジェクト制御処理を示すフローチャートである。
【０１５４】
尚、実施形態１の図６と同様のステップには、同じ番号を付し、その説明については省略する。
【０１５５】
まず、ステップＳ６０１〜ステップＳ６０３の処理によって、制御対象のプリンタが選択される。
【０１５６】
次に、ステップＳ７０１では、情報ファイル（図１０）の有無を判定する。この情報ファイルには、ＰｎＰ制御情報を生成するための情報（例えば、図１０に示す、プリンタ機種情報（Ｖｉｄ、Ｐｉｄ）及びそのプリンタドライバ名）が格納されており、例えば、オペレーティングシステム１０００の管理下でユーリティツール１００７で参照可能な所定の初期設定ファイルとして、例えば、ＲＡＭ１１０２に存在する。
【０１５７】
情報ファイルがある場合（ステップＳ７０１でＹＥＳ）、ステップＳ７０２へ進む。一方、情報ファイルがない場合（ステップＳ７０１でＮＯ）、ステップＳ７０５へ進む。
【０１５８】
ステップＳ７０２では、選択された制御対象のプリンタのプリンタドライバ名を取得する。これは、ステップＳ６０１によって、ＲＡＭ１１０２に展開されたプリンタ情報（図５）から取得する。
【０１５９】
ステップＳ７０３では、情報ファイルより、登録されているプリンタ機種情報とプリンタドライバ名を全て取得する。例えば、取得する関数としては、ＧｅｔＰｒｉｖａｔｅＰｒｏｆｉｌｅＳｔｒｉｎｇ（）がある。取得したプリンタ機種情報とプリンタドライバ名は、例えば、ＲＡＭ１１０２に展開される。
【０１６０】
尚、プリンタ機種情報とプリンタドライバ名とは複数機種分記憶されるように構成しても良い。また、情報ファイルには、プリンタ機種情報のバイナリデータを記憶させるように構成しても良い。
【０１６１】
ステップＳ７０４では、選択された制御対象のプリンタのプリンタドライバ名と、情報ファイルのプリンタドライバ名が同じであるか否かを判定する。
【０１６２】
プリンタドライバ名が同じである場合（ステップＳ７０４でＹＥＳ）、ステップＳ６１０へ進む。一方、プリンタドライバ名が同じでない場合（ステップＳ７０４でＮＯ）、ステップＳ７０５へ進む。
【０１６３】
ステップＳ７０４でプリンタドライバ名が同じである場合（ステップＳ７０４でＹＥＳ）、ステップＳ６１０及びステップＳ６１１を実行する。これにより、制御対象のプリンタに対するＰｎＰ制御情報とＰｎＰ制御情報のバイナリデータがレジストリ１００４に登録される。
【０１６４】
ステップＳ７０５では、選択された制御対象のプリンタのプリンタドライバがインストールされているか否かを判定する。プリンタドライバがインストールされている場合（ステップＳ７０５でＹＥＳ）、ステップＳ７０６へ進む。一方、プリンタドライバがインストールされていない場合（ステップＳ７０５でＮＯ）、処理を終了する。
【０１６５】
ステップＳ７０６では、選択された制御対象のプリンタのプリンタポートがＵＳＢであるか否かを判定する。
【０１６６】
尚、ＵＳＢであるか否かの判定は、制御対象のプリンタに対応するプリンタ情報中のポーと情報１２０５（図５）に基づいて判定する。
【０１６７】
プリンタポートがＵＳＢである場合（ステップＳ７０６でＹＥＳ）、ステップＳ６１２に進む。一方、プリンタポートがＵＳＢでない場合（ステップＳ７０６でＮＯ）、処理を終了する。
【０１６８】
ステップＳ７０６でプリンタポートがＵＳＢである場合（ステップＳ７０６でＹＥＳ）、ステップＳ６１２〜ステップＳ６１７を実行する。これにより、個体ＩＤが異なる同機種の制御対象のプリンタに対しては、複数のポートが作成されることがなくなり、オペレティーングシステム１０００に対する処理負荷を軽減することができる。
【０１６９】
一方、ステップＳ７０１で情報ファイルが存在しない場合（ステップＳ７０１でＮＯ）、あるいはステップＳ７０４でプリンタドライバ名が同じでない場合（ステップＳ７０４でＮＯ）、ステップＳ７０５、ステップＳ７０６、ステップ６０８〜ステップ６１０を実行する。
【０１７０】
ステップＳ７０７では、ステップＳ６０９で取得したプリンタ機種情報と対応するプリンタドライバ名を情報ファイルに登録する。例えば、登録する関数としては、ＷｒｉｔｅＰｒｉｖａｔｅＰｒｏｆｉｌｅＳｔｒｉｎｇ（）がある。
【０１７１】
尚、情報ファイルが既に作成されている場合には、その情報ファイルにプリンタ機種情報とプリンタドライバ名を登録するように構成してもよく、情報ファイルの内容を全て書き換える（上書き）ように構成しても良い。一方、情報ファイルが作成されていない場合には、新規に情報ファイルを作成して登録してもよい。
【０１７２】
また、ここでは、情報ファイルに、制御対象のプリンタのプリンタ機種情報とプリンタドライバ名を登録する構成としたが、ユーティリティツール１００７が処理の実行時に参照可能な形態であれば、情報ファイルに限定されず、オペレーティングシステム１０００管理下の初期設定ファイルや、所定の記憶領域あるいはメモリカード等の外部記憶媒体上に登録することも可能である。
【０１７３】
更に、情報ファイルは、テキストエディタ等のアプリケーションによって、ユーザが任意のタイミングでその内容を適宜編集加工することができる。これにより、ユーザは、制御対象のプリンタに対するプリンタ情報がホストコンピュータ１００に登録されていないくても、将来、制御対象となるプリンタに対するプリンタ情報を事前に登録し、かつそのプリンタに対するＰｎＰ制御情報を必要に応じて作成して登録することが可能となる。
【０１７４】
以上説明したように、実施形態２によれば、情報ファイルに予め制御対象のプリンタに関するプリンタ情報を登録しておくことにより、その情報ファイルに登録されたプリンタ機種においては、プリンタオブジェクトを複数作成することを禁止する設定を実現できるため、ユーザが所望する形態でプリンタを管理することが可能である。
【０１７５】
また、同機種別固体のプリンタが接続されてもポートが毎回作成されないため、無駄なポートが作成されずオペレーティングシステム１０００の処理の負担を軽減することができる。
【０１７６】
更に、よく使用されているプリンタのプリンタ機種情報を、まとめて事前に情報ファイルに作成して登録することができるので、ユーザのプリンタに係る管理の手間を省き効率の良い設定をおこなうことができる。
【０１７７】
＜実施形態３＞
上記実施形態１及び２では、ユーザに制御対象のプリンタを選択させる構成としているが、直前にＵＳＢ接続でインストールされたプリンタあるいはよく使われているプリンタを制御対象として選択する構成としても良い。特に、同機種で別固体のプリンタを交互に複数台使用するユーザは、多くの場合、同一設定下でそのプリンタを使用することを意図する可能性が高い。そのため、このような構成にすることで、ユーザは、制御対象のプリンタを選択する操作自体から解放され、より操作効率を向上することができる。
【０１７８】
ここで、よく使用されているプリンタの判定は、例えば、ホストコンピュータ１００にプリンタが接続される毎に生成されるプリンタオブジェクトの数が、所定数（例えば、３台）以上である場合か否かで判定する。
【０１７９】
尚、よく使用されているプリンタを通常使用するプリンタ（デフォルトプリンタ）としてもよく、通常使用するプリンタを制御対象とすることも可能である。
【０１８０】
尚、上記実施形態１〜３では、ホストコンピュータ１００に接続可能なデバイスとして、例えば、プリンタを例に挙げて説明したが、プリンタ以外のデバイス、例えば、スキャナ、デジタルカメラ等の各種デバイスに対しても、本発明を適用することができる。この場合、上述のプリンタオブジェクトやプリンタ情報（プリンタ機種情報）及びＰｎＰ制御情報（プリンタ制御情報）は、適用するデバイスに対応するデバイスオブジェクトやデバイス情報（デバイス機種情報）及びＰｎＰ制御情報（デバイス制御情報）を用いて、各実施形態を実行することになる。
【０１８１】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１８２】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１８３】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１８４】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１８５】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１８６】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１８７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１８８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１８９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１９０】
【図１】本発明の実施形態１のプリンタ制御システムの構成を示すブロック図である。
【図２】本発明の実施形態１のホストコンピュータの構成要素を示す図である。
【図３】本発明の実施形態１のプリンタのハードウェア構成を示す図である。
【図４】本発明の実施形態１のプリンタ制御部の詳細構成を示す図である。
【図５】本発明の実施形態１のプリンタ情報の一例を示す図である。
【図６】本発明の実施形態１のプリンタオブジェクト制御処理を示すフローチャートである。
【図７】本発明の実施形態１のプリンタ名一覧画面の一例を示す図である。
【図８】本発明の実施形態１のポート情報を説明するための図である。
【図９】本発明の実施形態２のプリンタオブジェクト制御処理を示すフローチャートである。
【図１０】本発明の実施形態２の情報ファイルの構成例を示す図である。
【符号の説明】
【０１９１】
１００  ホストコンピュータ
１０１  中央演算処理部
１０２  記憶部
１０３  プリンタ制御部
１０４  インターフェース制御部
１０５  入力部
１０６  ディスプレイ表示部
２００  プリンタＡ
２０１  ファームウェア部
２０２  機種ＩＤ
２０３  個体ＩＤ
２０４  ＵＳＢインターフェース
４００  プリンタＢ
４０１  ファームウェア部
４０２  機種ＩＤ
４０３  個体ＩＤ
４０４  ＵＳＢインターフェース
【図１】
2005196261.tif 000003
【図２】
2005196261.tif 000004
【図３】
2005196261.tif 000005
【図４】
2005196261.tif 000006
【図５】
2005196261.tif 000007
【図６】
2005196261.tif 000008
【図７】
2005196261.tif 000009
【図８】
2005196261.tif 000010
【図９】
2005196261.tif 000011
【図１０】
2005196261.tif 000012