(57)【特許請求の範囲】
【請求項１】
１以上のデバイスと通信可能に接続されている情報処理装置で実行されるユニバーサルデバイスドライバであって、
前記１以上のデバイスの中からいずれかのデバイスをユーザに指定させる第１の指定処理と、
前記第１の指定処理によって指定されたデバイスの機種に対応する専用デバイスドライバが前記情報処理装置にインストールされているか否かを判定する第１の判定処理と、
前記第１の判定処理によって前記対応する専用デバイスドライバがインストールされていると判定された場合に、前記指定されたデバイスと通信するためのポートを、前記対応する専用デバイスドライバで使用するポートとして設定するか、又は前記対応する専用デバイスドライバで使用するポートとして設定するよう前記対応する専用デバイスドライバに指示する第１のポート設定処理と、
前記第１の判定処理によって前記対応する専用デバイスドライバがインストールされていると判定された場合に、前記対応する専用デバイスドライバを使用できることをユーザに報知する第１の報知処理と、
前記第１の判定処理によって前記対応する専用デバイスドライバがインストールされていないと判定された場合に、前記指定されたデバイスと通信するためのポートを、当該ユニバーサルデバイスドライバで使用するポートとして設定する第２のポート設定処理と、
前記第２のポート設定処理によってポートが設定された後に、当該設定されたポートを介して前記指定されたデバイスを制御する第１の制御処理と、
を前記情報処理装置に実行させるユニバーサルデバイスドライバ。
【請求項２】
請求項１に記載のユニバーサルデバイスドライバであって、
前記第１の報知処理において、前記第１の指定処理で指定されたデバイスの機種に対応する専用デバイスドライバを呼び出して制御条件を設定するための画面を表示させることにより、当該専用デバイスドライバを使用できることをユーザに報知する、ユニバーサルデバイスドライバ。
【請求項３】
１以上のデバイスと通信可能に接続されている情報処理装置で実行されるユニバーサルデバイスドライバであって、
デバイスの機種に対応する専用デバイスドライバが前記情報処理装置にインストールされているか否かを判定する第２の判定処理と、
前記第２の判定処理で前記専用デバイスドライバがインストールされていると判定された場合に、前記１以上のデバイスの中から当該インストールされている専用デバイスドライバに対応する機種のデバイスを検索する検索処理と、
前記検索処理によってデバイスが見つかった場合に、見つかったデバイスの中からいずれかのデバイスをユーザに指定させる第２の指定処理と、
前記第２の指定処理によって指定されたデバイスと通信するためのポートを、当該指定されたデバイスの機種に対応する前記専用デバイスドライバで使用するポートとして設定するか、又は前記対応する専用デバイスドライバで使用するポートとして設定するよう前記対応する専用デバイスドライバに指示する第３のポート設定処理と、
前記第２の指定処理によって指定されたデバイスに対応する専用デバイスドライバを使用できることをユーザに報知する第２の報知処理と、
前記第２の判定処理で専用デバイスドライバがインストールされていないと判定された場合、又は、前記検索処理でデバイスが見つからなかった場合に、前記１以上のデバイスの中からいずれかのデバイスをユーザに指定させる第３の指定処理と、
前記第３の指定処理によって指定されたデバイスと通信するためのポートを、当該ユニバーサルデバイスドライバで使用するポートとして設定する第４のポート設定処理と、
前記第４のポート設定処理によってポートが設定された後に、当該設定されたポートを介して前記指定されたデバイスを制御する第２の制御処理と、
を前記情報処理装置に実行させるユニバーサルデバイスドライバ。
【請求項４】
請求項３に記載のユニバーサルデバイスドライバであって、
前記情報処理装置にインストールされている専用デバイスドライバに対応するデバイスを検索するか否かをユーザに指定させる第４の指定処理を前記情報処理装置に実行させ、
前記検索処理において、前記第４の指定処理で前記対応するデバイスを検索するよう指定されている場合に、前記１以上のデバイスの中から前記インストールされている専用デバイスドライバに対応する機種のデバイスを検索し、
前記第３の指定処理において、前記第２の判定処理で専用デバイスドライバがインストールされていないと判定された場合、前記第４の指定処理で前記対応するデバイスを検索するよう指定されていない場合、又は、前記検索処理でデバイスが見つからなかった場合に、前記１以上のデバイスの中からいずれかのデバイスをユーザに指定させる、ユニバーサルデバイスドライバ。
【請求項５】
請求項３又は請求項４に記載のユニバーサルデバイスドライバであって、
デバイスに実行させる機能をユーザに指定させる機能指定処理を前記情報処理装置に実行させ、
前記第２の判定処理において、前記機能指定処理によって指定された機能を制御可能な前記専用デバイスドライバが前記情報処理装置にインストールされているか否かを判定する、ユニバーサルデバイスドライバ。
【請求項６】
１以上のデバイスと通信可能に接続されており、少なくともユニバーサルデバイスドライバがインストールされている情報処理装置を用いたデバイス制御方法であって、
前記１以上のデバイスの中からいずれかのデバイスをユーザに指定させる第１の指定段階と、
前記第１の指定段階で指定されたデバイスの機種に対応する専用デバイスドライバが前記情報処理装置にインストールされているか否かを判定する第１の判定段階と、
前記第１の判定段階で前記対応する専用デバイスドライバがインストールされていると判定された場合に、前記指定されたデバイスと通信するためのポートを、前記対応する専用デバイスドライバで使用するポートとして設定するか、又は前記対応する専用デバイスドライバで使用するポートとして設定するよう前記対応する専用デバイスドライバに指示する第１のポート設定段階と、
前記第１の判定段階で前記対応する専用デバイスドライバがインストールされていると判定された場合に、前記対応する専用デバイスドライバを使用できることをユーザに報知する第１の報知段階と、
前記第１の判定段階で前記対応する専用デバイスドライバがインストールされていないと判定された場合に、前記指定されたデバイスと通信するためのポートを、前記ユニバーサルデバイスドライバで使用するポートとして設定する第２のポート設定段階と、
前記第２のポート設定段階でポートが設定された後に、前記ユニバーサルデバイスドライバを実行し、当該設定されたポートを介して前記指定されたデバイスを制御する第１の制御段階と、
を含むデバイス制御方法。
【請求項７】
請求項６に記載のデバイス制御方法であって、
前記第１の判定段階において前記専用デバイスドライバがインストールされていると判定された場合に、前記第１のポート設定段階の前に、当該専用デバイスドライバで使用するポートとして設定されている元のポートのポート識別情報を取得する第１の取得段階と、
前記専用デバイスドライバによる前記指定されたデバイスの制御が終了した後に、前記専用デバイスドライバで使用するポートを、前記ポート識別情報によって識別される元のポートに戻す復元段階と、
を含むデバイス制御方法。
【請求項８】
請求項７に記載のデバイス制御方法であって、
前記専用デバイスドライバで使用するポートを元のポートに戻すか否かをユーザに指定させる第２の指定段階を含み、
前記復元段階において、前記第２の指定段階で元のポートに戻すよう指定されている場合は前記専用デバイスドライバで使用するポートを元のポートに戻し、前記第２の指定段階で元のポートに戻すよう指定されていない場合は元のポートに戻さない、デバイス制御方法。
【請求項９】
請求項７又は請求項８に記載のデバイス制御方法であって、
前記第１の指定段階において、ＵＳＢ接続されているデバイス以外の１以上のデバイスの中からいずれかのデバイスをユーザに指定させ、
前記復元段階において、前記元のポートの種類がＵＳＢポートである場合は前記専用デバイスドライバで使用するポートを元のポートに戻し、それ以外の種類である場合は元に戻さない、デバイス制御方法。
【請求項１０】
請求項７乃至請求項９のいずれか一項に記載のデバイス制御方法であって、
前記第１の判定段階において前記対応する専用デバイスドライバがインストールされていると判定された場合に、前記第１の指定段階で指定されたデバイスと通信するためのポートのポート識別情報を取得する第２の取得段階と、
前記復元段階において前記専用デバイスドライバで使用するポートを元のポートに戻した後に、当該元のポートを介してデバイスと通信可能か否かを判定する通信判定段階と、
前記通信判定段階において通信不能と判定された場合に、前記第２の取得段階で取得したポート識別情報によって識別されるポートを、前記専用デバイスドライバで使用するポートとして再設定する再設定段階と、
を含むデバイス制御方法。
【請求項１１】
１以上のデバイスと通信可能に接続されており、少なくともユニバーサルデバイスドライバがインストールされている情報処理装置を用いたデバイス制御方法であって、
デバイスの機種に対応する専用デバイスドライバが前記情報処理装置にインストールされているか否かを判定する第２の判定段階と、
前記第２の判定段階において前記専用デバイスドライバがインストールされていると判定された場合に、前記１以上のデバイスの中から当該インストールされている専用デバイスドライバに対応する機種のデバイスを検索する検索段階と、
前記検索段階でデバイスが見つかった場合に、見つかったデバイスの中からいずれかのデバイスをユーザに指定させる第３の指定段階と、
前記第３の指定段階で指定されたデバイスと通信するためのポートを、当該指定されたデバイスの機種に対応する前記専用デバイスドライバで使用するポートとして設定するか、又は前記対応する専用デバイスドライバで使用するポートとして設定するよう当該専用デバイスドライバに指示する第３のポート設定段階と、
前記第３の指定段階で指定されたデバイスに対応する専用デバイスドライバを使用できることをユーザに報知する第２の報知段階と、
前記第２の判定段階で専用デバイスドライバがインストールされていないと判定された場合、又は、前記検索段階でデバイスが見つからなかった場合に、前記１以上のデバイスの中からいずれかのデバイスをユーザに指定させる第３の指定段階と、
前記第３の指定段階で指定されたデバイスと通信するためのポートを、前記ユニバーサルデバイスドライバで使用するポートとして設定する第４のポート設定段階と、
前記第４のポート設定段階でポートが設定された後に、当該設定されたポートを介して前記指定されたデバイスを制御する第２の制御段階と、
を含むデバイス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数機種のデバイスを制御するユニバーサルデバイスドライバ、及び、デバイス制御方法に関する。
【背景技術】
【０００２】
従来、デバイスを制御するプリンタドライバにおいて、機種依存性の低い所謂ユニバーサルプリンタドライバが知られている（例えば、特許文献１参照）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２７１５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特定の機種に対応して開発されたデバイスドライバ（専用デバイスドライバ）は機種依存性が高い反面、対応する機種のデバイスが備えるほぼ全ての機能を制御できる。
これに対し、ユニバーサルデバイスドライバは機種依存性が低いので複数の機種のデバイスを制御できる反面、制御できる機能は複数の機種に共通する一般的な機能に限られることが多い。そのため、ユニバーサルデバイスドライバではデバイスの機種固有の機能を利用できない場合がある。
【０００５】
本発明は上記のような事情に基づいて完成されたものであって、ユニバーサルデバイスドライバでユーザが指定したデバイスに対応する専用デバイスドライバがインストールされている場合に、当該指定したデバイスを専用デバイスドライバから制御できるようにするためのユーザの負担を軽減する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本明細書によって開示されるユニバーサルデバイスドライバは、１以上のデバイスと通信可能に接続されている情報処理装置で実行されるユニバーサルデバイスドライバであって、前記１以上のデバイスの中からいずれかのデバイスをユーザに指定させる第１の指定処理と、前記第１の指定処理によって指定されたデバイスの機種に対応する専用デバイスドライバが前記情報処理装置にインストールされているか否かを判定する第１の判定処理と、前記第１の判定処理によって前記対応する専用デバイスドライバがインストールされていると判定された場合に、前記指定されたデバイスと通信するためのポートを、前記対応する専用デバイスドライバで使用するポートとして設定するか、又は前記対応する専用デバイスドライバで使用するポートとして設定するよう前記対応する専用デバイスドライバに指示する第１のポート設定処理と、前記第１の判定処理によって前記対応する専用デバイスドライバがインストールされていると判定された場合に、前記対応する専用デバイスドライバを使用できることをユーザに報知する第１の報知処理と、前記第１の判定処理によって前記対応する専用デバイスドライバがインストールされていないと判定された場合に、前記指定されたデバイスと通信するためのポートを、当該ユニバーサルデバイスドライバで使用するポートとして設定する第２のポート設定処理と、前記第２のポート設定処理によってポートが設定された後に、当該設定されたポートを介して前記指定されたデバイスを制御する第１の制御処理と、を前記情報処理装置に実行させる。
【０００７】
また、本明細書によって開示されるユニバーサルデバイスドライバは、前記第１の報知処理において、前記第１の指定処理で指定されたデバイスの機種に対応する専用デバイスドライバを呼び出して制御条件を設定するための画面を表示させることにより、当該専用デバイスドライバを使用できることをユーザに報知する。
【０００８】
また、本明細書によって開示されるユニバーサルデバイスドライバは、１以上のデバイスと通信可能に接続されている情報処理装置で実行されるユニバーサルデバイスドライバであって、デバイスの機種に対応する専用デバイスドライバが前記情報処理装置にインストールされているか否かを判定する第２の判定処理と、前記第２の判定処理で前記専用デバイスドライバがインストールされていると判定された場合に、前記１以上のデバイスの中から当該インストールされている専用デバイスドライバに対応する機種のデバイスを検索する検索処理と、前記検索処理によってデバイスが見つかった場合に、見つかったデバイスの中からいずれかのデバイスをユーザに指定させる第２の指定処理と、前記第２の指定処理によって指定されたデバイスと通信するためのポートを、当該指定されたデバイスの機種に対応する前記専用デバイスドライバで使用するポートとして設定するか、又は前記対応する専用デバイスドライバで使用するポートとして設定するよう前記対応する専用デバイスドライバに指示する第３のポート設定処理と、前記第２の指定処理によって指定されたデバイスに対応する専用デバイスドライバを使用できることをユーザに報知する第２の報知処理と、前記第２の判定処理で専用デバイスドライバがインストールされていないと判定された場合、又は、前記検索処理でデバイスが見つからなかった場合に、前記１以上のデバイスの中からいずれかのデバイスをユーザに指定させる第３の指定処理と、前記第３の指定処理によって指定されたデバイスと通信するためのポートを、当該ユニバーサルデバイスドライバで使用するポートとして設定する第４のポート設定処理と、前記第４のポート設定処理によってポートが設定された後に、当該設定されたポートを介して前記指定されたデバイスを制御する第２の制御処理と、を前記情報処理装置に実行させる。
【０００９】
また、本明細書によって開示されるユニバーサルデバイスドライバは、前記情報処理装置にインストールされている専用デバイスドライバに対応するデバイスを検索するか否かをユーザに指定させる第４の指定処理を前記情報処理装置に実行させ、前記検索処理において、前記第４の指定処理で前記対応するデバイスを検索するよう指定されている場合に、前記１以上のデバイスの中から前記インストールされている専用デバイスドライバに対応する機種のデバイスを検索し、前記第３の指定処理において、前記第２の判定処理で専用デバイスドライバがインストールされていないと判定された場合、前記第４の指定処理で前記対応するデバイスを検索するよう指定されていない場合、又は、前記検索処理でデバイスが見つからなかった場合に、前記１以上のデバイスの中からいずれかのデバイスをユーザに指定させる。
【００１０】
また、本明細書によって開示されるユニバーサルデバイスドライバは、デバイスに実行させる機能をユーザに指定させる機能指定処理を前記情報処理装置に実行させ、前記第２の判定処理において、前記機能指定処理によって指定された機能を制御可能な前記専用デバイスドライバが前記情報処理装置にインストールされているか否かを判定する。
【００１１】
また、本明細書によって開示されるデバイス制御方法は、１以上のデバイスと通信可能に接続されており、少なくともユニバーサルデバイスドライバがインストールされている情報処理装置を用いたデバイス制御方法であって、前記１以上のデバイスの中からいずれかのデバイスをユーザに指定させる第１の指定段階と、前記第１の指定段階で指定されたデバイスの機種に対応する専用デバイスドライバが前記情報処理装置にインストールされているか否かを判定する第１の判定段階と、前記第１の判定段階で前記対応する専用デバイスドライバがインストールされていると判定された場合に、前記指定されたデバイスと通信するためのポートを、前記対応する専用デバイスドライバで使用するポートとして設定するか、又は前記対応する専用デバイスドライバで使用するポートとして設定するよう前記対応する専用デバイスドライバに指示する第１のポート設定段階と、前記第１の判定段階で前記対応する専用デバイスドライバがインストールされていると判定された場合に、前記対応する専用デバイスドライバを使用できることをユーザに報知する第１の報知段階と、前記第１の判定段階で前記対応する専用デバイスドライバがインストールされていないと判定された場合に、前記指定されたデバイスと通信するためのポートを、前記ユニバーサルデバイスドライバで使用するポートとして設定する第２のポート設定段階と、前記第２のポート設定段階でポートが設定された後に、前記ユニバーサルデバイスドライバを実行し、当該設定されたポートを介して前記指定されたデバイスを制御する第１の制御段階と、
を含む。
【００１２】
また、本明細書によって開示されるデバイス制御方法は、前記第１の判定段階において前記専用デバイスドライバがインストールされていると判定された場合に、前記第１のポート設定段階の前に、当該専用デバイスドライバで使用するポートとして設定されている元のポートのポート識別情報を取得する第１の取得段階と、前記専用デバイスドライバによる前記指定されたデバイスの制御が終了した後に、前記専用デバイスドライバで使用するポートを、前記ポート識別情報によって識別される元のポートに戻す復元段階と、を含む。
【００１３】
また、本明細書によって開示されるデバイス制御方法は、前記専用デバイスドライバで使用するポートを元のポートに戻すか否かをユーザに指定させる第２の指定段階を含み、前記復元段階において、前記第２の指定段階で元のポートに戻すよう指定されている場合は前記専用デバイスドライバで使用するポートを元のポートに戻し、前記第２の指定段階で元のポートに戻すよう指定されていない場合は元のポートに戻さない。
【００１４】
また、本明細書によって開示されるデバイス制御方法は、前記第１の指定段階において、ＵＳＢ接続されているデバイス以外の１以上のデバイスの中からいずれかのデバイスをユーザに指定させ、前記復元段階において、前記元のポートの種類がＵＳＢポートである場合は前記専用デバイスドライバで使用するポートを元のポートに戻し、それ以外の種類である場合は元に戻さない。
【００１５】
また、本明細書によって開示されるデバイス制御方法は、前記第１の判定段階において前記対応する専用デバイスドライバがインストールされていると判定された場合に、前記第１の指定段階で指定されたデバイスと通信するためのポートのポート識別情報を取得する第２の取得段階と、前記復元段階において前記専用デバイスドライバで使用するポートを元のポートに戻した後に、当該元のポートを介してデバイスと通信可能か否かを判定する通信判定段階と、前記通信判定段階において通信不能と判定された場合に、前記第２の取得段階で取得したポート識別情報によって識別されるポートを、前記専用デバイスドライバで使用するポートとして再設定する再設定段階と、を含む。
【００１６】
また、本明細書によって開示されるデバイス制御方法は、１以上のデバイスと通信可能に接続されており、少なくともユニバーサルデバイスドライバがインストールされている情報処理装置を用いたデバイス制御方法であって、デバイスの機種に対応する専用デバイスドライバが前記情報処理装置にインストールされているか否かを判定する第２の判定段階と、前記第２の判定段階において前記専用デバイスドライバがインストールされていると判定された場合に、前記１以上のデバイスの中から当該インストールされている専用デバイスドライバに対応する機種のデバイスを検索する検索段階と、前記検索段階でデバイスが見つかった場合に、見つかったデバイスの中からいずれかのデバイスをユーザに指定させる第３の指定段階と、前記第３の指定段階で指定されたデバイスと通信するためのポートを、当該指定されたデバイスの機種に対応する前記専用デバイスドライバで使用するポートとして設定するか、又は前記対応する専用デバイスドライバで使用するポートとして設定するよう当該専用デバイスドライバに指示する第３のポート設定段階と、前記第３の指定段階で指定されたデバイスに対応する専用デバイスドライバを使用できることをユーザに報知する第２の報知段階と、前記第２の判定段階で専用デバイスドライバがインストールされていないと判定された場合、又は、前記検索段階でデバイスが見つからなかった場合に、前記１以上のデバイスの中からいずれかのデバイスをユーザに指定させる第３の指定段階と、前記第３の指定段階で指定されたデバイスと通信するためのポートを、前記ユニバーサルデバイスドライバで使用するポートとして設定する第４のポート設定段階と、前記第４のポート設定段階でポートが設定された後に、当該設定されたポートを介して前記指定されたデバイスを制御する第２の制御段階と、を含む。
【発明の効果】
【００１７】
本発明によれば、ユニバーサルデバイスドライバでユーザが指定したデバイスに対応する専用デバイスドライバがインストールされている場合に、当該指定したデバイスを専用デバイスドライバから制御できるようにするためのユーザの負担を軽減できる。
【図面の簡単な説明】
【００１８】
【図１】実施形態１に係る印刷システムの構成を示す模式図。
【図２】ポートの生成、及び切り替えを概念的に説明するための模式図。
【図３】プリンタ３を選択する際の画面遷移図。
【図４】アプリケーションから呼び出されたときのユニバーサルプリンタドライバの処理の流れを示すフローチャート。
【図５】メッセージ画面の一例を示す模式図。
【図６】印刷命令が出力されたときの専用プリンタドライバの処理の流れを示すフローチャート。
【図７】印刷終了後の専用プリンタドライバの処理の流れを示すフローチャート。
【図８】実施形態２に係る印刷終了後の専用プリンタドライバの処理の流れを示すフローチャート。
【図９】実施形態３に係るアプリケーションから呼び出されたときのユニバーサルプリンタドライバの処理の流れを示すフローチャート。
【図１０】実施形態４に係るアプリケーションから呼び出されたときのユニバーサルプリンタドライバの処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１９】
＜実施形態１＞
本発明の実施形態１を図１ないし図７によって説明する。
【００２０】
（１）印刷システムの構成
図１は、実施形態１に係る印刷システム１の構成を示す模式図である。印刷システム１は、パーソナルコンピュータ２（情報処理装置の一例）と１以上のプリンタ３（デバイスの一例）とを備えて構成されている。パーソナルコンピュータ（ＰＣ）２とプリンタ３とはＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットなどの通信ネットワーク５を介して通信可能に接続されている。
【００２１】
（１−１）パーソナルコンピュータの構成
ＰＣ２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、記憶部２４、ディスプレイ駆動回路（駆動回路）２５、ＵＳＢインタフェース（ＵＳＢ  Ｉ／Ｆ）２６、ネットワークインタフェース（ＮＷ  Ｉ／Ｆ）２７などを備えて構成されている。
【００２２】
ＣＰＵ２１は、ＲＯＭ２２や記憶部２４に記憶されている各種のプログラムを実行することによってＰＣ２の各部を制御する。ＲＯＭ２２にはＣＰＵ２１によって実行される各種のプログラムやデータなどが記憶されている。ＲＡＭ２３はＣＰＵ２１が各種の処理を実行するための主記憶装置として用いられる。
【００２３】
記憶部２４は、ハードディスクやフラッシュメモリなどの不揮発性のメモリを用いて各種のプログラムやデータを記憶する装置である。記憶部２４には、オペレーティングシステム（ＯＳ）２９、アプリケーションプログラム３０（ワードプロセッサ、表計算ソフト、画像編集ソフトなど）、ユニバーサルプリンタドライバプログラム３１（ユニバーサルデバイスドライバの一例）、専用プリンタドライバプログラム３２（専用デバイスドライバの一例）などが記憶される。
本実施形態ではＯＳ２９としてＭｉｃｒｏｓｏｆｔ社のＷＩＮＤＯＷＳ（登録商標）を例に説明する。なお、ＯＳ２９はＷＩＮＤＯＷＳ（登録商標）に限られるものではない。
【００２４】
ディスプレイ駆動回路２５は、ＣＲＴや液晶ディスプレイなどの表示装置２８を駆動する回路であり、ケーブルを介して表示装置２８と接続されている。
ＵＳＢインタフェース２６はＵＳＢホストインタフェースとして構成されており、ＵＳＢケーブルを介してマウスやキーボードなどの入力装置２９と接続される。
【００２５】
ネットワークインタフェース２７は、通信ネットワーク５を介してプリンタ３などの外部の装置と通信可能に接続されている。上述したアプリケーション３０やユニバーサルプリンタドライバ３１などのプログラムは通信ネットワーク５を介して外部のサーバからダウンロードすることができる。
【００２６】
（１−２）プリンタ
複数のプリンタ３（プリンタ３Ａ〜３Ｄ）は、紙などの被記録媒体に電子写真方式、インクジェット方式などで画像を形成する装置である。複数のプリンタ３は互いに異なる機種であってもよいし、互いに同じ機種であってもよい。以降の説明において単にプリンタ３というときはプリンタ３Ａ〜３Ｄのいずれか一つのことをいう。
【００２７】
（２）ポートの生成、及び切り替え
図２は、ユニバーサルプリンタドライバプログラム３１を実行するＣＰＵ２１（以下、単に「ユニバーサルプリンタドライバ３１」という）によるポートの生成、及び切り替えを概念的に説明するための模式図である。
ここではポートとしてＴＣＰ／ＩＰポートを例に説明する。ＴＣＰ／ＩＰポートは通信ネットワーク５を介してプリンタ３と通信するための論理的なインタフェースである。例えばＷＩＮＤＯＷＳではＴＣＰ／ＩＰポートは「ＳｔａｎｄａｒｄＴＣＰ／ＩＰポート」と呼ばれている。
なお、ポートはＴＣＰ／ＩＰポートに限られるものではなく、シリアルポートを介してプリンタ３と通信するための論理ポート、パラレルポートを介してプリンタ３と通信するための論理ポート、ＵＳＢを介してプリンタ３と通信するための論理ポート（ＵＳＢポート）などであってもよい。
【００２８】
ＷＩＮＤＯＷＳではポートの生成や切り替えを行うためには管理者権限（アドミニストレータ権限、ｒｏｏｔ権限など）が必要とされており、管理者権限を持たないユーザはポートの生成や切り替えを行うことができない。
そこで、ユニバーサルプリンタドライバ３１は、ポート切替ツール３５を用いてポートの生成や切り替えを行う。ポート切替ツール３５は常駐プログラムであり、管理者権限又は、それよりも高いシステム権限で実行される。従って、管理者権限を持たないユーザであってもポートの生成や切り替えを行うことができる。
ポート切替ツール３５はユニバーサルプリンタドライバプログラム３１の一部であるが、便宜上、ここではユニバーサルプリンタドライバプログラム３１とは別プログラムとして説明する。
【００２９】
ポートの設定では、ユニバーサルプリンタドライバ３１は、先ず、生成するポートのポート名と、通信するプリンタ３のＩＰアドレス（通信ネットワーク５上の所在を示す所在情報）とを指定して、ポート切替ツール３５にポートの生成を指示する。
【００３０】
ポート切替ツール３５を実行するＣＰＵ２１（以下、単に「ポート切替ツール３５」という）は、ユニバーサルプリンタドライバ３１からポートの生成が指示されると、ＯＳ２９（具体的には例えばＯＳ２９のポートモニタ２９ａ）にポート生成命令を出力する。ＯＳ２９はポート生成命令が出力されるとそのポート生成命令で指定されているＩＰアドレスが設定されているＴＣＰ／ＩＰポート４０を生成し、生成したＴＣＰ／ＩＰポート４０にそのポート生成命令で指定されているポート名（ポート識別情報の一例）を付与する。なお、ポート名はＯＳ２９によって自動で生成される構成であってもよい。
【００３１】
次に、ユニバーサルプリンタドライバ３１は、ポートを設定する対象がユニバーサルプリンタドライバ３１であることを示す情報と、上述したポート名とを指定して、ポート切替ツール３５にポートの切り替えを指示する。
ポート切替ツール３５は、ポートの切り替えが指示されると、ＯＳ２９（具体的には例えばＯＳ２９のポートモニタ２９ａ）にポート切替命令を出力する。
ＯＳ２９は、ポート切替命令が出力されるとそのポート切替命令で指定されているポート名によって識別されるＴＣＰ／ＩＰポート４０を、ユニバーサルプリンタドライバ３１で使用するＴＣＰ／ＩＰポート４０として設定する。
このように、ユニバーサルプリンタドライバ３１はポート切替ツール３５を介してＯＳ２９にポートの生成や切り替えを指示することにより、ユーザ権限で実行されてもポートの生成や切り替えを行うことができる。
【００３２】
なお、ここではユニバーサルプリンタドライバ３１がポート切替ツール３５を用いてポートの生成や切り替えを行う場合を例に説明したが、本実施形態に係る専用プリンタドライバ３２もポート切替ツール３５を用いてポートの生成や切り替えを行うように構成されている。
【００３３】
また、ここではポート切替ツール３５を用いてポートの生成や切り替えを行う場合を例に説明するが、ユーザが管理者権限を持っている場合や、管理者権限を持たないユーザでもポートの生成や切り替えを行えるＯＳの場合には、ポート切替ツール３５を用いなくてもよい。
【００３４】
（３）プリンタの選択
図３は、ユニバーサルプリンタドライバ３１でプリンタ３を選択する際の画面遷移図である。アプリケーションプログラム３０を実行するＣＰＵ２１（以下、単に「アプリケーション３０」という）によって表示されるメニューでユーザが印刷を選択すると、アプリケーション３０によって印刷画面５０が表示され、ユーザは印刷画面５０でプリンタ３を選択することができる。
ユニバーサルプリンタドライバ３１は特定の１機種のプリンタ３にのみ対応しているのではないので、ユニバーサルプリンタドライバ３１を用いて印刷する場合は、ユーザはプリンタ３ではなくユニバーサルプリンタドライバ３１を直接選択する。ここではユニバーサルプリンタドライバ３１が選択されたものとする。
【００３５】
ユニバーサルプリンタドライバ３１が選択されて［プロパティ］ボタン５０ａがクリックされると、アプリケーション３０からユニバーサルプリンタドライバ３１が呼び出される。
【００３６】
図４は、アプリケーション３０から呼び出されたときのユニバーサルプリンタドライバ３１の処理の流れを示すフローチャートである。ここでは、ユーザによって指定されたプリンタ３と通信するためのポートをそのプリンタ３の機種に対応する専用デバイスドライバで使用するポートとして設定するよう、ユニバーサルプリンタドライバ３１が当該対応する専用デバイスドライバに指示する場合を例に説明する。
【００３７】
Ｓ１０１では、ユニバーサルプリンタドライバ３１は、ＰＣ２と同じサブネットに接続されているプリンタ３にデバイス情報（プリンタ名、ＩＰアドレス、対応する専用プリンタドライバ３２のドライバ名、実行可能な機能の情報など）を要求するデータをブロードキャストによって送信し、その返答として得られたデバイス情報に基づいて、ネットワーク上のプリンタ３を検索する。
【００３８】
Ｓ１０２では、ユニバーサルプリンタドライバ３１は見つかったプリンタ３のプリンタ名をプリンタ選択画面５１（図３参照）に一覧表示し、ユーザにいずれかのプリンタ３を指定させる（第１の指定処理、第１の指定段階の一例）。
【００３９】
Ｓ１０３では、ユニバーサルプリンタドライバ３１はユーザによって指定されたプリンタ３に対応する専用プリンタドライバ３２がＰＣ２にインストールされているか否か（あるか否か）を判定する（第１の判定処理、第１の判定段階の一例）。
【００４０】
この判定は、例えばＰＣ２にインストールされている専用プリンタドライバ３２のドライバ名の一覧をＯＳ２９から取得することによって行うことができる。
具体的には例えば、ユニバーサルプリンタドライバ３１は、ユーザによって指定されたプリンタ３から取得したデバイス情報に含まれているドライバ名が、ＯＳ２９から取得したドライバ名の一覧に含まれているか否かを判定し、含まれていれば専用プリンタドライバ３２がインストールされていると判断する。
【００４１】
ユニバーサルプリンタドライバ３１は、専用プリンタドライバ３２がインストールされている場合はＳ１０４に進み、インストールされていない場合はＳ１０６に進む。
【００４２】
Ｓ１０４では、ユニバーサルプリンタドライバ３１は、指定されたプリンタ３に対応する専用プリンタドライバ３２のドライバ名と、指定されたプリンタ３のＩＰアドレスとを、ＯＳ２９のレジストリ（システム情報）の所定のセクションに書き込む。詳しくは後述するが、ドライバ名とＩＰアドレスとをレジストリに書き込むことは、専用デバイスドライバにポートの設定を指示する一例である。（第１のポート設定処理、第１のポート設定段階の一例）。
【００４３】
Ｓ１０５では、ユニバーサルプリンタドライバ３１はメッセージ画面５３（図３、図５参照）を表示装置２８に表示させ、専用プリンタドライバ３２を使用できることをユーザに報知する（第１の報知処理、第１の報知段階の一例）。
メッセージ画面５３でユーザが［ＯＫ］ボタンをクリックすると印刷画面５０に戻る。印刷画面５０はユニバーサルプリンタドライバ３１が選択されたままの状態であるので、専用プリンタドライバ３２を使用して印刷を行わせる場合は、ユーザは印刷画面５０でプリンタ３（Ｓ１０２で指定したプリンタ３）を指定し直して［印刷］ボタン５０ｂをクリックする。
印刷画面５０で［印刷］ボタン５０ｂをクリックすると、アプリケーション３０から、印刷画面５０で指定されたプリンタ３に対応する専用プリンタドライバ３２に印刷命令が出力される。
【００４４】
Ｓ１０６では、ユニバーサルプリンタドライバ３１は、Ｓ１０２で指定されたプリンタ３と通信するためのＴＣＰ／ＩＰポート４０を、ユニバーサルプリンタドライバ３１で使用するポートとして設定する（第２のポート設定処理、第２のポート設定段階の一例）。
【００４５】
具体的には、ユニバーサルプリンタドライバ３１は、先ず、所定の命名規則に従ってポート名を生成し、Ｓ１０２で指定されたプリンタ３のＩＰアドレスと生成したポート名とを指定してポート切替ツール３５にＴＣＰ／ＩＰポート４０の生成を指示する。この指示はポート切替ツール３５によってポート生成命令としてＯＳ２９に出力され、ＯＳ２９はそのポート生成命令で指定されているポート名のポートが存在していなければ、そのポート生成命令に従ってＴＣＰ／ＩＰポート４０を生成する。
【００４６】
次に、ユニバーサルプリンタドライバ３１は、ポートを設定する対象がユニバーサルプリンタドライバ３１であることを示す情報と、生成したポート名とを指定して、ポート切替ツール３５にポートの切り替えを指示する。この指示はポート切替ツール３５によってポート切替命令としてＯＳ２９に出力され、ＯＳ２９はそのポート切替命令で指定されているポート名のポートを、ユニバーサルプリンタドライバ３１で使用するポートとして設定する。
【００４７】
Ｓ１０７では、ユニバーサルプリンタドライバ３１は印刷条件設定画面５２（図３参照）を表示し、プリンタ３に実行させる機能をユーザに指定させる。
印刷条件設定画面５２では、ユーザはカラー／モノクロ、高画質／低画質などの一般的な印刷機能について、プリンタ３にその印刷機能を実行させるか否かを指定することができる。
【００４８】
印刷条件設定画面５２で図示しない［ＯＫ］ボタンをクリックすると印刷画面５０に戻り、印刷画面５０でユーザが［印刷］ボタン５０ｂをクリックすると、アプリケーション３０からユニバーサルプリンタドライバ３１に印刷命令が出力される。
ユニバーサルプリンタドライバ３１は、アプリケーション３０から印刷命令が出力されると、出力された印刷命令に基づいて印刷データを生成し、生成した印刷データを、ユニバーサルプリンタドライバ３１で使用するポートとして設定されているＴＣＰ／ＩＰポート４０を介してプリンタ３に出力する（第１の制御処理、第１の制御段階の一例）。
【００４９】
（３−２）印刷命令が出力されたときの専用プリンタドライバの処理
図６は、印刷命令が出力されたときの専用プリンタドライバ３２の処理の流れを示すフローチャートである。
Ｓ２０１では、専用プリンタドライバ３２はポートの変更指示があるか否かを判定する。
具体的には、専用プリンタドライバ３２は、Ｓ１０４の処理でユニバーサルプリンタドライバ３１によりレジストリの所定のセクションに自身のドライバ名が書き込まれているか否かを判定し、書き込まれている場合はポートの変更指示があると判定してＳ２０２に進み、書き込まれていない場合はポートの変更指示がないと判定してＳ２０５に進む。
【００５０】
Ｓ２０２では、専用プリンタドライバ３２は現在自身に設定されているＴＣＰ／ＩＰポート４０（「元のポート」という）のポート名をＯＳ２９から取得し、取得したポート名を記憶部２４に記憶させる（第１の取得段階の一例）。これは、印刷終了後にＴＣＰ／ＩＰポート４０を現在のＴＣＰ／ＩＰポート４０（元のポート）に戻すためである。
【００５１】
Ｓ２０３では、専用プリンタドライバ３２はレジストリに書き込まれているＩＰアドレスによって特定されるプリンタ３（すなわちＳ１０２で指定されたプリンタ３）と通信するためのＴＣＰ／ＩＰポート４０を、当該専用プリンタドライバ３２で使用するポートとして設定する。この設定の手順はＳ１０６で説明した手順と同様であるので説明は省略する。
【００５２】
Ｓ２０４では、専用プリンタドライバ３２はＳ２０３で設定したＴＣＰ／ＩＰポート４０（変更後のポート）のポート名を記憶部２４に記憶させる（第２の取得段階の一例）。
【００５３】
Ｓ２０５では、専用プリンタドライバ３２はアプリケーション３０から出力された印刷命令に基づいて印刷データを生成し、生成した印刷データを、当該専用プリンタドライバ３２で使用するＴＣＰ／ＩＰポート４０として設定されているＴＣＰ／ＩＰポート４０を介してプリンタ３に送信する。
【００５４】
（３−３）印刷終了後の専用プリンタドライバの処理
図７は、印刷終了後の専用プリンタドライバ３２の処理の流れを示すフローチャートである。本処理はＳ２０５で生成した印刷データをプリンタ３に送信した後で開始される。
Ｓ３０１では、専用プリンタドライバ３２はＳ２０３で設定したポートをＳ２０２で記憶した元のポートに戻すか否かを判断する（第２の指定段階の一例）。
具体的には例えば、Ｓ２０２で元のポートのポート名を記憶部２４に記憶させた場合に、専用プリンタドライバ３２は元のポートに戻すか否かをユーザに指定させるための図示しない画面を表示し、その画面でユーザが「元に戻す」を指定した場合に、元のポートに戻すと判断する。
専用プリンタドライバ３２は、元のポートに戻すと判断した場合はＳ３０２に進み、元のポートに戻さないと判断した場合は本処理を終了する。
なお、元のポートに戻すか否かをユーザに選択させるのではなく、無条件に元のポートに戻すようにしてもよい。その場合は、Ｓ３０１の判定は不要であり、常にＳ３０２に進むことになる。
【００５５】
Ｓ３０２では、専用プリンタドライバ３２は当該専用プリンタドライバ３２で使用するポートを元に戻す（復元段階の一例）。
具体的には、専用プリンタドライバ３２はＳ２０２で記憶したポート名（元のポートのポート名）を指定してポート切替ツール３５にＴＣＰ／ＩＰポート４０の切り替えを指示する。この指示はポート切替ツール３５からＯＳ２９にポート切替命令として出力され、ポート切替命令が出力されたＯＳ２９は、指定されたポート名のＴＣＰ／ＩＰポート４０を、当該専用プリンタドライバ３２で使用するＴＣＰ／ＩＰポート４０として設定する。
【００５６】
Ｓ３０３では、専用プリンタドライバ３２は元のポートを介してプリンタ３と通信可能であるか否かを判断し、通信可能である場合は本処理を終了し、通信不能である場合はＳ３０４に進む（通信判定段階の一例）。
【００５７】
Ｓ３０４では、専用プリンタドライバ３２はＳ２０４で記憶したポート名によって識別されるＴＣＰ／ＩＰポート４０（変更後のポート）を、当該専用プリンタドライバ３２で使用するポートとして再設定する（再設定段階の一例）。この設定の手順はＳ１０６で説明した手順と同様であるので説明は省略する。
【００５８】
（４）実施形態の効果
ユニバーサルプリンタドライバ３１でユーザがプリンタ３を指定した場合に、指定されたプリンタ３に対応する専用プリンタドライバ３２がインストールされている場合は、指定されたプリンタ３を専用プリンタドライバ３２から制御するようにすると、指定されたプリンタ３が備える機能をほぼ全て制御できるようになる。
ところで、指定されたプリンタ３を専用プリンタドライバ３２から制御するためには、指定されたプリンタ３と通信するためのポートが専用プリンタドライバ３２で使用するポートとして設定されていることが条件である。
しかしながら、専用プリンタドライバ３２には必ずしも指定されたプリンタ３と通信するためのポートが専用プリンタドライバ３２で使用するポートとして設定されているとは限らず、設定されていない場合には、指定されたプリンタ３と通信するためのポートを、専用プリンタドライバ３２で使用するポートとして設定しなければならない。
しかしながら、この設定をユーザに手動で行わせることはユーザにとって負担である。また、ポートの変更に不慣れなユーザにとっては変更が難しい場合もある。
【００５９】
実施形態１に係るユニバーサルプリンタドライバ３１によると、指定されたプリンタ３の機種に対応する専用プリンタドライバ３２がインストールされている場合は、指定されたプリンタ３と通信するためのポートを、専用プリンタドライバ３２で使用するポートとして設定するよう専用プリンタドライバ３２に指示する。このため、指定したプリンタ３を専用プリンタドライバ３２から制御できるようにするためのユーザの負担を軽減でき、ユーザの使い勝手が向上する。
【００６０】
更に、実施形態１に係るプリンタ制御方法によると、専用プリンタドライバ３２によるプリンタ３の制御が終了した後に、専用プリンタドライバ３２で使用するポートを元のポートに戻すことができる。
【００６１】
更に、実施形態１に係るプリンタ制御方法によると、専用プリンタドライバ３２によるプリンタ３の制御が終了した後に専用プリンタドライバ３２で使用するポートを元のポートに戻すか否かをユーザが指定できる。
【００６２】
更に、実施形態１に係るプリンタ制御方法によると、専用プリンタドライバ３２で使用するポートを元のポートに戻した場合に元のポートを介してプリンタ３と通信不能な場合は、ユニバーサルプリンタドライバ３１で指定されたプリンタ３と通信するためのポートを当該専用プリンタドライバ３２で使用するためのポートに再設定するので、専用プリンタドライバ３２からプリンタ３を制御できなくなってしまうことを低減できる。
【００６３】
＜実施形態２＞
次に、本発明の実施形態２を図８によって説明する。
ユニバーサルプリンタドライバはＬＡＮなどの通信ネットワーク５に接続されているプリンタを検索の対象としており、ＵＳＢ接続などのローカル接続されているプリンタを検索の対象にしないように構成されている。そこで、実施形態２では専用プリンタドライバの元のポートの種類がＵＳＢポート（ローカル接続のポート）である場合は元のポートに戻し、それ以外の種類である場合は元に戻さない。
【００６４】
図８は、実施形態２に係る印刷終了後の専用プリンタドライバ３２の処理の流れを示すフローチャートである。
Ｓ４０１では、実施形態２に係る専用プリンタドライバ（以下、「専用プリンタドライバ」という）はＳ２０２で記憶したポート名（元のポートのポート名）によって識別されるポートがＵＳＢポートであるか否かを判定する。
この判定は、例えばポート名に「ＵＳＢ」という文字列が含まれているか否かによって行うことができる。
専用プリンタドライバは、記憶したポート名に「ＵＳＢ」という文字列が含まれている場合は元のポートがＵＳＢポートであると判断してＳ４０２に進み、含まれていない場合はＵＳＢポートではないと判断して本処理を終了する。
【００６５】
Ｓ４０２では、専用プリンタドライバは元のポートを当該専用プリンタドライバで使用するポートとして設定するようＯＳ２９に指示する。
【００６６】
以下、実施形態２に係るユニバーサルプリンタドライバの効果について説明する。
ＵＳＢ接続などのローカル接続されているプリンタと同じ機種のプリンタがＬＡＮなどの通信ネットワーク５にも接続されている状況を考えると、ＵＳＢ接続されているプリンタがユニバーサルプリンタドライバの検索の対象にならない場合は、ローカル接続されているプリンタと通信するためのポート（ＵＳＢポート）が「使用するポート」として設定されている専用プリンタドライバに、通信ネットワーク５に接続されているプリンタ３と通信するためのポートが「使用するポート」として設定されると、その後ローカル接続されているプリンタ３を使用できなくなる。
なぜなら、ローカル接続されているプリンタは検索の対象にならないので、ユニバーサルプリンタドライバは、ローカル接続されているプリンタと通信するためのポート（ＵＳＢポート）を、対応する専用プリンタドライバで使用するポートとして設定するよう当該対応する専用プリンタドライバに指示することができないからである。
【００６７】
一方、ネットワークに同じ機種のプリンタ３が複数接続されている状況を考えると、これらのプリンタ３の間でポートが切り替わったとしても、プリンタ３の制御が終了した後に元のポートに戻さなくても影響は小さい。なぜなら、その後Ｓ１０２で、専用プリンタドライバに設定されていた元のポートに対応するプリンタ３を指定することにより、ユニバーサルプリンタドライバは、そのプリンタ３と通信するためのポートを、対応する専用プリンタドライバで使用するポートとして設定するよう当該対応する専用プリンタドライバに指示することができるからである。
【００６８】
実施形態２に係るユニバーサルプリンタドライバによると、元のポートの種類がＵＳＢポートである場合は、専用プリンタドライバで使用するポートを元のポートに戻すので、プリンタ３の制御が終了した後も、ＵＳＢ接続されているプリンタを使用できる。
【００６９】
＜実施形態３＞
次に、本発明の実施形態３を図９によって説明する。
実施形態１では先にプリンタ３を検索し、その後に専用プリンタドライバがインストールされているか否かを判定しているが、実施形態３では先に専用プリンタドライバ３２がインストールされているか否かを判定し、その後にプリンタ３を検索する。
【００７０】
図９は、実施形態３に係る「アプリケーションから呼び出されたときのユニバーサルプリンタドライバの処理」の流れを示すフローチャートである。ここでは実施形態１と実質的に同一の処理には同一の符号を付して説明を省略する。
Ｓ５０１では、実施形態３に係るユニバーサルプリンタドライバ（以下、単に「ユニバーサルプリンタドライバ」という）は、ＰＣ２に専用プリンタドライバ３２がインストールされているか否か（あるか否か）を判定する（第２の判定処理、第２の判定段階の一例）。
具体的には例えば、ユニバーサルプリンタドライバは、各専用プリンタドライバ３２のドライバ名の情報（専用プリンタドライバ情報）を有しているものとする。ユニバーサルプリンタドライバは、ＰＣ２にインストールされているプリンタドライバのドライバ名の一覧をＯＳ２９から取得し、取得した一覧に含まれているいずれかのドライバ名が専用プリンタドライバ情報に含まれていれば、専用プリンタドライバ３２がインストールされていると判定する。
なお、専用プリンタドライバ情報は通信ネットワーク５を介してアップデートされるようにしてもよい。
ユニバーサルプリンタドライバは、専用プリンタドライバ３２がインストールされている場合はＳ５０２に進み、インストールされていない場合はＳ１０１に進む。
【００７１】
Ｓ５０２では、ユニバーサルプリンタドライバはインストールされている専用プリンタドライバ３２に対応するプリンタ３を優先して検索するか否かをユーザに指定させるための画面を表示し、ユーザが「優先して検索する」を指定した場合はＳ５０３に進み、「優先して検索する」を指定しなかった場合はＳ１０１に進む（第４の指定処理の一例）。
【００７２】
Ｓ５０３では、ユニバーサルプリンタドライバはインストールされている専用プリンタドライバ３２に対応する機種のプリンタ３を検索する（検索処理、検索段階の一例）。
ユニバーサルプリンタドライバは、対応する機種のプリンタ３が見つかった場合はＳ５０４に進み、見つからなかった場合はＳ１０１に進む。
【００７３】
Ｓ５０４では、ユニバーサルプリンタドライバはプリンタ選択画面を表示し、見つかったプリンタ３の中からいずれかのプリンタ３をユーザに指定させる（第２の指定処理、第３の指定段階の一例）。
【００７４】
実施形態３において、Ｓ１０４は第３のポート設定処理、及び第３のポート設定段階の一例である。Ｓ１０５は第２の報知処理、及び第２の報知段階の一例である。Ｓ１０２は第３の指定処理、及び第３の指定処理の一例である。Ｓ１０６は第４のポート設定処理、及び第４のポート設定段階の一例である。Ｓ１０７は、第２の制御処理、第２の制御段階の一例である。
【００７５】
以上説明した実施形態３に係るユニバーサルプリンタドライバによると、指定したプリンタ３を専用プリンタドライバ３２から制御できるようにするためのユーザの負担を軽減でき、ユーザの使い勝手が向上する。
【００７６】
更に、実施形態３に係るユニバーサルプリンタドライバによると、ＰＣ２にインストールされている専用プリンタドライバ３２に対応するプリンタ３を検索するか否かをユーザに指定させるので、専用プリンタドライバ３２に対応するプリンタ３を検索するか否かをユーザが指定できる。
【００７７】
＜実施形態４＞
次に、本発明の実施形態４を図１０によって説明する。
実施形態４は実施形態３の変形例である。実施形態４では、プリンタ３に実行させる印刷機能をユーザに指定させ、指定された印刷機能がユニバーサルプリンタドライバから制御できないプリンタ固有の印刷機能である場合に、専用プリンタドライバ３２がインストールされているか否かを判定する。
【００７８】
図１０は、実施形態４に係る「アプリケーションから呼び出されたときのユニバーサルプリンタドライバの処理」の流れを示すフローチャートである。ここでは実施形態１と実質的に同一の処理には同一の符号を付して説明を省略する。
Ｓ６０１では、実施形態４に係るユニバーサルプリンタドライバ（以下、単に「ユニバーサルプリンタドライバ」という）は、プリンタ固有の印刷機能で検索を行うか否かを選択させるための図示しない画面を表示し、プリンタ固有の印刷機能で検索を行うか否かをユーザに選択させる。
ユニバーサルプリンタドライバは、ユーザがプリンタ固有の印刷機能での検索を選択した場合はＳ６０２に進み、プリンタ固有の印刷機能での検索を選択しなかった場合はＳ１０１に進む。
【００７９】
Ｓ６０２では、ユニバーサルプリンタドライバは実施形態４に係る印刷条件設定画面を表示し、プリンタ３に実行させる印刷機能をユーザに指定させる（機能指定処理の一例）。
実施形態４に係る印刷条件設定画面では、ユーザはカラー／モノクロ、高画質／低画質などの一般的な印刷機能に加えて、両面印刷、セキュアプリントなどのプリンタ３に固有の印刷機能を実行させるか否かを指定することができる。
【００８０】
Ｓ６０３では、ユニバーサルプリンタドライバは両面印刷やセキュアプリントなどのプリンタ固有の印刷機能を実行させるよう指定されているか否かを判定し、指定されている場合はＳ６０４に進み、指定されていない場合はＳ１０１に進む。
【００８１】
Ｓ６０４では、ユニバーサルプリンタドライバは、指定された印刷機能を制御できる専用プリンタドライバ３２がインストールされているか否かを判定する。
具体的には例えば、ユニバーサルプリンタドライバは、各専用プリンタドライバ３２のドライバ名と各専用プリンタドライバ３２が制御可能な印刷機能とを対応付けたプリンタドライバ機能情報を有しているものとする。ユニバーサルプリンタドライバは、ＰＣ２にインストールされているプリンタドライバのドライバ名の一覧をＯＳ２９から取得し、取得した一覧に含まれているいずれかのドライバ名に対応付けられている印刷機能にＳ６０２で指定されたプリンタ固有の印刷機能が含まれていれば、プリンタ固有の印刷機能を制御できる専用プリンタドライバ３２がインストールされていると判定する。
なお、プリンタドライバ機能情報は通信ネットワーク５を介してアップデートされるようにしてもよい。
【００８２】
ユニバーサルプリンタドライバは、指定されたプリンタ固有の印刷機能を制御できる専用プリンタドライバ３２がインストールされている場合はＳ６０５に進み、インストールされていない場合はＳ１０１に進む。
【００８３】
Ｓ６０５では、ユニバーサルプリンタドライバは指定されたプリンタ固有の印刷機能を制御できる専用プリンタドライバ３２に対応する機種のプリンタ３を検索し、見つかった場合はＳ６０６に進み、見つからなかった場合はＳ１０１に進む。
Ｓ６０６では、ユニバーサルプリンタドライバは図示しないプリンタ選択画面を表示し、見つかったプリンタ３の中からいずれかのプリンタ３をユーザに指定させる。
【００８４】
以上説明した実施形態４に係るユニバーサルプリンタドライバによると、プリンタ３の固有の機能を使う場合に専用プリンタドライバのポートを設定するように指示するので、ユーザは目的の機能を実行可能なプリンタ３の指定が容易になる。
【００８５】
＜他の実施形態＞
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００８６】
（１）上記実施形態１では専用プリンタドライバ３２によるプリンタ３の制御が終了した後にポートを元に戻しているが、ポートを元に戻さないようにしてもよい。この場合は、ユニバーサルプリンタドライバを用いた次回の印刷の際に元のポートに接続されていたプリンタ３を選択することで、結果として元のポートに戻すことができる。
【００８７】
（２）上記実施形態ではデバイスとしてプリンタ３を例に説明したが、デバイスはスキャナであってもよいし、ファクシミリ装置であってもよい。また、プリント機能、スキャン機能、コピー機能、ファクシミリ機能などを備えた所謂複合機であってもよい。
【００８８】
（３）上記実施形態では、専用デバイスドライバを使用できることを、メッセージ画面５３を表示することによってユーザに報知する場合を例に説明したが、指定されたプリンタ３の機種に対応する専用プリンタドライバ３２を呼び出して印刷条件（制御条件の一例）を設定するための画面（例えば印刷条件設定画面と同様の画面）を表示させてもよい。専用プリンタドライバ３２によって表示される画面が表示されることで、ユーザは専用プリンタドライバ３２を使用できることを理解できるからである。
なお、メッセージ画面５３を表示し、更に、印刷条件を設定するための画面を表示させるようにしてもよい。
【００８９】
（４）上記実施形態ではユニバーサルプリンタドライバが専用プリンタドライバ３２にポートの設定を指示し、指示された専用プリンタドライバ３２が自身でポートを設定する場合を例に説明したが、専用プリンタドライバ３２で使用するポートをユニバーサルプリンタドライバが設定する構成であってもよい。
具体的には例えば、指定されたプリンタ３と通信するためのポートを専用プリンタドライバ３２で使用するポートとして設定するよう、ユニバーサルプリンタドライバがＯＳ２９に指示してもよい。
また、その場合に、専用プリンタドライバ３２によるプリンタ３の制御が終了した後に、専用プリンタドライバ３２のポートを元のポートに戻すよう、ユニバーサルプリンタドライバがＯＳ２９に指示してもよい。
【００９０】
（５）上記実施形態ではユニバーサルプリンタドライバ３１又は専用プリンタドライバ３２は、使用するポートを設定する場合にポートを生成する生成命令を出力してから、使用するポートを生成したポートに切替える切り替え命令を出力していた。しかしながら、元のポートも切替えるポートも同じ種類（例えばＴＣＰ／ＩＰポート）であれば、ポートを切替えずに、現在設定しているポートのポート情報（ＩＰアドレス等）を書き換えるようにしてもよい。
【符号の説明】
【００９１】
１・・・印刷システム
２・・・パーソナルコンピュータ
３（３Ａ〜３Ｄ）・・・プリンタ
５・・・通信ネットワーク
３０・・・アプリケーションプログラム
３１・・・ユニバーサルプリンタドライバ
３２・・・専用プリンタドライバ
３５・・・ポート切替ツール
４０・・・ＴＣＰ／ＩＰポート
５０・・・印刷画面
５１・・・プリンタ選択画面
５２・・・印刷条件設定画面
５３・・・メッセージ画面
【図１】
0005454441.tif 000002
【図２】
0005454441.tif 000003
【図３】
0005454441.tif 000004
【図４】
0005454441.tif 000005
【図５】
0005454441.tif 000006
【図６】
0005454441.tif 000007
【図７】
0005454441.tif 000008
【図８】
0005454441.tif 000009
【図９】
0005454441.tif 000010
【図１０】
0005454441.tif 000011