(57)【特許請求の範囲】
【請求項１】
複数機種のデバイスを制御可能なユニバーサルドライバであって、
前記デバイスを制御するための設定値を、複数の制御項目について個別に設定する設定処理と、
当該ユニバーサルドライバを実行するコンピュータと通信可能に接続されているデバイスの中から、設定されている全ての設定値に従って動作可能なデバイスを検索する検索処理と、
前記検索処理において動作可能なデバイスが見つかった場合に、見つかったデバイスのいずれかを設定されている設定値に基づいて制御する制御処理と、
前記検索処理において動作可能なデバイスが見つからなかった場合に、前記コンピュータと通信可能に接続されているデバイスの中に、設定されている設定値に従った動作が不可能なデバイスが存在するか否かを、設定値の各々について判定する判定処理と、
設定された設定値を変更する設定変更処理と、
前記設定変更処理で前記設定値が変更された後に前記検索処理を再実行させる再検索処理と、
を前記コンピュータに実行させ、
前記設定変更処理は、
前記判定処理においてその設定値に従った動作が不可能なデバイスが存在すると判定された設定値が設定されていた制御項目を含む設定変更画面の表示、及び、設定されている設定値の各々に従って、デバイスが動作可能であるか否かを、判定することで求められる、動作可／不可のパターンの、前記コンピュータと通信可能に接続されているデバイスの各々に対しての判断を含み、
前記設定変更画面は、前記判断処理において判断したパターンのうち、いずれか一つのパターンで動作不可能とされている設定値が設定されていた制御項目を識別可能に表示するものであり、
前記設定変更処理は、前記設定変更画面において識別可能に表示されている制御項目のいずれかが、前記コンピュータが備える操作部により選択されることに応じた、前記設定変更画面の表示の切り替えを含み、
切り替えられた設定変更画面は、前記操作部により選択された前記制御項目に設定されていた設定値であって、直前の検索が実行される際に設定されていた設定値が、動作可能とされている別のパターンを表示対象とし、当該別のパターンで動作不可とされている設定値が設定されていた制御項目を識別可能に表示する、ユニバーサルドライバ。
【請求項２】
請求項１に記載のユニバーサルドライバであって、
前記設定変更処理において、動作可能とされている設定値の数が最も多いパターンを最初の表示対象とする、ユニバーサルドライバ。
【請求項３】
請求項１又は請求項２に記載のユニバーサルドライバであって、
前記設定変更処理において、前記表示対象のパターンで動作不可とされている設定値が設定されていた制御項目の設定値を、動作可／不可のパターンが当該表示対象のパターンと合致するデバイスで動作可能とされている設定値のいずれかに変更する、ユニバーサルドライバ。
【請求項４】
請求項３に記載のユニバーサルドライバであって、
前記設定変更処理において、動作可／不可のパターンが表示対象のパターンと合致するデバイスのいずれにおいても、変更した設定値以外に動作可能な設定値がない場合は、表示対象の前記パターンが切り替わるまで、当該変更した設定値をユーザが変更できないようにする、ユニバーサルドライバ。
【請求項５】
複数機種のデバイスを制御可能な制御装置であって、
制御部を備え、
前記制御部は、
前記デバイスを制御するための設定値を、複数の制御項目について個別に設定する設定処理と、
当該制御装置と通信可能に接続されているデバイスの中から、設定されている全ての設定値に従って動作可能なデバイスを検索する検索処理と、
前記検索処理において動作可能なデバイスが見つかった場合に、見つかったデバイスのいずれかを設定されている設定値に基づいて制御する制御処理と、
前記検索処理において動作可能なデバイスが見つからなかった場合に、当該制御装置と通信可能に接続されているデバイスの中に、設定されている設定値に従った動作が不可能なデバイスが存在するか否かを、設定値の各々について判定する判定処理と、
設定された設定値を変更する設定変更処理と、
前記設定変更処理で前記設定値が変更された後に前記検索処理を再実行させる再検索処理と、
を実行し、
前記設定変更処理は、
前記判定処理においてその設定値に従った動作が不可能なデバイスが存在すると判定された設定値が設定されていた制御項目を含む設定変更画面の表示、及び、設定されている設定値の各々に従って、デバイスが動作可能であるか否かを、判定することで求められる、動作可／不可のパターンの、当該制御装置と通信可能に接続されているデバイスの各々に対しての判断を含み、
前記設定変更画面は、前記判断処理において判断したパターンのうち、いずれか一つのパターンで動作不可能とされている設定値が設定されていた制御項目を識別可能に表示するものであり、
前記設定変更処理は、前記設定変更画面において識別可能に表示されている制御項目のいずれかが、当該制御装置が備える操作部により選択されることに応じた、前記設定変更画面の表示の切り替えを含み、
切り替えられた設定変更画面は、前記操作部により選択された前記制御項目に設定されていた設定値であって、直前の検索が実行される際に設定されていた設定値が、動作可能とされている別のパターンを表示対象とし、当該別のパターンで動作不可とされている設定値が設定されていた制御項目を識別可能に表示する、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユニバーサルドライバ、及びデバイス制御方法に関する。
【背景技術】
【０００２】
従来、ユーザの希望にできるだけ適したいくつかの印刷装置を印刷実行候補として選択して候補一覧表を作成し、その中からいずれかの印刷装置をユーザに選択させる印刷サービスシステムが知られている（例えば特許文献１参照）。この印刷サービスシステムでは、各印刷装置についての現在の状態や機能を候補一覧表に表示し、ユーザがそれを見て希望条件を変更できるようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−６３４０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の印刷サービスシステムによると、希望条件を変更するとき、ユーザはどの希望条件を変更すれば全ての希望条件を満たす印刷装置が見つかるかを判断するために候補一覧表を目視で確認しなければならず、ユーザにとって負担であるという問題がある。
本発明は上記のような事情に基づいて完成されたものであって、設定値を変更してデバイスを再検索させる際のユーザの負担を軽減するユニバーサルドライバ、及びデバイス制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
第１の発明は、複数機種のデバイスを制御可能なユニバーサルドライバであって、前記デバイスを制御するための設定値をユーザに設定させる設定処理であって、複数の制御項目について個別に前記設定値を設定させる設定処理と、当該ユニバーサルドライバを実行するコンピュータと通信可能に接続されている前記デバイスの中から、設定されている全ての前記設定値に従って動作可能な前記デバイスを検索する検索処理と、前記検索処理において前記デバイスが見つかった場合に、見つかった前記デバイスのいずれかを前記設定値に基づいて制御する制御処理と、前記検索処理において前記デバイスが見つからなかった場合に、設定されている前記設定値毎に、前記デバイスの中にその設定値に従った動作が不可能なデバイスが存在するか否かを判定する判定処理と、設定変更画面を表示してユーザに前記設定値を変更させる設定変更処理であって、前記判定処理においてその設定値に従った動作が不可能なデバイスが存在すると判定された前記設定値のうち少なくとも一つの設定値について、当該設定値が設定されていた前記制御項目を前記設定変更画面上で識別可能に表示する設定変更処理と、前記設定変更処理で前記設定値が変更された後に前記検索処理を再実行させる再検索処理と、を前記コンピュータに実行させる。
【０００６】
この発明によると、その設定値に従った動作が不可能なデバイスが存在する設定値のうち少なくとも一つの設定値が設定されていた制御項目を設定変更画面上で識別可能に表示するので、ユーザはどの制御項目の設定値を変更すればデバイスが見つかる可能性が高くなるかを容易に知ることができる。
よってこの発明によると、設定値を変更してデバイスを再検索させる際のユーザの負担を軽減できる。
【０００７】
第２の発明は、第１の発明のユニバーサルドライバであって、当該ユニバーサルドライバは、前記設定変更処理において、前記デバイス毎に、設定されている各前記設定値について当該デバイスがその設定値に従って動作可能であるか否かを判定して当該デバイスの動作可／不可のパターンを判断し、いずれか一つの前記パターンを表示対象として、表示対象の前記パターンで動作不可能とされている前記設定値が設定されていた前記制御項目を識別可能に表示し、前記設定変更画面に対して前記パターンを切り替える切替指示がユーザから入力される毎に表示対象の前記パターンを切り替える。
【０００８】
この発明によると、例えば表示対象のパターンにおいてユーザにとって重要な設定値が動作不可能とされている場合は、その重要な設定値が動作可能とされているパターンに切り替え、切り替え後のパターンにおいて動作不可能とされている設定値を変更することにより、その重要な設定値に従って動作可能なデバイスを容易に検索できる。
【０００９】
第３の発明は、第２の発明のユニバーサルドライバであって、ユーザは識別可能に表示されている前記制御項目を前記コンピュータが備えるポインティングデバイスを用いて選択することによって前記切替指示を入力し、前記設定変更処理において、前記切替指示が入力されると、前記ポインティングデバイスを用いて選択された前記制御項目に設定されていた前記設定値であって直前の検索が実行される際に設定されていた設定値が動作可能とされている別の前記パターンに切り替える。
【００１０】
この発明によると、例えば表示対象のパターンにおいてユーザにとって重要な設定値が動作不可能とされている場合に、ユーザはその設定値が設定されている制御項目をポインティングデバイスによって選択することにより、当該重要な設定値が動作可能とされている別のパターンに容易に切り替えることができる。
【００１１】
第４の発明は、第２又は第３の発明のユニバーサルドライバであって、前記設定変更処理において、動作可能とされている前記設定値の数が最も多い前記パターンを最初の表示対象とする。
動作可能とされている設定値の数が多いパターンほど動作不可能とされている設定値の数が少ないので、ユーザが設定値を変更する手間を軽減できる。
【００１２】
第５の発明は、第２〜第４のいずれかの発明のユニバーサルドライバであって、前記設定変更処理において、前記表示対象の前記パターンで動作不可能とされている前記設定値が設定されていた前記制御項目の設定値を、動作可／不可のパターンが当該表示対象の前記パターンと合致するいずれかの前記デバイスで動作可能とされている別の前記設定値に変更する。
この発明によると、動作不可能とされている設定値をユーザが変更する手間を軽減できる。
【００１３】
第６の発明は、第５の発明のユニバーサルドライバであって、前記設定変更処理において、動作可／不可のパターンが前記表示対象の前記パターンと合致するいずれの前記デバイスにおいても当該変更した前記設定値以外に動作可能な設定値がない場合は、表示対象の前記パターンが切り替わるまで、当該変更した前記設定値をユーザが変更できないようにする。
この発明によると、動作可／不可のパターンが当該表示対象のパターンと合致するいずれのデバイスにおいても当該変更した設定値以外に動作可能な設定値がない場合に、当該変更した設定値がユーザによって別の設定値に変更されてしまってデバイスが検索されなくなってしまうことを低減できる。
【００１４】
第７の発明は、第１〜第６のいずれかの発明のユニバーサルドライバであって、前記設定変更処理の前に、その設定値に従った動作が不可能な前記デバイスが存在する前記設定値のうち少なくとも一つの前記設定値をユーザに通知する通知処理を前記コンピュータに実行させる。
この発明によると、その設定値に従った動作が不可能なデバイスがあると判定された設定値のうち少なくとも一つの設定値をユーザに通知するので、ユーザはどの設定値を変更すればよいかを容易に知ることができる。
よってこの発明によると、設定値を変更してデバイスを再検索させる際のユーザの負担を軽減できる。
【００１５】
第８の発明は、第７の発明のユニバーサルドライバであって、前記通知処理において、設定されている前記設定値のうち動作可能な設定値の数が最も多い前記デバイスで動作不可能とされている前記設定値を通知する。
この発明によると、設定値の変更を最小限に抑えることができる。
【００１６】
第９の発明は、第８の発明のユニバーサルドライバであって、前記通知処理において、設定されている前記設定値のうち動作可能な設定値の数が最も多い前記デバイスが複数あり、且つ、動作不可能な前記設定値がそれら複数の前記デバイスの間で互いに異なる場合は、それら複数の前記設定値のいずれかを変更するようユーザに通知する。
この発明によると、ユーザはいずれか一方を変更すればよいことが分かるので、いずれか一方の設定値を変更すればよいにもかかわらず両方を変更してしまうことを低減できる。
【００１７】
第１０の発明は、１以上のデバイスと通信可能に接続されているコンピュータを用いたデバイス制御方法であって、前記デバイスを制御するための設定値をユーザに設定させる設定段階であって、複数の制御項目について個別に前記設定値を設定させる設定段階と、前記デバイスの中から、設定されている全ての前記設定値に従って動作可能な前記デバイスを検索する検索段階と、前記検索段階において前記デバイスが見つかった場合に、見つかった前記デバイスのいずれかを前記設定値に基づいて制御する制御段階と、前記検索段階において前記デバイスが見つからなかった場合に、設定されている前記設定値毎に、前記デバイスの中にその設定値に従った動作が不可能なデバイスが存在するか否かを判定する判定段階と、設定変更画面を表示してユーザに前記設定値を変更させる設定変更段階であって、前記判定段階においてその設定値に従った動作が不可能なデバイスが存在すると判定された前記設定値のうち少なくとも一つの設定値について、当該設定値が設定されていた前記制御項目を前記設定変更画面上で識別可能に表示する設定変更段階と、前記設定変更段階で前記設定値が変更された後に前記検索段階を再実行させる再検索段階と、を含む。
この発明によると、設定値を変更してデバイスを再検索させる際のユーザの負担を軽減できる。
【図面の簡単な説明】
【００１８】
【図１】実施形態１に係るコンピュータの電気的構成を示すブロック図。
【図２】機能情報の一例を示す表。
【図３】ユニバーサルドライバによって表示される画面の画面遷移図。
【図４】印刷設定画面の一例を示す模式図。
【図５】メッセージ画面の一例を示す模式図。
【図６】設定・検索処理の流れを示すフローチャート。
【図７】Ｓ１０６における判定を説明するための模式図。
【図８】印刷条件設定処理の流れを示すフローチャート。
【図９】抽出されたパターンの一例を示す模式図。
【図１０】印刷設定項目を識別可能に表示する一例を示す模式図。
【図１１】プリンタ検索処理の流れを示すフローチャート。
【図１２】図９に示すパターン２を表示対象とした状態の印刷設定画面の一例を示す模式図。
【発明を実施するための形態】
【００１９】
＜実施形態１＞
本発明の実施形態１を図１ないし図１２によって説明する。
（１）コンピュータの構成
図１は、本発明の実施形態１に係るコンピュータの電気的構成を示すブロック図である。コンピュータ１（以下「ＰＣ」という）は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３（メモリの一例）、計時部１４、記憶部１５、ディスプレイ駆動回路１６（駆動回路）、ＵＳＢインタフェース１７（ＵＳＢ  Ｉ／Ｆ）、及び、ネットワークインタフェース１８（ＮＷ  Ｉ／Ｆ）を備えて構成されている。
【００２０】
ＣＰＵ１１は、ＲＯＭ１２や記憶部１５に記憶されている各種のプログラムを実行することによってＰＣ１の各部を制御する。ＲＯＭ１２にはＣＰＵ１１によって実行される各種のプログラムやデータなどが記憶されている。ＲＡＭ１３はＣＰＵ１１が各種の処理を実行するための主記憶装置として用いられる。
計時部１４は、現在時刻を取得するためのタイマを備えている。なお、計時部１４に替えて、ＣＰＵ１１がクロック信号をカウントして計時を行うソフトウェアクロックを用いてもよい。
【００２１】
記憶部１５は、ハードディスクやフラッシュメモリなどの不揮発性の記憶媒体を用いて各種のプログラムやデータを記憶する外部記憶装置である。記憶部１５には、オペレーティングシステム（ＯＳ）、ワードプロセッサや表計算などのアプリケーションプログラム（以下「アプリケーション」という）、ユニバーサルプリンタドライバ（ユニバーサルドライバの一例）などが記憶される。
【００２２】
ディスプレイ駆動回路１６は、ＣＲＴや液晶ディスプレイなどの表示装置１９を駆動する回路であり、ケーブルを介して表示装置１９と接続されている。
ＵＳＢインタフェース１７はＵＳＢ（Universal Serial Bus）ホストインタフェースとして構成されており、ＵＳＢケーブルを介してマウス（ポインティングデバイスの一例）やキーボードなどの入力装置２０と接続されている。
【００２３】
ネットワークインタフェース１８はＬＡＮやインターネットなどの通信ネットワーク５を介して１以上のプリンタ（複合機を含む）と通信可能に接続されている。
【００２４】
（２）プリンタ
複数のプリンタ３１（プリンタＡ〜Ｃ、及び複合機Ｄ、デバイスの一例）は、紙などの被記録媒体に電子写真方式、インクジェット方式などで画像を形成する装置である。複合機はプリンタ機能とスキャナ機能とを備える装置であり、本実施形態では複合機も含めてプリンタという。複数のプリンタは異なるメーカーのものであってもよいし、同一メーカーの互いに異なる機種であってもよい。
以降の説明において単にプリンタ３１というときはプリンタＡ〜Ｃ、及び複合機Ｄのいずれか一つのことをいう。
【００２５】
（４）画面遷移
図３は、ユニバーサルプリンタドライバによって表示される画面の画面遷移図である。ここではアプリケーションによって表示される印刷画面４１も併せて示している。
アプリケーションによって表示される印刷画面４１でユーザがプリンタ３１を選択して「プロパティ」ボタン４１ａをクリックすると、選択されているプリンタ３１のプリンタドライバが呼び出される。
【００２６】
ユニバーサルプリンタドライバは複数機種のプリンタを制御可能なプリンタドライバであり、特定のプリンタ３１に対応するものではないので、ユニバーサルプリンタドライバを呼び出す場合はプリンタ３１ではなくユニバーサルプリンタドライバを直接選択して「プロパティ」ボタン４１ａをクリックする。ここではユニバーサルプリンタドライバが選択されて「プロパティ」ボタン４１ａがクリックされたものとする。
【００２７】
呼び出されたユニバーサルプリンタドライバは、ユーザに印刷条件を設定させるための印刷設定画面４２（設定変更画面の一例）を表示する。ここで印刷条件とは、プリンタ３１の印刷設定項目（制御項目の一例）毎に設定された設定値の組み合わせのことをいう。
図４は、印刷設定画面の一例を示す模式図である。ユーザは印刷設定画面４２で印刷設定項目毎に設定値を設定することができる。設定値を設定した後、ユーザが「Ｓｅａｒｃｈ  Ｐｒｉｎｔｅｒ」ボタン４２ｂをクリックすると、設定されている全ての設定値に従って動作可能なプリンタ３１が検索される。このとき、設定されている全ての設定値に従って動作可能なプリンタ３１が見つかった場合は、図３に示すプリンタ選択画面４３に見つかったプリンタ３１のプリンタ名（デバイス名）が一覧表示される。
【００２８】
図３に戻り、プリンタ選択画面４３でユーザがいずれかのプリンタ３１を選択して「ＯＫ」ボタン４３ａをクリックすると、ユニバーサルプリンタドライバはプリンタ選択画面４３を閉じて印刷設定画面４２に戻る。
【００２９】
一方、プリンタ３１が見つからなかった場合は、ユニバーサルプリンタドライバはメッセージ画面４４（図５参照）を表示していずれの設定値を変更すればよいかのヒントをユーザに通知する。この通知の詳細については後述する。メッセージ画面４４を閉じるとプリンタ３１が表示されていない状態のプリンタ選択画面４３が表示され、その画面で「ＯＫ」ボタン４３ａをクリックすると印刷設定画面４２に戻る。
【００３０】
このとき、ユニバーサルプリンタドライバは、動作可能なプリンタが見つからなかった設定値が設定されていた印刷制御項目を印刷設定画面４２上で識別可能に表示する。ユーザはその表示を参考にして印刷設定画面４２上で設定値を変更することができる。ユーザは「Ｓｅａｒｃｈ  Ｐｒｉｎｔｅｒ」ボタン４２ｂをクリックすることによって、変更した設定値で動作可能なプリンタ３１の検索を再実行させることができる（再検索処理の一例）。
【００３１】
印刷設定画面４２で「ＯＫ」ボタン４２ａをクリックすると、印刷設定画面４２が閉じて印刷画面４１に戻る。印刷画面４１でユーザが「ＯＫ」ボタン４１ｂをクリックすると、ユニバーサルプリンタドライバは印刷設定画面４２で設定された印刷条件に基づいて印刷データを生成し、プリンタ選択画面４３で選択されたプリンタ３１にその印刷データを出力する（制御処理の一例）。印刷データを受け取ったプリンタ３１はその印刷データに従って印刷を実行する。
【００３２】
（４）設定・検索処理の流れ
図６は、ユーザに設定値を設定させ、設定されている全ての設定値に従って動作可能なプリンタを検索する設定・検索処理の流れを示すフローチャートである。本処理はアプリケーションによって表示される印刷画面４１からユニバーサルプリンタドライバが呼び出されると開始される。
Ｓ１０１では、ユニバーサルプリンタドライバを実行するＣＰＵ１１（以下、単に「プリンタドライバ」という）は、ユーザに印刷条件を設定（検索が実行された後は変更）させる「印刷条件設定処理」を実行する（設定処理、及び設定変更処理の一例）。
【００３３】
Ｓ１０２では、プリンタドライバは、Ｓ１０１で設定された印刷条件に従ってプリンタ３１を検索する「プリンタ検索処理」を実行する（検索処理の一例）。
詳しくは後述するが、この「プリンタ検索処理」において、プリンタドライバはコンピュータと通信可能に接続されているプリンタ３１から以下に説明するデバイス情報を取得し、取得したデバイス情報と印刷条件とを比較することによってプリンタ３１を検索する。
【００３４】
デバイス情報とは、具体的には、デバイス名、通信ネットワーク５上の所在を示す所在情報（ＩＰアドレス、ドメイン名など）、そのデバイスが備える機能を示す機能情報などである。機能情報には、プリンタ機能、スキャナ機能、ファクシミリ機能などの有無を示す情報や、プリンタ機能が動作可能な設定値などといったように各機能のより詳細な情報などが含まれる。
図２は、機能情報の一例を示す表である。この表には、印刷設定項目、各印刷設定項目に対して設定可能な設定値、及び各プリンタの動作の可否が示されている。
図２では印刷設定項目の例として「Paper Size（用紙サイズ）」、「Orientation（縦横）」、「Copies（印刷部数）」、「Collate（丁合い）」、「Color/Mono（カラー／モノクロ）」、「Duplex/None（両面印刷／片面印刷）」、及び、「Resolution（解像度）」を示している。各印刷設定項目の右側に示されている値はその印刷設定項目に対して設定可能な設定値であり、例えば「Color/Mono」には設定値として「Color」及び「Mono」のいずれか一方を設定できることを示している。他の印刷設定項目についても同様であり、いずれか一つを設定することができる。
【００３５】
図中の「○」印は、その列のプリンタ３１がその行の設定値に従って動作可能であることを示しており、「×」印はその列のプリンタ３１がその行の設定値に従った動作が不可能であることを示している。例えばプリンタＡは丁合いのための構成や両面印刷のための構成を備えていないため「Collate」や「Duplex」に従った動作は不可能であるが、それ以外の設定値についてはその設定値に従って動作可能であることを示している。
【００３６】
プリンタドライバは、その後の再検索を効率よく行うために、各デバイスから取得したデバイス情報をＲＡＭ１３に記憶しておき、再検索ではＲＡＭ１３に記憶されているデバイス情報を用いてプリンタ３１を検索する。以降の説明ではＲＡＭ１３に記憶したデバイス情報のことを「キャッシュ」というものとする。
【００３７】
Ｓ１０３では、プリンタドライバは、設定されている全ての設定値に従って動作可能なプリンタ３１が見つかったか否かを判定し、見つかった場合はＳ１０４に進み、見つからなかった場合はＳ１０６に進む。
Ｓ１０４では、プリンタドライバはＲＡＭ１３からキャッシュを削除する。
【００３８】
Ｓ１０５では、プリンタドライバは見つかったプリンタ３１をプリンタ選択画面４３に一覧表示し、一覧表示したプリンタ３１の中からユーザにいずれかのプリンタ３１を選択させる。
【００３９】
Ｓ１０６では、プリンタドライバは、設定されている設定値毎に、その設定値に従った動作が不可能なプリンタが存在するか否かを判定する（判定処理の一例）。以下、図７を参照して説明する。
図７は、Ｓ１０６における判定を説明するための模式図である。図７に示す例では設定されている設定値として「Letter」、「Portrait」、「１」、「On」、「Color」、「Duplex」、「Normal」を示している。この場合、「Collate」の設定値である「On」について判定したとすると、「On」に従って動作可能なプリンタ３１は一つもないので、「その設定値に従った動作が不可能なプリンタが存在する」と判定されることになる。
【００４０】
また、「Color」について判定したとすると、「Color」に従って動作可能なプリンタ３１はあるものの、「Color」に従った動作が不可能なプリンタ３１もあるので、「その設定値に従った動作が不可能なプリンタが存在する」と判定されることになる。「Letter」や「Duplex」についても同様である。
その他の設定値はいずれのプリンタ３１もその設定値に従って動作可能であるので、「その設定値に従った動作が不可能なプリンタは存在しない」と判定されることになる。
【００４１】
Ｓ１０７では、プリンタドライバはメッセージ画面４４（図５参照）を表示し、Ｓ１０６において「その設定値に従った動作が不可能なプリンタが存在する」と判定された設定値のうち、少なくとも一つの設定値を表示（通知）する。
具体的には、プリンタドライバは、先ず、いずれのプリンタ３１もその設定値に従った動作が不可能である設定値（図７に示す例では「Collate」の設定値である「On」）を表示の対象から除外する。その理由は、そのような設定値は必ず変更しなければならないので、本実施形態ではプリンタドライバがユーザに替わって設定値を変更するからである。設定値の変更の詳細については後述する。なお、「On」についてもメッセージ画面４４に表示するようにしてもよい。
【００４２】
次に、プリンタドライバは、設定されている設定値のうち、最も多くの設定値に従って動作可能なプリンタ３１（言い換えると図７において「○」印の数が最も多いプリンタ３１）を判定し、そのプリンタ３１で動作不可能とされている設定値を表示する。
ここで、最も多くの設定値に従って動作可能なプリンタ３１が複数ある場合（図７に示す例ではプリンタＡ、プリンタＢ、及び複合機Ｄ）に、いずれのプリンタ３１も動作不可能な設定値（図７に示す例では「On」）は除いて、一方の設定値を変更すれば他方の設定値を変更しなくてよく、他方の設定値を変更すれば一方の設定値を変更しなくてよい関係にある設定値がある場合（動作不可能な設定値がそれら複数のデバイスの間で互いに異なる場合）には、それらのうちいずれか一方を変更するよう表示する。図７に示す例では、プリンタＡ，プリンタＢ，及び複合機Ｄの「Duplex」と「Color」とがその関係にあるので、「Duplex」及び「Color」のいずれか一方を変更するよう表示することになる。
【００４３】
なお、図７では上述した関係にある設定値が二つ（「Duplex」と「Color」）である場合を例に説明したが、上述した関係にある設定値は二つに限られない。例えば、Ｘ、Ｙ、Ｚという設定値があったとして、Ｘを変更すればＹ及びＺを変更しなくてよく、Ｙを変更すればＸ及びＺを変更しなくてよく、Ｚを変更すればＸ及びＹを変更しなくてよい場合もある。あるいは、Ｘを変更すればＹ及びＺを変更しなくてよく、Ｙ及びＺを両方とも変更すればＸを変更しなくてよい場合もある。
【００４４】
（５−１）印刷条件設定処理
図８は、印刷条件設定処理の流れを示すフローチャートである。
Ｓ２０１では、プリンタドライバは最初の検索であるか再検索であるかを判定する。
具体的には、「プリンタ検索処理（Ｓ１０２）」をまだ実行していない場合はＲＡＭ１３にはキャッシュは記憶されていないので、プリンタドライバは、ＲＡＭ１３にキャッシュが記憶されていない場合は最初の検索であると判定してＳ２０２に進み、キャッシュが記憶されている場合は再検索であると判定してＳ２０３に進む。
【００４５】
Ｓ２０２では、プリンタドライバは印刷設定画面４２を表示してユーザに印刷条件（各印刷設定項目の設定値の組み合わせ）を設定させる。なお、印刷設定画面４２には予め設定されている印刷条件をデフォルト値として初期表示してもよいし、前回設定された印刷条件を記憶しておいてその印刷条件を初期表示してもよい。
【００４６】
Ｓ２０３では、プリンタドライバはプリンタ３１毎に動作可／不可のパターンを判断して全てのパターンを抽出する。
図９は、抽出されたパターンの一例を示す模式図である。プリンタドライバは、ＲＡＭ１３に記憶されているデバイス情報を一つ取得し、印刷設定画面４２で設定されている設定値を一つずつそのデバイス情報と比較して、そのプリンタ３１（取得したデバイス情報に対応するプリンタ３１）がその設定値に従って動作可能であるか否かを判断する。これにより、印刷設定画面４２で設定されている設定値に対する当該プリンタ３１の動作可／不可のパターンを判断する。プリンタドライバはＲＡＭ１３に記憶されている全てのデバイス情報についてこの判断を行うことにより、全てのパターンを抽出する。
例えば図７に示す例の場合はプリンタＢと複合機Ｄとは動作可／不可のパターンが同じであるので、パターンとしては一つである。したがって、抽出されるパターンは図９に示す３パターンとなる。
【００４７】
Ｓ２０４では、プリンタドライバは抽出したパターンのうちいずれか一つのパターンを表示対象として選択する。本実施形態では動作可能とされている設定値の数が最も多いパターンを最初の表示対象として選択するものとする。
例えば図９に示す例では、パターン１及びパターン２が「○」の数が最も多いのでこれらのパターンのいずれかを表示対象とする。パターン１及びパターン２は「○」の数が同じであるのでどちらを表示対象としてもよい。
なお、ユーザは表示対象のパターンを切り替えることができるが、その説明については後述する。
【００４８】
Ｓ２０５では、プリンタドライバは、表示対象のパターンで動作不可能とされている設定値が設定されている各印刷設定項目について、動作可／不可のパターンが当該表示対象のパターンと合致するいずれかのプリンタ３１から、そのプリンタ３１が動作可能な設定値を全て取得する。
具体的には例えば、表示対象のパターンが仮にパターン３であるとすると、動作可／不可のパターンがパターン３と合致するプリンタはプリンタＣであるので、パターン３で動作不可能とされている設定値が設定されている印刷設定項目（「Paper size」、「Collate」、「Duplex/None」）について、プリンタＣで動作可能とされている設定値（「A4、A3」、「Off」、「None」）を取得する。
【００４９】
Ｓ２０６では、プリンタドライバは、印刷設定画面４２上において、表示対象のパターンで動作不可能とされている設定値（例えば表示対象のパターンがパターン３であるとすると「Letter」、「On」、「Duplex」）を、Ｓ２０５で取得した設定値（「A4又はA3」、「Off」、「None」）に変更する。１つの印刷設定項目について複数の設定値が取得された場合（例えば「A4、A3」の場合）にはそれら複数の設定値のうちいずれかの設定値に変更する。
【００５０】
Ｓ２０７では、プリンタドライバは、Ｓ２０６で変更した設定値の文字色、及び設定値の背景色を変更することによって印刷設定項目を識別可能に表示する。この表示は、Ｓ２０５で取得された設定値が一つのみである印刷設定項目（例えば「Collate」や「Duplex/None」）であるか、取得された設定値が複数である印刷設定項目（例えば「Paper size」）であるかに応じ異なる。以下、図１０を参照して説明する。
【００５１】
図１０は、印刷設定項目を識別可能に表示する一例を示す模式図である。プリンタドライバは、取得された設定値が一つのみである印刷設定項目（例えば「Collate」や「Duplex/None」）の場合は、変更した設定値をユーザが別の設定値に変更できないようグレーアウトする。これにより、印刷設定画面４２上において、動作不可能とされている設定値が設定されていた印刷設定項目が識別可能となるとともに、変更後の設定値をユーザが変更不能になる。グレーアウトするのは表示対象のパターンが切り替わるまでである。
【００５２】
一方、取得された設定値が複数ある印刷設定項目（例えば「Paper size」）の場合は、設定値の文字色及び背景色を、表示対象のパターンで動作可能とされている設定値の文字色及び背景色とは異なる色にする。
ただし、取得された設定値が複数ある印刷設定項目の場合はユーザによる設定値の変更を可能にする。設定値の変更を可能にする理由は、それら複数の設定値（「A4、A3」）のうちいずれかの設定値に変更してグレーアウトしてしまうと、ユーザがそのグレーアウトされた設定値とは別の設定値に変更したい場合に別の設定値に変更できなくなってしまうからである。
ただし、変更は可能にするものの、ユーザが変更できるのは取得した複数の設定値のうちのいずれかのみ（「A4、A3」のいずれかのみ）であり、動作不可能とされている設定値（「Letter」）に変更することはできない。
【００５３】
（４−２）プリンタ検索処理
図１１は、プリンタ検索処理の流れを示すフローチャートである。
Ｓ３０１では、プリンタドライバは最初の検索であるか再検索であるかを判定し、最初の検索である場合はＳ３０２に進み、再検索である場合はＳ３０５に進む。
Ｓ３０２では、プリンタドライバは、通信ネットワーク５に接続されているプリンタ３１にデバイス情報を要求するデータをブロードキャストによって送信し、その返答として得られたデバイス情報をＲＡＭ１３に記憶する。すなわちデバイス情報をＲＡＭ１３にキャッシュする。なお、デバイス情報はＲＡＭ１３ではなく記憶部１５に記憶されてもよい。
【００５４】
Ｓ３０３では、プリンタドライバは計時部１４から現在時刻（デバイス情報をＲＡＭ１３に記憶させた時刻の一例）を取得し、取得した時刻をＲＡＭ１３に記憶する。
Ｓ３０４では、プリンタドライバは、ＲＡＭ１３に記憶されている各プリンタ３１のデバイス情報と印刷設定画面４２で設定されている全ての設定値とを比較することにより、印刷設定画面４２で設定された全ての設定値に従って動作可能なプリンタ３１を検索する。
【００５５】
Ｓ３０５では、プリンタドライバは計時部１４から現在時刻を取得し、デバイス情報をＲＡＭ１３に記憶させた時刻から現在時刻までの経過時間が所定時間以内であるか否かを判定し、所定時間を超えている場合はＳ３０６に進み、所定時間以内である場合はＳ３０７に進む。
Ｓ３０６では、プリンタドライバはＲＡＭ１３に記憶されているキャッシュを破棄してＳ３０２に進む。
【００５６】
Ｓ３０７では、プリンタドライバは、ＲＡＭ１３に記憶されている各プリンタ３１のデバイス情報と、印刷設定画面４２で設定されている設定値からその設定値に従った動作が不可能であるプリンタ３１が存在しない設定値（例えば図７の例では「Portrait」、「Copies」、「Resolution」）を除外した設定値とを比較する。そして、印刷設定画面４２で設定された全ての設定値に従って動作可能なプリンタ３１を検索する。
「その設定値に従った動作が不可能であるプリンタが存在しない設定値」を除外するのは、全てのプリンタ３１がその設定値に従って動作可能であるので、プリンタ３１の絞り込みに寄与しないからであり、そのような設定値を除外すると再検索を効率よく行えるからである。
【００５７】
（５）印刷設定画面上でのパターンの切り替え
前述したように、ユーザは表示対象のパターンを切り替えることができる。以下、具体的に説明する。
動作可能とされている設定値の数が最も多いパターンを最初の表示対象として選択したとしても、必ずしもそのパターンがユーザにとって望ましいパターンではない場合もある。例えば、ユーザにとって「Duplex」が重要であるのに、表示対象のパターンでは「Duplex」が動作不可能である場合もある。
【００５８】
そこで、プリンタドライバは、ユーザが切替指示を入力する毎に表示対象のパターンを切り替える。具体的には、識別可能に表示されている印刷設定項目の設定値（すなわち動作可能とされている設定値とは異なる色で表示されている設定値）をユーザがマウスでクリックすると、プリンタドライバはそれを切替指示として受け付け、クリックされた設定値が動作可能とされているパターンに切り替える。以下、図１０、図１２を例に説明する。
【００５９】
図１０は図９に示すパターン３を表示対象とした状態を示している。なお、パターン３は動作可能な設定値の数が最も多いパターンではないが、ここではパターン３が最初に表示対象になったと仮定して説明する。この状態でユーザが「Duplex/Mono」の設定値をマウスでクリックしたとすると、プリンタドライバは、「Duplex」が動作可能とされているパターンであるパターン２を表示対象とする。
【００６０】
図１２は、パターン２を表示対象とした状態を示している。パターン２を表示対象にすると、パターン３では動作可能とされていた「Color」が「Mono」に変更されてグレーアウトされるものの、パターン３で「None」に変更されていた「Duplex／None」の設定値が、パターン２で動作可能とされている「Duplex」に戻され、グレーアウトも解除される。「Duplex」は「選択された制御項目（印刷設定項目）に設定されていた設定値であって直前の検索が実行される際に設定されていた設定値」の一例である。
【００６１】
なお、上述した例では「Duplex」が動作可能とされているパターンがパターン２のみである場合を例に説明したが、パターン２以外のパターンでも「Duplex」が動作可能とされている場合は、どちらのパターンを表示してもよいし、「Duplex」が動作可能とされているパターンのうち動作可能とされている設定値の数が最も多いパターンを表示してもよい。
【００６２】
（６）実施形態の効果
以上説明した本発明の実施形態１に係るユニバーサルプリンタドライバによると、設定されている全ての設定値に従って動作可能なプリンタ３１が見つからなかった場合に、「その設定値に従った動作が不可能なプリンタが存在する設定値」のうち少なくとも一つの設定値が設定されていた印刷設定項目を設定変更画面上で識別可能に表示する。これにより、ユーザはどの印刷設定項目の設定値を変更すればプリンタ３１が見つかる可能性が高くなるかを容易に知ることができる。よってこのユニバーサルプリンタドライバによると、設定値を変更してプリンタ３１を再検索させる際のユーザの負担を軽減できる。
【００６３】
更に、このユニバーサルプリンタドライバによると、例えば表示対象のパターンにおいてユーザにとって重要な設定値が動作不可能とされている場合は、その重要な設定値が動作可能とされているパターンに切り替え、切り替え後のパターンにおいて動作不可能とされている設定値を変更することにより、その重要な設定値に従って動作可能なプリンタ３１を容易に検索できる。
【００６４】
更に、このユニバーサルプリンタドライバによると、例えば表示対象のパターンにおいてユーザにとって重要な設定値が動作不可能とされている場合に、ユーザはその設定値が設定されている印刷設定項目をポインティングデバイスによって選択することにより、当該重要な設定値が動作可能とされている別のパターンに容易に切り替えることができる。
【００６５】
更に、このユニバーサルプリンタドライバによると、動作可能とされている設定値の数が最も多いパターンを最初の表示対象とする。動作可能とされている設定値の数が多いパターンほど動作不可能とされている設定値の数が少ないので、ユーザが設定値を変更する手間を軽減できる。
【００６６】
更に、このユニバーサルプリンタドライバによると、表示対象のパターンで動作不可能とされている設定値が設定されていた印刷設定項目の設定値を、動作可／不可のパターンが当該表示対象のパターンと合致するいずれかのプリンタ３１で動作可能とされている別の設定値に変更するので、動作不可能とされている設定値をユーザが変更する手間を軽減できる。
【００６７】
更に、このユニバーサルプリンタドライバによると、動作可／不可のパターンが表示対象のパターンと合致するいずれのプリンタ３１においても当該変更した設定値以外に動作可能な設定値がない場合は、当該変更した設定値をグレーアウトするので、当該変更した設定値がユーザによって別の設定値に変更されてしまってプリンタ３１が検索されなくなってしまうことを低減できる。
【００６８】
更に、このユニバーサルプリンタドライバによると、その設定値に従った動作が不可能であるプリンタ３１は存在しないと判定された設定値を再検索の条件から除外するので、効率よく再検索できる。
【００６９】
更に、このユニバーサルプリンタドライバによると、最初の検索で各プリンタ３１から取得したデバイス情報をＲＡＭ１３に記憶させ、再検索ではＲＡＭ１３に記憶されているデバイス情報を用いて検索するので、再検索では各プリンタ３１からデバイス情報を取得しなくてよい。これにより、効率よく再検索できる。
【００７０】
更に、このユニバーサルプリンタドライバによると、デバイス情報をＲＡＭ１３に記憶させた時からの経過時間が所定時間を超えている場合は各プリンタ３１からデバイス情報を再取得する。経過時間が所定時間を超えている場合には、デバイス情報が変化してしまっている可能性が生じる。デバイス情報が変化してしまっていると正しく検索できない虞がある。経過時間が所定時間を超えている場合は各プリンタ３１からデバイス情報を再取得するようにすると、その間にデバイス情報が変化してしまっていてプリンタ３１を正しく検索できない虞を低減できる。
【００７１】
更に、このユニバーサルプリンタドライバによると、「その設定値に従った動作が不可能なプリンタが存在する」と判定された設定値のうち少なくとも一つの設定値をメッセージ画面４４に表示（通知）するので、ユーザはどの設定値を変更すればよいかを容易に知ることができる。
【００７２】
更に、このユニバーサルプリンタドライバによると、設定されている設定値のうち動作可能な設定値の数が最も多いプリンタ３１で動作不可能とされている設定値を通知するので、設定値の変更を最小限に抑えることができる。
【００７３】
更に、このユニバーサルプリンタドライバによると、設定されている設定値のうち動作可能な設定値の数が最も多いプリンタ３１が複数あり、且つ、動作不可能な設定値がそれら複数のプリンタ３１の間で互いに異なる場合は、それら複数の設定値のいずれかを変更するようユーザに通知する。これにより、ユーザはいずれか一方を変更すればよいことが分かるので、いずれか一方の設定値を変更すればよいにもかかわらず両方を変更してしまうことを低減できる。
【００７４】
＜他の実施形態＞
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００７５】
（１）上記実施形態では「その設定値に従った動作が不可能なプリンタが存在する」と判定された設定値のうち少なくとも一つの設定値が設定されていた印刷設定項目を設定変更画面上で識別可能に表示する場合に、パターン毎に切り替えて表示する場合を例に説明したが、パターン毎に切り替えずに表示してもよい。
例えば、「その設定値に従った動作が不可能なプリンタが存在する」と判定された設定値が設定されていた全ての印刷設定項目を、印刷設定画面４２上で同時に識別可能に表示してもよい。
【００７６】
また、一方の設定値を変更すれば他方の設定値を変更しなくてよく、他方の設定値を変更すれば一方の設定値を変更しなくてよい関係にある複数の設定値がある場合に、それらの設定値が設定されていた印刷設定項目を同時に識別可能に表示してもよい。
【００７７】
（２）上記実施形態では動作可能とされている設定値の数が最も多いパターンを最初に表示対象とし、それ以後は、識別可能に表示されている印刷設定項目の設定値をユーザがマウスでクリックすると、その設定値が動作可能とされているパターンに切り替える場合を例に説明したが、動作可能とされている設定値の数が多いパターンから順に表示対象としてもよい。なお、パターンの表示の順序は動作可能とされている設定値の数が多い順に限られず、任意の順で表示することができる。
また、設定値の数が最も多いパターンのみを表示対象とし、それ以外のパターンは表示対象にしないようにしてもよい。
【００７８】
（３）上記実施形態では「その設定値に従った動作が不可能なプリンタが存在する」と判定された１以上の設定値のうち少なくとも一つの設定値をメッセージ画面４４上に表示する場合に、動作可能な設定値が最も多いプリンタ３１で動作不可能とされている設定値を表示する場合を例に説明したが、表示する設定値の決定の仕方はこれに限られない。
【００７９】
例えば、「その設定値に従った動作が不可能なプリンタが存在する」と判定された１以上の設定値のうち、任意の一つだけをメッセージ画面４４に表示してもよい。この場合、表示した設定値が設定されていた印刷設定項目の設定値をユーザが別の設定値に変更すれば、再検索を行うと変更後の設定値はいずれのプリンタ３１でも動作可能とされている可能性が高くなる。そして、いずれのプリンタ３１でも動作可能とされている場合には、次回のメッセージ画面４４には最初に表示された設定値とは異なる設定値が表示されることになり、これを繰り返すことで最終的に全ての設定値をサポートするプリンタ３１を検索することが可能になる。
【００８０】
あるいは、「その設定値に従った動作が不可能なプリンタが存在する」と判定された設定値を全てメッセージ画面４４に表示してもよい。
【００８１】
（４）上記実施形態ではユニバーサルドライバとしてプリンタドライバを例に説明したが、ユニバーサルドライバはスキャナドライバであってもよい。
【符号の説明】
【００８２】
１・・・コンピュータ
５・・・通信ネットワーク
１１・・・ＣＰＵ
１２・・・ＲＯＭ
１３・・・ＲＡＭ
１４・・・計時部
１５・・・記憶部
１６・・・ディスプレイ駆動回路
１７・・・ＵＳＢインタフェース
１８・・・ネットワークインタフェース
１９・・・表示装置
２０・・・入力装置
３１・・・プリンタ
４２・・・印刷設定画面
４３・・・プリンタ選択画面
４４・・・メッセージ画面
【図１】
0005652032.tif 000002
【図２】
0005652032.tif 000003
【図３】
0005652032.tif 000004
【図４】
0005652032.tif 000005
【図５】
0005652032.tif 000006
【図６】
0005652032.tif 000007
【図７】
0005652032.tif 000008
【図８】
0005652032.tif 000009
【図９】
0005652032.tif 000010
【図１０】
0005652032.tif 000011
【図１１】
0005652032.tif 000012
【図１２】
0005652032.tif 000013