(57)【要約】【課題】  インストール可能なプリンタドライバに対応する出力デバイスを選択できる印刷制御装置及びその表示方法を提供する。【解決手段】  特定された出力デバイスに対応するプリンタドライバを検索してインストールする印刷制御装置において、出力デバイスを探索して出力デバイスのハードウェア情報を取得する。取得されたハードウェア情報から出力デバイスに適合するプリンタドライバを検索し、検索された結果に基づいて、出力デバイスの表示を切り替える。【選択図】      図１０
2011257881.tif 000002
【特許請求の範囲】
【請求項１】
ユーザにより特定された出力デバイスに対応するプリンタドライバをインストールする印刷制御装置であって、
ネットワーク内の出力デバイスを探索して出力デバイスのハードウェア情報を取得する取得手段と、
前記取得手段により取得された前記ハードウェア情報から前記出力デバイスに適合するプリンタドライバを検索する検索手段と、
前記検索手段により前記出力デバイスに適合するプリンタドライバが検索された場合、当該出力デバイスを特定するための画面を表示する表示手段と、
を有することを特徴とする印刷制御装置。
【請求項２】
前記検索手段により前記出力デバイスに適合するプリンタドライバが検索されなかった場合、前記表示手段は当該出力デバイスに適合するプリンタドライバが見つからなかったことを更に表示することを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記検索すべきプリンタドライバの検索場所には優先順位が付けられており、前記検索手段は当該優先順位に従って前記プリンタドライバを検索することを特徴とする請求項１に記載の印刷制御装置。
【請求項４】
前記プリンタドライバを検索する時間が予め設定されており、前記検索手段は当該設定された時間が終了するまで前記プリンタドライバを検索することを特徴とする請求項１に記載の印刷制御装置。
【請求項５】
前記表示手段により表示された画面でユーザにより特定された出力デバイスに対応するプリンタドライバをインストールするインストール手段と、
前記インストールされたプリンタドライバを他のユーザでもアクセスでき、且つ、前記プリンタドライバの検索に時間がかからない検索場所に設置できるか否かを判断する判断手段と、
前記判断手段により設置できる検索場所であると判断された場合、当該設置できる検索場所に前記プリンタドライバを格納する手段と、
を更に有することを特徴とする請求項１に記載の印刷制御装置。
【請求項６】
ユーザにより特定された出力デバイスに対応するプリンタドライバをインストールする印刷制御装置の表示方法であって、
取得手段が、ネットワーク内の出力デバイスを探索して出力デバイスのハードウェア情報を取得する取得工程と、
検索手段が、前記取得工程において取得された前記ハードウェア情報から前記出力デバイスに適合するプリンタドライバを検索する検索工程と、
表示手段が、前記検索工程において前記出力デバイスに適合するプリンタドライバが検索された場合、当該出力デバイスを特定するための画面を表示する表示工程と、
を有することを特徴とする印刷制御装置の表示方法。
【請求項７】
コンピュータを請求項１乃至５の何れか１項に記載の印刷制御装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、、特定された出力デバイスに対応するプリンタドライバを検索してインストールする印刷制御装置及びその表示方法に関するものである。
【背景技術】
【０００２】
従来、パーソナルコンピュータなどの情報処理装置からプリンタなどの出力デバイスを利用するには、一般的にその出力デバイスに対応した特定のプリンタドライバを組み込む必要があった。そのため、利用する出力デバイスが複数台ある場合は利用する台数分だけプリンタドライバを組み込まなければならなかった。
【０００３】
その上、ユーザは利用する度にＩＰアドレスを調べたり、対応するプリンタドライバをインターネットから探してきたり、といった面倒なインストール作業を強いられてきた。しかも、近年ではパーソナルコンピュータが爆発的に増加したため、プリンタドライバのメンテナンスコストも無視できないほど増加してきた。
【０００４】
そこで、出力デバイスの種類に依存することなく複数の出力デバイスを利用可能な汎用のプリンタドライバが研究及び開発されている。例えば、非特許文献１には、アプリケーションから汎用プリンタドライバに対して印刷指示を出した後に出力可能なネットワークプリンタを選んで印刷する方法が開示されている。この方法によれば、汎用プリンタドライバを情報処理装置に組み込んでおくだけで、汎用プリンタドライバが対応するすべてのプリンタを利用することが可能である。
【０００５】
しかしながら、非特許文献１に示される汎用プリンタドライバは、対応する全プリンタが共通で処理可能な形式のコマンドを生成して送信するため、各プリンタに特化した専用プリンタドライバを用いて印刷する場合に比べて機能が制限される。また、汎用プリンタドライバが送信するコマンドを処理できない種類のプリンタには印刷できない。
【０００６】
上記汎用プリンタドライバを用いた場合の２つの課題、即ち、専用プリンタドライバに比べて機能が制限されることと、汎用プリンタドライバが送信することができない種類のプリンタに印刷できない課題がある。それらを解決するために、仮想プリンタドライバを用いた印刷制御装置が考えられる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】HP Universal Print Driver Series for Windows(登録商標) - overview and featureshttp://h20338.www2.hp.com/hpsub/cache/342988-0-0-225-121.html
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した仮想プリンタドライバを用いる場合、アプリケーションからの印刷実行後に、出力デバイスに適合するプリンタドライバをインストールして印刷が行われる。例えば、仮想プリンタドライバがネットワーク上で共有されている出力デバイスを探索した結果を出力先デバイスリストとして表示し、その中から印刷したい出力デバイスをユーザに選択させる。このとき、選択された出力デバイスに対応するプリンタドライバを時間をかけて検索しても、その出力デバイスに対応したプリンタドライバが見つからず、結果的に印刷できないことがあった。
【０００９】
本発明は、インストール可能なプリンタドライバに対応する出力デバイスを選択できる印刷制御装置及びその表示方法を提供する。
【課題を解決するための手段】
【００１０】
本発明は、ユーザにより特定された出力デバイスに対応するプリンタドライバをインストールする印刷制御装置であって、
ネットワーク内の出力デバイスを探索して出力デバイスのハードウェア情報を取得する取得手段と、
前記取得手段により取得された前記ハードウェア情報から前記出力デバイスに適合するプリンタドライバを検索する検索手段と、
前記検索手段により前記出力デバイスに適合するプリンタドライバが検索された場合、当該出力デバイスを特定するための画面を表示する表示手段と、
を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、インストール可能なプリンタドライバに対応する出力デバイスを選択できるので、出力先デバイスに適合するプリンタドライバが見つからずに印刷できないということを回避できる。
【図面の簡単な説明】
【００１２】
【図１】実施形態におけるネットワークシステムの概略構成を示すブロック図。
【図２】ホストコンピュータと出力デバイスのハードウェア構成例を示すブロック図。
【図３】プリンタドライバインストーラーのユーザインターフェース画面を示す図。
【図４】プリンタドライバ、プリントキュー、ポートの各情報及びそれらの関係を説明するための図。
【図５】一般的なプリンタドライバのインストール処理を示すフローチャート。
【図６】実施形態のプリンタドライバのインストール処理を示すフローチャート。
【図７】実施形態における印刷処理のデータフローを示す図。
【図８】実施形態における印刷処理のシーケンスを示す図
【図９】（Ａ）、（Ｂ）、（Ｃ）はユーザインターフェース画面の一例を示す図。
【図１０】出力先デバイス探索と出力先デバイスリスト表示の詳細な処理を示すフローチャート。
【図１１】出力準備処理の詳細な処理を示すフローチャート。
【図１２】汎用・専用プリンタドライバインストール処理の詳細な処理を表すフローチャート。
【図１３】変形例の出力デバイス特定処理を示すフローチャート。
【図１４】変形例のユーザインターフェース画面の一例を示す図。
【図１５】変形例のプリンタドライバを設置する処理を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。
【００１４】
図１は、実施形態におけるネットワークシステムの概略構成を示すブロック図である。ネットワークシステムには、ホストコンピュータ１０１、複数の出力デバイス１０２ａ、１０２ｂ、プリンタドライバ配信サーバ１０３などが含まれる。これらはＬＡＮ（Local Area Network）１０４やインターネット１０５を介して相互に接続されている。尚、出力デバイスの数は２台に限らず、またデジタル複合機、複写機、プリンタなどで良い。
【００１５】
図２は、ホストコンピュータと出力デバイスのハードウェア構成例を示すブロック図である。ホストコンピュータ１０１において、ＣＰＵ１１１は、ＲＡＭ１１２に記憶されているプログラムに従ってシステムバス１１４に接続される各デバイスを総括的に制御する。ＲＡＭ１１２は、ＣＰＵ１１１の主メモリ、ワークエリアなどとして機能する。ＲＯＭ１１３は、各種プログラムや制御データを格納している。また、各種フォントを記憶するフォントＲＯＭ１１３ａ、ブートプログラムやＢＩＯＳなどを記憶するプログラムＲＯＭ１１３ｂ、各種データを記憶するデータＲＯＭ１１３ｃに区分けされ構成されている。
【００１６】
キーボードコントローラＩ／Ｆ１１５は、キーボード１１９や不図示のポインティングデバイス（マウス）からのキー入力を制御する。ディスプレイＩ／Ｆ１１６は、ディスプレイ１２０への表示を制御する。外部メモリＩ／Ｆ１１７は、後述する外部メモリ１２１へのアクセスを制御する。外部メモリ１２１は、例えばＨＤ（ハードディスク）、ＳＳＤ（Solid State Disk）である。そして、オペレーティングシステム（以下、ＯＳ）１２２をはじめ各種アプリケーション１２３、印刷処理関連プログラム１２４を記憶するコンピュータ読み取り可能な記憶媒体として機能する。更に、この外部メモリ１２１は、不図示のユーザファイル、編集ファイルなどを記憶するコンピュータが読み取り可能な記憶媒体としても機能する。尚、ここでは、ＯＳ１２２としてMicrosoft Windows（登録商標）を使用するものとする。
【００１７】
印刷処理関連プログラム１２４は、実施形態に係るプリントジョブマネージャー１２５、仮想プリンタドライバ１２６、汎用プリンタドライバ１２７、専用プリンタドライバ１２８を含む。更に、印刷処理関連プログラム１２４は、プリンタドライバインストーラー１２９も含む。仮想プリンタドライバ１２６とは、実施形態特有のドキュメントを物理的な出力デバイスに対して直接ではなく、間接的に印刷するために利用されるプログラムである。間接的なプログラムであるため「仮想」と呼称しているが、仮想プリンタドライバ１２６はＯＳ１２２上では、印刷制御を行う一般的なプリンタドライバとして登録されるため、ユーザは通常の印刷作業手順に近い感覚で作業を行うことができる。
【００１８】
一方、汎用プリンタドライバ１２７と専用プリンタドライバ１２８は、印刷制御を行う一般的なプリンタドライバとして分類される。具体的には、汎用プリンタドライバ１２７とは、複数のデバイスモデルの印刷制御が可能なプリンタドライバであり、その対応するデバイスモデルが共通に持つ機能を利用することができる。一方、専用プリンタドライバ１２８とは、単一のデバイスモデルにのみ対応した印刷制御が可能なプリンタドライバであり、その対応するデバイスモデルの機能を最大限に引き出すことが可能である。
【００１９】
ネットワークＩ／Ｆ１１８は、ＬＡＮ１０４を介して出力デバイス１０２に接続され、出力デバイス１０２との間で通信制御処理を行う。ここで、プリンタドライバ配信サーバ１０３もホストコンピュータ１０１と同様のハードウェア構成を備える。また、プリンタドライバ配信サーバ１０３は、データ転送速度の遅いインターネット１０５に配置されているため、ホストコンピュータ１０１や出力デバイス１０２に比べて、通信の応答速度が遅くなる。
【００２０】
次に、出力デバイス１０２のハードウェア構成を説明する。ＣＰＵ１３２は、出力デバイス１０２の全体の動作を制御する。ＲＡＭ１３９は、ＣＰＵ１３２の主メモリ、ワークエリアなどとして機能すると共に、出力情報展開領域、環境データ格納領域としても用いられる。また、ＲＡＭ１３９は、ＮＶＲＡＭ（Non-volatile RAM：不揮発性ＲＡＭ）領域も備え、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＲＯＭ１３３は、各種フォントを記憶するフォントＲＯＭ１３３ａ、ＣＰＵ１３２により実行される制御プログラム等を記憶するプログラムＲＯＭ１３３ｂ、各種データを記憶するデータＲＯＭ１３３ｃを備える。
【００２１】
ネットワークＩ／Ｆ１３８は、ホストコンピュータ１０１との間でデータの送受信を行う。印刷部Ｉ／Ｆ１３６は、プリンタエンジンである印刷部１３７とのインターフェースを制御する。外部メモリ１３４は、外部メモリＩ／Ｆ１４０によりアクセスが制御されている。更に、外部メモリ１３４には、オプションとして接続されるハードディスク（ＨＤ）、ソリッドステートディスク（ＳＳＤ）等を含み、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。更に、実施形態に係る専用プリンタドライバ１４３を記憶することも可能である。
【００２２】
尚、ハードディスク等の外部メモリ１３４が接続されていない場合には、ＲＯＭ１３３のデータＲＯＭ１３３ｃにホストコンピュータ１０１で利用される情報を記憶することになる。また、この外部メモリ１３４は１個に限らず複数備えていても良い。例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていても良い。
【００２３】
操作部１４２には、ユーザによる操作を受け付ける操作パネルが設けられ、操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている（不図示）。また、不図示のＮＶＲＡＭを有し、操作パネルからのプリンタモード設定情報を記憶するようにしても良い。
【００２４】
ＣＰＵ１３２は、ＲＯＭ１３３のプログラムＲＯＭ１３３ｂに記憶された制御プログラム等に基づき、印刷部Ｉ／Ｆ１３６を介して印刷部１３７に出力情報としての画像信号を出力する。また、ＣＰＵ１３２はネットワークＩ／Ｆ１３８を介してホストコンピュータ１０１と通信処理が可能である。そして、ホストコンピュータ１０１から送信される印刷データを受信すると共に、出力デバイス１０２内の情報等をホストコンピュータ１０１に通知可能に構成されている。
【００２５】
図３は、プリンタドライバインストーラー１２９のユーザインターフェース画面２００を示す図である。プリンタドライバインストーラー１２９が実行されると、ディスプレイ１２０上に表示される。プリンタ一覧２０１にはインストール可能なプリンタドライバの一覧が表示される。一覧表示において、Device Model Aは、デバイスモデルＡの出力デバイスに対応した専用プリンタドライバである。Device Model Bは、デバイスモデルＢの出力デバイスに対応した専用プリンタドライバである。Device Model Cは、デバイスモデルＣの出力デバイスに対応した専用プリンタドライバである。Device Model Dは、デバイスモデルＤの出力デバイスに対応した専用プリンタドライバである。Generic Device Model 1は、デバイスモデルＡ、Ｂに対応した汎用プリンタドライバである。Generic Device Model 2は、デバイスモデルＣ、Ｄに対応した汎用プリンタドライバである。Virtual Device Modelは、デバイスモデルＡ、Ｂ、Ｃ、Ｄだけではなく、あらゆる出力デバイスに対応可能な仮想プリンタドライバである。
【００２６】
このユーザインターフェース画面２００でユーザが任意のモデルを選択し、追加ボタン２０２を押下し、インストールするプリンタ一覧２０３に選択したモデルを加える。その後、ユーザがインストールボタン２０４を押下すると、プリンタドライバインストーラー１２９が指定されたモデルのプリンタドライバをインストールする。
【００２７】
図４は、プリンタドライバ、プリントキュー、ポートの各情報及びそれらの関係を説明するための図である。図４では、ＵＭＬ（Unified Modeling Language）のオブジェクト図を使って表現している。
【００２８】
図示するように、プリンタドライバ３０１は、プリンタドライバ構成情報３０４を保持している。プリンタドライバ構成情報３０４は、ドライババージョン、デバイスモデル名、ハードウェア情報、ドライバモジュール名、等から構成される。尚、プリンタドライバ構成情報３０４は、ＯＳ１２２によって管理される。
【００２９】
プリントキュー３０２は、アプリケーションから印刷する際の印刷対象オブジェクトである。同一のデバイスモデルのプリンタドライバ３０１から複数作成することができる。例えば、オフィスにDevice Model Aが３台導入された場合、この出力デバイスに対応したプリンタドライバを１つインストールし、そのプリンタドライバを使ったプリントキューが３つ作成される。
【００３０】
プリントキュー３０２は、プリントキュー構成情報３０５を保持している。プリントキュー構成情報３０５は、プリントキュー名、ポート名、印刷設定情報、ジョブ投入時刻、ジョブステータス、等から構成される。尚、プリントキュー構成情報３０５は、ＯＳ１２２によって管理される。更に、プリントキュー３０２は、実施形態に特有の自動生成識別子３０６と更新日時３０７とを保持する。これらの情報は、プリントジョブマネージャー１２５によって管理される。詳細は後述する。
【００３１】
ポート３０３は、ネットワークの出力先を特定するオブジェクトである。ポート３０３とプリントキュー３０２との関係は通常は一対一であるが、同じポートを複数のプリントキューが使用してもかまわない。ポート３０３は、ポート構成情報３０８を保持している。ポート構成情報３０８は、ポート名、モジュール名、ＩＰアドレス、等から構成される。尚、ポート構成情報３０８は、ＯＳ１２２によって管理される。
【００３２】
図５は、プリンタドライバインストーラー１２９による一般的なプリンタドライバのインストール処理を示すフローチャートである。一般的なプリンタドライバとは、専用プリンタドライバ及び汎用プリンタドライバを指す。プリンタドライバのインストールを開始すると、Ｓ４０１において、まずユーザがデバイスモデルを選択し、選択されたデバイスモデルを受け付ける。ここでは、図２に示すプリンタ一覧２０１でVirtual Device Model以外のデバイスモデルが選択された場合を想定している。尚、実施形態に特有のVirtual Device Modelの選択も含むインストール処理は、図６を用いて後述する。
【００３３】
次に、Ｓ４０２において、Ｓ４０１で選択されたデバイスモデルのプリンタドライバをインストールする。次に、Ｓ４０３において、ユーザがＩＰアドレス等のポート構成情報３０８を入力し、Ｓ４０４において、入力されたポート構成情報３０８からポート３０３を作成する。次に、Ｓ４０５において、ユーザがプリントキュー名を入力し、Ｓ４０６では、Ｓ４０２でインストールしたプリンタドライバとＳ４０４で作成したポート３０３とを関連付けてプリントキュー３０２を作成する。以上で、専用プリンタドライバ及び汎用プリンタドライバのインストール処理が終了する。
【００３４】
図６は、プリンタドライバインストーラー１２９による実施形態に特有のプリンタドライバのインストール処理を示すフローチャートである。プリンタドライバのインストールを開始すると、Ｓ５０１において、まずユーザによるデバイスモデルの選択を受け付ける。そして、Ｓ５０２において、選択されたデバイスモデルが仮想プリンタドライバか否かを判定する。ここで、選択されたデバイスモデルが仮想プリンタドライバではない場合、Ｓ５０３へ進み、専用・汎用プリンタドライバのインストール処理を行う。Ｓ５０３は、図５に示すＳ４０２以降の処理と等価である。そして、インストール処理を終了する。
【００３５】
一方、選択されたデバイスモデルが仮想プリンタドライバの場合は、Ｓ５０４へ進み、仮想プリンタドライバをインストールする。この仮想プリンタドライバ自体は、ポートに対する印刷データの出力を行わないので、Ｓ５０５でユーザによる入力を伴わずにダミーのポートを作成する。また、仮想プリンタドライバに対して複数のプリントキューを作る必要性が無いので、Ｓ５０６でユーザによる入力を伴わずにデバイスモデル名と同じ名前でプリントキューを作成する。
【００３６】
図４を用いて一般的なプリンタドライバのインストール処理を説明した際に、ユーザによる入力は、Ｓ４０１とＳ４０３とＳ４０５の３回あった。一方、実施形態に特有のプリンタドライバのインストール処理は、ユーザによる入力は、Ｓ５０１の１回だけである。もし、プリンタドライバインストーラー１２９が仮想プリンタドライバだけを対象としたプログラムであれば、Ｓ５０１も不要となる。
【００３７】
つまり、仮想プリンタドライバのインストール処理方法は、ユーザの負担と運用コストを低減させる効果がある。仮想プリンタドライバは、ポートに対する印刷データの出力を行わない。そこで、印刷を最低限保証するために汎用プリンタドライバを設置する。引き続き、汎用プリンタドライバのインストール処理を説明する。
【００３８】
Ｓ５０７〜Ｓ５１０において、インストールセットに含まれる全ての汎用プリンタドライバを列挙する。図２に示すプリンタ一覧２０１では、汎用プリンタは、Generic Device Model 1とGeneric Device Model 2の２つが存在する。よって、１回目のループ処理では、Generic Device Model 1を取り出し、２回目のループ処理では、Generic Device Model 2を取り出す。次に、Ｓ５０８において、取り出した汎用プリンタドライバがホストコンピュータ１０１にインストール済みか否かを判断する。ここで、インストールしていない場合は、Ｓ５０９へ進み、取り出した汎用プリンタドライバをインストールする。ここでは、汎用プリンタドライバを使ったプリントキューを作成しないので、ユーザが汎用プリンタドライバのインストールを意識することはない。そして、Ｓ５１０において、ループ処理が終了したら、当インストール処理を終了する。
【００３９】
また、Ｓ５０８において、取り出した汎用プリンタドライバがホストコンピュータ１０１にインストール済みの場合は、Ｓ５１１へ進み、インストール済みの汎用プリンタドライバのバージョンを取得する。そして、Ｓ５１２において、バージョンの数から継続使用可能か否かを判断する。ここで、継続使用可能と判断した場合は、Ｓ５１０へ進み、このループ処理が終了すると、インストール処理を終了する。
【００４０】
一方、Ｓ５１２において、インストール済みの汎用プリンタドライバが継続使用不可能と判断した場合、Ｓ５１３へ進み、インストール済みの汎用プリンタドライバをアンインストールする。そして、Ｓ５１４において、取り出した汎用プリンタドライバをインストールする。更に、Ｓ５１５において、Ｓ５１３の処理前にインストール済み汎用プリンタドライバを使って構成されていたプリントキューをＳ５１４でインストールした汎用プリンタドライバを使って復元する。そして、Ｓ５１０へ進み、ループ処理が終了したら、当インストール処理を終了する。
【００４１】
以上、プリンタドライバインストーラー１２９が仮想プリンタドライバをインストールし、そのプリントキューを作成すると、自動的に汎用プリンタドライバをインストールすることを説明した。尚、Ｓ５０７以降の汎用プリンタドライバのインストール処理はプリンタドライバインストーラー１２９が実施することで説明したが、仮想プリンタドライバ１２６の初期化処理において実施してもかまわない。また、一般にVendorSetupと呼ばれるＯＳ１２２から呼び出される不図示のプリンタドライバのセットアップモジュールで実施してもかまわない。
【００４２】
次に、印刷処理関連プログラムの各コンポーネント間で行われるデータの入出力を説明する。図７は、印刷処理のデータフローを示す図である。アプリケーション１２３はＯＳ１２２の提供する描画インターフェースであるＧＤＩ（Graphic Device Interface）６００を通じて印刷指示命令を仮想プリンタドライバ１２６に出力する。次に、仮想プリンタドライバ１２６は入力された印刷指示命令をＥＭＦ（Enhanced Meta File）６０１の形式に変換してプリントジョブマネージャー１２５に出力する。
【００４３】
ここでＥＭＦ６０１とは、ＧＤＩ６００の印刷指示命令と互換性のある中間データ形式であり、アプリケーション１２３から出力された一連の印刷指示命令を再現可能なデータとして記録したものである。ここでは、中間データ形式としてＥＭＦ６０１を用いて説明するが、印刷指示命令を再現可能なデータであれば、他の形式であっても良い。例えば、ＸＰＳ（XML Paper Specification）、ＰＤＦ（Portable Document Format）、或いは独自に定義した任意の形式であっても良い。
【００４４】
次に、プリントジョブマネージャー１２５は、後述する出力デバイスの特定、汎用・専用プリンタドライバの管理など固有の処理を行い、ＧＤＩ６００を通じて印刷指示命令を出力する。出力された印刷指示命令は、汎用プリンタドライバ１２７或いは専用プリンタドライバ１２８に対して入力される。次に、汎用プリンタドライバ１２７或いは専用プリンタドライバ１２８は、出力デバイス１０２が処理可能なＰＤＬ６０２の形式に変換し、出力デバイス１０２に出力する。最後に出力デバイス１０２は、入力されたＰＤＬ６０２を処理して印刷出力を行う。
【００４５】
次に、一連の印刷処理中に関連プログラムの各コンポーネントの内部及びそれらの間でどのような処理が行われているかを説明する。図８は、印刷処理のシーケンスを示す図である。まず、ユーザがアプリケーション１２３に対して印刷したいドキュメントの印刷指示（Ｓ７００）を図９に示す（Ａ）のユーザインターフェース画面８０００を介して入力する。尚、プリンタを表すアイコン８００１〜８００３のうち、仮想プリンタドライバを通じて出力を行うため、ユーザは仮想デバイスモデルのアイコン８００１を選択し、印刷ボタン８００４を押して印刷を指示する。
【００４６】
次に、アプリケーション１２３は、仮想プリンタドライバ１２６に対して、印刷初期化（Ｓ７０１）を指示する。そして、仮想プリンタドライバ１２６が印刷初期化処理を行い、プリントジョブマネージャー１２５の起動（Ｓ７０２）を行う。ここでプリントジョブマネージャー１２５は、仮想プリンタドライバ１２６に対するドキュメントの印刷開始後に起動されるプログラムであり、後述する出力デバイスの特定、汎用・専用プリンタドライバの管理など固有の処理を担う。また、プリントジョブマネージャー１２５は内部的なコンポーネントとして、出力デバイス特定処理部１２５１、プリンタドライバ管理処理部１２５２、デスプール処理部１２５３を含む。
【００４７】
次に、アプリケーション１２３は、プリントジョブマネージャー１２５が起動されると、仮想プリンタドライバ１２６に対して印刷（Ｓ７０３）を開始し、一連の印刷描画命令をＧＤＩ２１９を通じて出力する。仮想プリンタドライバ１２６では、入力された一連の印刷描画命令をＥＭＦ６０１形式に変換し、その後、印刷描画命令を再現できるように外部メモリ１２１に保存する。この処理をスプール（Ｓ７０４）と呼ぶ。アプリケーション１２３は一連の印刷描画命令の最後に印刷終了（Ｓ７０５）の処理を行う。仮想プリンタドライバ１２６では、これを受けて保存されたＥＭＦ６０１の外部メモリ１２１における保存位置情報をプリントジョブマネージャー１２５に通知（Ｓ７０６）する。
【００４８】
尚、スプール（Ｓ７０４）では、外部メモリ１２１に保存するように処理を実施するが、外部メモリ１２１を介さずにプリントジョブマネージャー１２５へ直接出力するように処理してもかまわない。
【００４９】
また、出力先デバイス探索（Ｓ７０７）及び出力先デバイスリスト表示（Ｓ７０８）については図１０を用いて後述する。
【００５０】
図９に示す（Ｂ）のユーザインターフェース画面８１００には、出力デバイスの情報を表示するリストコントロール（出力先デバイスリスト）８１０１が配置され、その中から一つをカーソル８１０２で選択可能である。また、デバイスリスト更新ボタン８１０３を押下すると、ネットワーク内で再検索が行われ、ＯＳ１２２にインストールされている、若しくはインストール可能なプリンタドライバが見つかった出力デバイスのリストを最新の状態に更新できる。次へボタン８１０４を押すと、カーソル８１０２で現在選択されているデバイスが出力先として決定される。つまり、出力デバイス特定処理部１２５１は、デバイス選択＋次へボタンの押下（Ｓ７０９）を受けて、次の処理に移る。
【００５１】
このように、出力先のデバイスが決定されると、出力デバイス特定処理部１２５１は、プリンタドライバ管理処理部１２５２に対して出力準備処理（Ｓ７１１）を実行するよう依頼（Ｓ７１０）する。この出力準備処理（Ｓ７１１）の詳細については更に後述する。出力準備処理（Ｓ７１１）の結果、ＯＳ１２２には選択された出力デバイス１０２に印刷可能な汎用プリンタドライバ２１７か不図示の専用プリンタドライバ２１８のプリントキューが登録される。
【００５２】
次に、出力デバイス特定処理部１２５１は、図９に示す（Ｂ）の出力デバイス特定用の画面から、デスプール処理部１２５３が有する図９に示す（Ｃ）の画面８２００）に遷移（Ｓ７１２）する。デスプール処理部１２５３は、プレビューエリア８２０１に印刷ドキュメントを実際に印刷させたときのイメージをプレビュー表示（Ｓ７１３）する。このときに表示されるイメージは、スプール（Ｓ７０４）されたＥＭＦ６０１をデスプール処理部１２５３が読み込み、解析して、プレビューエリア８２０１の大きさに合わせて描画したものである。スピンコントロール８２０２やチェックボックス８２０３は、それぞれ印刷部数、白黒印刷といった一般的な印刷設定を変更するために用いられる。更に、一般的でない印刷設定を変更する場合、詳細設定ボタン８２０４を押下することにより、不図示のプリンタドライバ固有のユーザインターフェースを表示させ、印刷設定の変更指示を入力することができる。このとき、出力先に対応するプリントキューが専用プリンタドライバ２１８のものである場合、汎用プリンタドライバ２１７のものに比べて、高度な印刷設定が可能である。戻るボタン８２０６は、現在の画面８２００から一つ前の画面である出力デバイス特定画面８１００に遷移して戻るために用いられる。
【００５３】
印刷ボタン８２０５をユーザが押下（Ｓ７１４）すると、デスプール処理部１２５３は汎用プリンタドライバ２１７に対してデスプール（Ｓ７１５）を指示し、一連の印刷描画命令を発行する。ここで、デスプールというのはスプールの逆で、通知された保存位置情報からＥＭＦ６０１データを読み出し、解析して、印刷描画命令を再現することである。これにより、プリントジョブマネージャー１２５で固有の処理のために中断していた印刷処理を再開し、印刷ドキュメントを出力する。そして、汎用プリンタドライバ１２７は、入力された印刷描画命令をＰＤＬ６０２に変換し、ネットワークＩ／Ｆ１３８を通じて出力デバイス１０２に送信（Ｓ７１６）する。印刷処理が終わると、出力デバイス特定処理部１２５１は、プリンタドライバ管理処理部１２５２へプリントキュー整理処理（Ｓ７１８）を実行するよう依頼（Ｓ７１７）する。最後に、プリントジョブマネージャー１２５はプログラムを終了する。
【００５４】
次に、出力デバイス特定処理部１２５１での出力先デバイス探索（Ｓ７０７）と出力先デバイスリスト表示（Ｓ７０８）の詳細な処理を、図１０を用いて説明する。この処理は、探索した出力デバイスのプリンタドライバがＯＳ１２２にインストールされているか、インストール可能な場合、探索した出力デバイスを出力先デバイスリスト８１０１に表示する。一方、プリンタドライバがＯＳ１２２にインストールされておらず、インストール可能でない場合は、探索した出力デバイスを出力先デバイスリスト８１０１に表示せず、処理を終了する。
【００５５】
まず、Ｓ９０１において、出力デバイス特定処理部１２５１が出力デバイスを探索する。ここで、探索とは、ＬＡＮ１０４に接続された出力デバイス１０２ａ、１０２ｂと通信し、それらの名称、設置場所、ＩＰアドレス、ハードウェアＩＤといった情報を取得することである。通信方法としては、公知技術であるＳＮＭＰ（Simple Network Management Protocol）などのプロトコルが使用される。
【００５６】
通常、電源が入っているか、ＬＡＮ１０４に接続されているか、といった出力デバイス１０２ａ、１０２ｂの状態を事前に把握することは不可能である。そのため、出力デバイス特定処理部１２５１は印刷指示の都度、全ての出力デバイスとの通信を試みる。ネットワーク内の全ての装置との通信には、これも公知技術であるブロードキャストという方法を用いる。
【００５７】
出力デバイス特定処理部１２５１がこのブロードキャストの方法でネットワークＩ／Ｆ１１８を通じてＳＮＭＰの情報取得用データを送信すると、ＬＡＮ１０４で到達可能な全ての出力デバイス１０２が情報取得用データを受信する。そして、各出力デバイス１０２が、取得対象として指定された出力デバイスの名称や設置場所などの情報を応答データとしてネットワークＩ／Ｆ１３８を通じて送信すると、出力デバイス特定処理部１２５１は順次応答データを受信する。そして、受信した情報をＲＡＭ１１２に保存する。
【００５８】
次に、ホストコンピュータ１０１やプリンタドライバ配信サーバ１０３、出力デバイス１０２ａ、１０２ｂの中から出力に最適な専用プリンタドライバ１４３を検索する。まずＳ９０２では、出力デバイスのハードウェア情報を取得する。ここでは、ハードウェア情報として、プラグアンドプレイインストールに用いられるハードウェアＩＤを取得する。このハードウェアＩＤは、Ｓ９０１の出力デバイスの探索処理において取得され、ＲＡＭ１１２に記憶されているものを取り出す。
【００５９】
次に、Ｓ９０３において、ドライバストア内に適合するプリンタドライバがあるか否かを判定する。ドライバストアとは、Windows（登録商標）Vistaで導入されたデバイスドライバのデータベースシステムであり、インストール前のデバイスドライバのパッケージをＯＳ１２２に格納する仕組みである。出力デバイス特定処理部１２５１は、このドライバストア内に格納されているプリンタドライバの中に、Ｓ９０２で取得した出力デバイス１０２のハードウェア情報に一致するものがあるか否かをＯＳ１２２に問い合わせて判定する。
【００６０】
問い合わせの結果、適合するものがあれば、Ｓ９１１へ進み、出力デバイス特定処理部１２５１はデバイス名や設置場所などの情報をＲＡＭ１１２から取り出し、出力デバイスを特定する出力先デバイスリスト８１０１に表示する。一方、問い合わせの結果、適合するものがなければ、Ｓ９０４へ進み、出力デバイス特定処理部１２５１は出力デバイス１０２内を検索し、適合するプリンタドライバがあるか否かを判定する。
【００６１】
上述したように、出力デバイス１０２は、その外部メモリ１３４に出力デバイス自身を利用するために必要な専用プリンタドライバ１４３を記憶することができる。また、出力デバイス特定処理部１２５１は、ハードウェア情報に適合するプリンタドライバがあるか否かを、ＬＡＮ１０４を経由して出力デバイス１０２に問い合わせることができる。ここでは、ＲＰＣ（Remote Procedure Call）やＨＴＴＰ（Hyper Text Transfer Protocol）などを用いて問い合わせる。
【００６２】
出力デバイス特定処理部１２５１は、問い合わせの結果、適合するものがあれば、Ｓ９１１へ進み、デバイス名や設置場所などの情報をＲＡＭ１１２から取り出し、出力デバイスを特定する出力先デバイスリスト８１０１に表示する。一方、問い合わせの結果、適合するものがなければ、Ｓ９０５へ進み、出力デバイス特定処理部１２５１はプリンタドライバ配信サーバ１０３内に適合するプリンタドライバがあるか否かを判定する。出力デバイス特定処理部１２５１は、ドライバ配信サーバ１０３も出力デバイス１０２と同様に、ＬＡＮ１０４とインターネット１０５を経由して、問い合わせることが可能である。
【００６３】
問い合わせの結果、適合するものがあれば、Ｓ９１１へ進み、出力デバイス特定処理部１２５１はデバイス名や設置場所などの情報をＲＡＭ１１２から取り出し、出力デバイスを特定する出力先デバイスリスト８１０１に表示する。一方、問い合わせの結果、適合するものがなければ、Ｓ９１０へ進み、出力デバイス特定処理部１２５１は出力デバイスを特定する出力先デバイスリスト８１０１に表示しない。
【００６４】
図１０に示す処理によれば、出力デバイスを特定する出力先デバイスリスト８１０１に表示されるデバイスはＯＳ１２２にインストールされている、若しくはインストール可能なプリンタドライバが見つかった出力デバイスになる。    
従って、ユーザはプリンタドライバが利用できる出力先デバイスを選択することになるので、出力先デバイスに適合するプリンタドライバが見つからずに、印刷できないということを避けるという効果を得ることができる。
【００６５】
次に、プリンタドライバ管理処理部１２５２における出力準備処理（Ｓ７１１）の詳細な処理を、図１１及び図１２を用いて説明する。この処理は、出力デバイス１０２へ印刷するためのプリントキューがあればそれを選定し、なければ新しいプリントキューを作成、或いは最適なプリンタドライバをインストールする。
【００６６】
まず、プリンタドライバ管理処理部１２５２は、出力準備処理を開始すると、Ｓ１２０１において、出力デバイス１０２のＩＰアドレス情報を取得する。ＩＰアドレス情報は、出力デバイスの検索処理（Ｓ７０７）において取得され、ＲＡＭ１１２に記憶されているものを取り出す。次に、Ｓ１２０２〜Ｓ１２０４において、ＯＳ１２２に登録されている全てのプリントキューからプリントキューに関連付けられているポートのＩＰアドレスを取得する。
【００６７】
次に、Ｓ１２０５において、出力デバイス１０２のＩＰアドレスと、ポートのＩＰアドレスが合致するプリントキューが存在するか否かを判定する。詳細は後述するが、プリントキューは出力デバイス毎に作成される。しかし、同じ出力デバイスに印刷を行うたびに別のプリントキューを毎回作成すると大量のプリントキューが重複して登録されてしまう。このような事態を避けるため、出力デバイスと全てのプリントキューのＩＰアドレス同士を比較し、既存のプリントキューの中に出力可能なものがないかを判定する。もし出力可能なプリントキューが存在すれば、Ｓ１２０６へ進み、存在しなければ、Ｓ１２１１へ進む。
【００６８】
このＳ１２０６では、更に汎用プリンタドライバを優先させるモードが設定されているか否かを判定する。所望の出力デバイス１０２に出力可能なプリントキューの中には専用プリンタドライバ２１８のものが含まれている可能性もある。しかしながら、高度な機能は必要とせずに、シンプルで安定した汎用プリンタドライバ２１７を使用したいユーザもいる。そのため、例えば不図示のユーザインターフェースによって汎用プリンタドライバを優先させるモードへ切り替え可能な機能を設けることが考えられる。このモードが真、即ち、汎用プリンタドライバを優先させる場合は、Ｓ１２０７へ進み、そうでなければ、Ｓ１２０９へ進む。
【００６９】
このＳ１２０７では、プリントキューのデバイスモデル名を取得し、Ｓ１２０８では、デバイスもモデル名が汎用プリンタドライバのものか否かを判定する。プリントキューの名前がユーザによって変更可能であるのに対し、汎用プリンタドライバのデバイスモデル名は「Generic Device Model 1」のように固有の名称である。よって、プリントキューのデバイスモデル名を知ればどの種類のドライバなのか判定できる。
【００７０】
ここで、汎用プリンタドライバであればＳ１２０９へ進み、そうでなければＳ１２１０へ進む。Ｓ１２０９へ進んだ場合は、該当する汎用プリンタドライバのプリントキューを出力先として決定し、出力準備処理を終了する。また、Ｓ１２１０へ進んだ場合、即ち、専用プリンタドライバの既存のプリントキューが存在していると判定した場合は、後述する汎用・専用プリンタドライバインストール処理（Ｓ１２１３）において、汎用プリンタドライバを優先してインストールする。そして、この処理を終了する。
【００７１】
また、Ｓ１２０５において、合致するプリントキューが存在しない場合のＳ１２１１では、Ｓ１２０６と同様に、汎用プリンタドライバを優先させるモードか否かを判定し、真ならＳ１２１０へ進み、偽ならＳ１２１２へ進む。このＳ１２１２では、既存のプリントキューに出力可能なものが存在せず、汎用プリンタドライバを優先させるモードでもないので、適合する最適なドライバをインストールすることに決定する。そして、汎用・専用プリンタドライバインストール処理（Ｓ１２１３）を実行し、この処理を終了する。
【００７２】
図１２は、プリンタドライバ管理処理部１２５２における汎用・専用プリンタドライバインストール処理（Ｓ１２１３）の詳細な処理を表すフローチャートである。まず、プリンタドライバ管理処理部１２５２が処理を開始すると、Ｓ１３０１で、出力用のポートを作成する。次に、Ｓ１３０２で、専用プリンタドライバを優先するモードであるか否かを判定し、真であれば、Ｓ１３０３へ進み、偽であれば、Ｓ１３０９へ進む。
【００７３】
Ｓ１３０３では、プリンタドライバ管理処理部１２５２は、指定された出力先デバイスのプリンタドライバが見つかったことを示す出力先デバイスリスト８１０１から選ばれたのかを判断する。出力先デバイスリスト８１０１から出力先デバイスが選ばれたと判断した場合は、Ｓ１３０６へ進み、プリンタドライバ管理処理部１２５２は適合するプリンタドライバをインストールする。そして、Ｓ１３０７で、Ｓ１３０１で作成したポートに関連付けてプリントキューを作成し、この処理を終了する。
【００７４】
一方、Ｓ１３０３において、出力先デバイスリスト８１０１から出力先デバイスが選ばれなかった場合、Ｓ１３０４へ進む。このＳ１３０４〜Ｓ１３０５はホストコンピュータ１０１やプリンタドライバ配信サーバ１０３、或いは出力デバイス１０２ａ、１０２ｂの中から出力に最適な専用プリンタドライバ１４３を検索する処理である。
【００７５】
まず、Ｓ１３０４において、出力デバイスのハードウェア情報を取得する。ここでは、ハードウェア情報としてプラグアンドプレイインストールに用いられるハードウェアＩＤを取得する。ハードウェアＩＤは出力デバイスの検索処理（Ｓ７０７）において取得され、ＲＡＭ１１２に記憶されているものを取り出す。
【００７６】
次に、Ｓ１３０５において、プリンタドライバ配信サーバ１０３にプリンタドライバがあるか否かを検索する。まず、ＲＰＣやＨＴＴＰなどで、ＬＡＮ１０４とインターネット１０５を経由して、プリンタドライバ配信サーバ１０３内に適合するプリンタドライバがあるか否かを問い合わせる。問い合わせの結果、適合するものがあれば、Ｓ１３０６へ進み、プリンタドライバ配信サーバ１０３からプリンタドライバのパッケージをホストコンピュータ１０１に転送して外部メモリ１２１に記憶する。そして、プリンタドライバ管理処理部１２５２は適合するプリンタドライバをインストールする。最後に、Ｓ１３０７において、Ｓ１３０１で作成したポートに関連付けてプリントキューを作成し、この処理を終了する。
【００７７】
一方、Ｓ１３０５において、プリンタドライバ配信サーバ１０３に適合するプリンタドライバがなければ、Ｓ１３０８へ進み、プリンタドライバ管理処理部１２５２は出力デバイス１０２が汎用プリンタドライバを使用できるかを判断する。ここでプリンタドライバ管理処理部１２５２が汎用プリンタドライバを使用できると判断した場合、Ｓ１３１０へ進む。
【００７８】
Ｓ１３１０〜Ｓ１３１３では、適合するプリンタドライバがどこにも見つからない場合の代替案として、予めＳ５００〜Ｓ５１６でインストールされた汎用プリンタドライバのプリントキューを作成する。まず、Ｓ１３１０で、プリンタドライバ管理処理部１２５２はＬＡＮ１０４を経由して出力デバイス１０２のコマンドタイプ情報を取得し、それが「１」であるか否かを判断する。ここで、コマンドタイプ情報とは、出力デバイス１０２が処理可能なＰＤＬ６０２の種類を表す情報である。汎用プリンタドライバ１２７は複数のデバイスモデルに出力可能なＰＤＬを発行するドライバであるが、あくまで１種類のＰＤＬしか発行できない。
【００７９】
従って、異なるＰＤＬをサポートするデバイスモデルに対しては出力できないため、コマンドタイプ情報を取得し、互換性の確認を行う。ここでは、２種類のＰＤＬ、「１」及び「２」のどちらかに対応した出力デバイスを利用することを前提としているので、コマンドタイプ情報が「１」であるか否かを判断する。「１」の場合は、Ｓ１３１２へ進み、それ以外、即ち、「２」の場合は、Ｓ１３１３へ進む。
【００８０】
このＳ１３１２では、コマンドタイプ「１」に対応した「Generic Device Model 1」のプリントキューを作成し、処理を終了する。一方、Ｓ１３１３では、コマンドタイプ「２」に対応した「Generic Device Model 2」のプリントキューを作成し、処理を終了する。尚、プリントキューを作成する際は、Ｓ１３０１で作成したポートを関連付ける。
【００８１】
一方、プリンタドライバ管理処理部１２５２が出力デバイス１０２に対して、汎用プリンタドライバを使用できないと判断した場合は、Ｓ１３０８からＳ１３０９へ進む。このＳ１３０９では、プリンタドライバ管理処理部１２５２は出力デバイス１０２に対して、使用できる汎用・専用プリンタドライバがなかったことを警告画面などで通じてユーザに通知する。最後に、汎用・専用プリンタドライバのインストール処理を中止し、この処理を終了する。
【００８２】
［変形例］
上述した実施形態では、出力デバイス特定処理部１２５１がドライバストアやプリンタドライバ配信サーバ１０３等に対して出力デバイス１０２に適合するプリンタドライバを検索していた。しかしながら、プリンタドライバ配信サーバ１０３は、データ転送速度の遅いインターネット１０５に配置されているため、出力デバイス１０２などに比べてプリンタドライバ検索にも時間がかかってしまう。そこで、変形例では、プリンタドライバの検索時間を考慮して、検索場所を優先順位に従ってドライバストア、デバイスのＨＤＤの順に検索し、出力デバイス特定処理を行うものである。
【００８３】
図１３は、変形例における出力デバイス特定処理を示すフローチャートである。図１３に示すＳ１００１〜Ｓ１００４までは、図１０に示すＳ９０１〜Ｓ９０４までのステップと同様であるので、説明を省略する。尚、Ｓ１００３では、優先検索順位が一番目の検索場所であるドライバストア内を、またＳ１００４では、優先検索順位が二番目の検索処理であるデバイスのＨＤＤ内を、検索するものとする。
【００８４】
上述した実施形態と同様に、Ｓ１００３又はＳ１００４の判定において、適合する出力デバイスがあった場合、Ｓ１０１１へ進む。Ｓ１０１１では、出力デバイスを特定する図１４に示すリストコントロール（出力先デバイスリスト）１１０１に表示する。ここでの表示は、図９に示す（Ｂ）の表示と同様である。
【００８５】
一方、Ｓ１００３及びＳ１００４の判定において、問い合わせの結果、適合するものがなければ、Ｓ１０１０へ進み、図１４に示す出力先デバイスリスト１１０５に表示する。図１４示す出力先デバイスリスト１１０１は、出力デバイスに適合するプリンタドライバが見つかった出力デバイスを表示する領域である。一方、出力先デバイスリスト１１０５は出力デバイスに適合するプリンタドライバが見つからなかった出力デバイスを表示する領域である。
【００８６】
尚、変形例では、優先検索順位の二番目までをドライバ検索場所として検索している。この優先検索順位の何番目までをドライバ検索場所として検索するかを予め出力デバイス特定処理部１２５１に登録しておいても良いし、プリンタドライバ検索前にユーザに選択させても良い。
【００８７】
以上の手順により、出力デバイスに適合するプリンタドライバの検索場所に優先順位を持たせ、応答の速い検索場所に高い優先順位を割り当てることで、全ての場所を検索した場合に比べ、デバイスの検索結果が早く表示される。
【００８８】
また、図１４に示すように表示することにより、出力デバイス１０２に適合するプリンタドライバが直ぐに利用可能であるか、更に検索しないと利用可能かわからないかが一目で分かる。
【００８９】
図１３に示す処理では、出力デバイス１０２に適合するプリンタドライバが見つかった場合は、図１４に示す出力先デバイスリスト１１０１の領域に出力デバイス１０２を表示した。一方、出力デバイス１０２に適合するプリンタドライバが見つからなかった場合は、出力先デバイスリスト１１０５の領域に出力デバイス１０２を表示した。
【００９０】
しかしながら、オフィスに設置されているデバイスの種類によっては、殆ど又は全ての出力デバイス１０２に適合するプリンタドライバが見つからずに、出力先デバイスリスト１１０５の領域に表示される場合がある。
【００９１】
そのような場合、オフィスにいる各ユーザは、プリンタドライバの検索に時間がかかるプリンタドライバ配信サーバ１０３に各人がそれぞれアクセスし（Ｓ１３０５）、インストールを行わなければならないため、依然として効率が悪い。
【００９２】
そこで、変形例では、オフィス内の複数のユーザが本発明のシステムを利用する可能性があることに着目し、あるユーザが他のユーザでもアクセスでき、ドライバの検索に時間がかからない場所にドライバを設置する処理を、図１５を用いて説明する。尚、図１５に示すＳ１４０１〜Ｓ１４１３までの処理は、図１２に示すＳ１３０１〜Ｓ１３１３までの処理と同様であるので、説明を省略する。
【００９３】
Ｓ１４１５では、プリンタドライバ管理処理部１２５２は、自分以外の他のユーザでもアクセスでき、且つ、ドライバの検索に時間がかからないドライバ検索場所にドライバを設置できるか否かを判断する。例えば、プリンタドライバ配信サーバ１０３に適合するドライバが見つかった場合、デバイスのＨＤＤ１３４内にドライバを設置できるかを判断する。尚、デバイスのＨＤＤ１３４とした理由は、自分以外の他のユーザでもアクセスでき、且つ、プリンタドライバ配信サーバ１０３よりも、ドライバの検索に時間がかからない場所である可能性が高いからである。
【００９４】
ここで、プリンタドライバ管理処理部１２５２がデバイスのＨＤＤ１３４内に出力デバイス１０２に適合するプリンタドライバを設置できると判断した場合、Ｓ１４１６へ進む。Ｓ１４１６では、プリンタドライバ管理処理部１２５２は、デバイスのＨＤＤ１３４内に出力デバイス１０２に適合するプリンタドライバを設置する。一方、プリンタドライバ管理処理部１２５２は、デバイスのＨＤＤ１３４内に出力デバイス１０２に適合するプリンタドライバを設置できないと判断した場合は、この処理を終了する。
【００９５】
このように、自分以外の他のユーザでもアクセスでき、且つ、ドライバの検索に時間がかからないドライバ検索場所にドライバを設置することができる。
【００９６】
変形例によれば、他のユーザでもアクセスでき、且つ、ドライバの検索に時間がかからないドライバ検索場所にドライバを設置することで、他の人は時間のかかるドライバ検索場所を検索する必要がなくなるので、検索時間の短縮につながる。
【００９７】
また、ある優先検索順位の検索場所まで検索するのではなく、ドライバの検索でタイムアウト時間を設定しておき、タイムアウトするまでドライバ検索を行い、その結果を表示しても良い。
【００９８】
［他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011257881.tif 000003
【図２】
2011257881.tif 000004
【図３】
2011257881.tif 000005
【図４】
2011257881.tif 000006
【図５】
2011257881.tif 000007
【図６】
2011257881.tif 000008
【図７】
2011257881.tif 000009
【図８】
2011257881.tif 000010
【図９】
2011257881.tif 000011
【図１０】
2011257881.tif 000012
【図１１】
2011257881.tif 000013
【図１２】
2011257881.tif 000014
【図１３】
2011257881.tif 000015
【図１４】
2011257881.tif 000016
【図１５】
2011257881.tif 000017