(57)【要約】【課題】  カスタマイズ情報のデータベースへの追加に失敗すると、誤ったカスタマイズ情報が書き込まれた論理プリンターや、カスタマイズ情報の存在しない論理プリンターがオペレーティングシステムに残されてしまう可能性がある。これに対して本発明は、意図しない論理プリンターがオペレーティングシステムに残されてしまう可能性を低減することを目的とする。【解決手段】  本発明の情報処理装置は論理プリンターの名称を指定してプリンタードライバーをインストールして、プリンタードライバーの設定を変更するための情報であるカスタマイズ情報をデータベースに追加する。そして、論理プリンターに対してデータベースへのカスタマイズ情報の追加が失敗したと判断されて、かつ指定された名称の論理プリンターがオペレーティングシステムに存在すると判断された場合に、指定された名称の論理プリンターをオペレーティングシステムから削除する。【選択図】  図９
2019008669.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムを実行する情報処理装置であって、
論理プリンターの名称を指定してプリンタードライバーをインストールするインストール手段と、
前記論理プリンターに対して適用され、前記プリンタードライバーの設定を変更するための情報であるカスタマイズ情報をデータベースに追加する追加手段と、
前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が成功したか否かを判断する第１の判断手段と、
指定された前記名称の論理プリンターが前記オペレーティングシステムに存在するか判断する第２の判断手段と、
前記第１の判断手段により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第２の判断手段により、指定された前記名称の論理プリンターが前記オペレーティングシステムに存在すると判断された場合に、指定された前記名称の論理プリンターを前記オペレーティングシステムから削除する削除手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記オペレーティングシステムに存在する論理プリンターの一覧を取得する取得手段と、
前記プリンタードライバーのインストール前後で取得された前記論理プリンターの一覧から、削除すべき論理プリンターが前記オペレーティングシステムに存在するか判断する第３の判断手段と、を有し、
前記削除手段は、前記第１の判断手段により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第３の判断手段により、削除すべき前記論理プリンターが前記オペレーティングシステムに存在すると判断された場合に、削除すべき前記論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、論理プリンターに書き込まれている特定の情報を取得し、
前記第３の判断手段は、前記プリンタードライバーのインストール前後で取得された前記論理プリンターの一覧から、前記特定の情報が取得できる前記論理プリンターが前記オペレーティングシステムに存在するか判断し、
前記削除手段は、前記第１の判断手段により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第３の判断手段により、前記特定の情報が取得できる前記論理プリンターが前記オペレーティングシステムに存在すると判断された場合に、前記特定の情報が取得できる前記論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記インストール手段は、ポート情報を指定して前記プリンタードライバーをインストールし、
前記削除手段は、前記第１の判断手段により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第２の判断手段により、指定された前記名称の論理プリンターが前記オペレーティングシステムに存在しないと判断された場合に、指定された前記ポート情報と一致する論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
インストールされる前記プリンタードライバーに関連する特定の情報を取得する取得手段と、を有し、
前記削除手段は、前記第１の判断手段により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第２の判断手段により、指定された前記名称の論理プリンターが前記オペレーティングシステムに存在しないと判断された場合に、前記プリンタードライバーのインストール前後で取得された前記特定の情報に基づいて、削除すべき論理プリンターを特定して、特定された前記論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記取得手段は、論理プリンターに対応する物理プリンターから前記特定の情報として構成情報を取得して、
前記削除手段は、前記プリンタードライバーのインストール前後で取得された前記構成情報に基づいて、削除すべき前記論理プリンターを特定して、特定された前記論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記取得手段は、前記特定の情報として論理プリンターの識別情報を取得して、
前記削除手段は、前記プリンタードライバーのインストール前後で取得された前記識別情報に基づいて、削除すべき前記論理プリンターを特定して、特定された前記論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項５に記載の情報処理装置。
【請求項８】
オペレーティングシステムを実行するコンピュータであって、
前記コンピュータに、
論理プリンターの名称を指定してプリンタードライバーをインストールするインストール工程と、
前記論理プリンターに対して適用され、前記プリンタードライバーの設定を変更するための情報であるカスタマイズ情報をデータベースに追加する追加工程と、
前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が成功したか否かを判断する第１の判断工程と、
指定された前記名称の論理プリンターが前記オペレーティングシステムに存在するか判断する第２の判断工程と、
前記第１の判断工程により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第２の判断工程により、指定された前記名称の論理プリンターが前記オペレーティングシステムに存在すると判断された場合に、指定された前記名称の論理プリンターを前記オペレーティングシステムから削除する削除工程と、を実行させることを特徴とするプログラム。
【請求項９】
前記コンピュータに、
前記オペレーティングシステムに存在する論理プリンターの一覧を取得する取得工程と、
前記プリンタードライバーのインストール前後で取得された前記論理プリンターの一覧から、削除すべき論理プリンターが前記オペレーティングシステムに存在するか判断する第３の判断工程と、を実行させ、
前記削除工程は、前記第１の判断工程により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第３の判断工程により、削除すべき前記論理プリンターが前記オペレーティングシステムに存在すると判断された場合に、削除すべき前記論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記取得工程は、論理プリンターに書き込まれている特定の情報を取得し、
前記第３の判断工程は、前記プリンタードライバーのインストール前後で取得された前記論理プリンターの一覧から、前記特定の情報が取得できる前記論理プリンターが前記オペレーティングシステムに存在するか判断し、
前記削除工程は、前記第１の判断工程により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第３の判断工程により、前記特定の情報が取得できる前記論理プリンターが前記オペレーティングシステムに存在すると判断された場合に、前記特定の情報が取得できる前記論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記インストール工程は、ポート情報を指定して前記プリンタードライバーをインストールし、
前記削除工程は、前記第１の判断工程により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第２の判断工程により、指定された前記名称の論理プリンターが前記オペレーティングシステムに存在しないと判断された場合に、指定された前記ポート情報と一致する論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項８に記載のプログラム。
【請求項１２】
前記コンピュータに、
インストールされる前記プリンタードライバーに関連する特定の情報を取得する取得工程と、を実行させ、
前記削除工程は、前記第１の判断工程により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第２の判断工程により、指定された前記名称の論理プリンターが前記オペレーティングシステムに存在しないと判断された場合に、前記プリンタードライバーのインストール前後で取得された前記特定の情報に基づいて、削除すべき論理プリンターを特定して、特定された前記論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項８に記載のプログラム。
【請求項１３】
前記取得工程は、論理プリンターに対応する物理プリンターから前記特定の情報として構成情報を取得して、
前記削除工程は、前記プリンタードライバーのインストール前後で取得された前記構成情報に基づいて、削除すべき前記論理プリンターを特定して、特定された前記論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記取得工程は、前記特定の情報として論理プリンターの識別情報を取得して、
前記削除工程は、前記プリンタードライバーのインストール前後で取得された前記識別情報に基づいて、削除すべき前記論理プリンターを特定して、特定された前記論理プリンターを前記オペレーティングシステムから削除することを特徴とする請求項１２に記載のプログラム。
【請求項１５】
オペレーティングシステムを実行する情報処理装置の制御方法であって、
論理プリンターの名称を指定してプリンタードライバーをインストールするインストール工程と、
前記論理プリンターに対して適用され、前記プリンタードライバーの設定を変更するための情報であるカスタマイズ情報をデータベースに追加する追加工程と、
前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が成功したか否かを判断する第１の判断工程と、
指定された前記名称の論理プリンターが前記オペレーティングシステムに存在するか判断する第２の判断工程と、
前記第１の判断工程により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第２の判断工程により、指定された前記名称の論理プリンターが前記オペレーティングシステムに存在すると判断された場合に、指定された前記名称の論理プリンターを前記オペレーティングシステムから削除する削除工程と、を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプリンタードライバーをインストールする技術に関する。
【背景技術】
【０００２】
従来、プリンタードライバーをインストールする技術がある。特許文献１はインストーラを用いてプリンタードライバーをインストールする技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２５２０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プリンタードライバーの設定は工場出荷値やプリンターから取得された情報によって行われる。こうした通常の操作によって設定される情報の他に、予め指定された工場出荷値とは異なるデフォルトの印刷設定や、特定の印刷設定の変更を禁止する等の独自のカスタマイズを行いたい場合がある。論理プリンターに対して適用され、プリンタードライバーの設定を変更するための情報であるカスタマイズ情報をデータベースに追加することで、本明細書では前述のカスタマイズを実現する。
【０００５】
しかしながら、カスタマイズ情報のデータベースへの追加は、プリンタードライバーがインストールされ、論理プリンターが作成された後に行われるため、万が一カスタマイズ情報の追加に失敗すると、意図しない論理プリンターが構成されてしまう問題がある。具体的には誤ったカスタマイズ情報が書き込まれた論理プリンターや、カスタマイズ情報の存在しない論理プリンターがオペレーティングシステムに残されてしまう可能性がある。
【０００６】
これに対して本発明は意図しない論理プリンターがオペレーティングシステムに残されてしまう可能性を低減することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明に係る情報処理装置は、
オペレーティングシステムを実行する情報処理装置であって、
論理プリンターの名称を指定してプリンタードライバーをインストールするインストール手段と、
前記論理プリンターに対して適用され、前記プリンタードライバーの設定を変更するための情報であるカスタマイズ情報をデータベースに追加する追加手段と、
前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が成功したか否かを判断する第１の判断手段と、
指定された前記名称の論理プリンターが前記オペレーティングシステムに存在するか判断する第２の判断手段と、
前記第１の判断手段により前記論理プリンターに対して前記データベースへの前記カスタマイズ情報の追加が失敗したと判断されて、かつ前記第２の判断手段により、指定された前記名称の論理プリンターが前記オペレーティングシステムに存在すると判断された場合に、指定された前記名称の論理プリンターを前記オペレーティングシステムから削除する削除手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によって、データベースへのカスタマイズ情報の追加に失敗した場合でも、論理プリンターをオペレーティングシステムから削除することで、意図しない論理プリンターがオペレーティングシステムに残されてしまう可能性を低減することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】システム構成を示す図
【図２】クライアントコンピュータのハードウェア構成を示す図
【図３】ドライバーセットおよびカスタマイズツールの構成を示す図
【図４】カスタム関連データの一例
【図５】印刷設定アプリケーションとドライバーとＯＳの構成を示す図
【図６】インストールしたキューの特定処理のフロー
【図７】カスタマイズドライバーのインストール処理のフロー
【図８】カスタマイズドライバーのインストール処理のフロー
【図９】カスタマイズ設定ファイル書き込み処理のフロー
【図１０】インストーラの設定画面の模式図
【図１１】インストーラの設定画面の模式図
【図１２】インストールしたキューの特定処理のフロー
【図１３】インストールしたキューの特定処理のフロー
【図１４】インストールしたキューを絞り込む処理のフロー
【図１５】カスタマイズドライバーのインストール処理のフロー
【図１６】インストールしたキューの特定処理のフロー
【図１７】カスタマイズドライバーのインストール処理のフロー
【図１８】インストールしたキューの特定処理のフロー
【図１９】カスタマイズ設定失敗メッセージ画面の模式図
【発明を実施するための形態】
【００１０】
プリンタードライバーは、クライアントコンピュータにインストールされ、対応するプリンターへの印刷設定や印刷要求に応じたレンダリング処理などを行うモジュールである。ところで、プリンタードライバーに対し、工場出荷値とは異なるデフォルトの印刷設定を変更したドライバーセットを作成したい市場要望がある。これは例えば、ＩＴ管理者がデフォルトの印刷設定を事前に変更したカスタマイズドライバーセットを作成し、個々のユーザーが、カスタマイズドライバーセットでインストールすることで実現できる。このような方法を採用することによって、インストール後にプリンタードライバーの印刷設定を個々のユーザーが変更する工数を削減できる効果がある。このような要望に対応するために、各ベンダーは、カスタマイズドライバーセットを容易に作成する方法が求められている。
【００１１】
また、ユーザーはプリンターに対して印刷する際には、アプリケーションから印刷指示を行い、画面上に表示されるプリンターの一覧からプリンターを選択し、印刷設定などを指定する。ここで、画面上に表示されるプリンター一覧にはプリントキュー（論理プリンター）と呼ばれる出力先のプリンターを表すオブジェクトが表示される。プリントキューにはそれぞれプリンタードライバーが対応して存在する。
【００１２】
こうした中で、印刷設定を事前に変更したカスタマイズドライバーセットによるインストール中に、プリンタードライバーの設定を変更するための情報であるカスタマイズ情報が何らかの要因で書き込めなかった、又は中途半端に書き込まれて失敗する場合がある。例えば、設定されているデフォルト設定にカスタマイズ設定を行うときに、設定されているデフォルト設定に存在しない項目の設定を書き込もうとするとカスタマイズ情報の書き込みに失敗する。このような場合、中途半端なカスタマイズ情報を持ったプリントキューが作成されることになる。そのままプリンタードライバーが使用されると、不完全な情報をもとにプリンタードライバーが動作してしまい、予期していなかった動作を行う可能性がある。具体的には余計な制限がかかったり、逆にかけてはいけない制限がかかったりする可能性が考えられる。そのため、カスタマイズ情報の書き込みに失敗した場合には、作成したプリントキューを削除して誤動作を防ぐ必要がある。また、この際、プリントキューを削除するタイミングでキューの名称を変更されると、キューの削除に失敗してしまうことがあった。
【００１３】
以降、本明細書ではこれらの課題を解決するための構成を説明していく。
【実施例１】
【００１４】
図１に、本発明に係るシステム構成の概略を表す模式図を示す。このシステムは、情報処理装置の一例であるクライアントコンピュータ１０１とページ記述言語（ＰＤＬ）形式の印刷データを受信し印刷を行うことが可能なプリンター１０２を備える。これらは、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）を含むネットワーク１０３を通じて相互に通信可能である。
【００１５】
なお、プリンター１０２は、印刷機能のみを備えるシングルファンクションプリンタでも、印刷機能、スキャン機能、複写機能を備えるマルチファンクションプリンタでも構わない。また、クライアントコンピュータ１０１は、ネットワーク１０３に対し一台に限らず、複数台接続されていても構わない。
【００１６】
図２は、図１のクライアントコンピュータ１０１のハードウェア構成を示すブロック図である。クライアントコンピュータ１０１において、中央演算処理装置（ＣＰＵ２０１）は、ランダムアクセスメモリ（ＲＡＭ２０２）に記憶されているプログラムに従って、システムバスに接続される各デバイスを制御する。なお、クライアントコンピュータ１０１は、少なくとも１つのＣＰＵ２０１を備える。加えて、ＣＰＵ２０１が外部メモリ２０９に記憶されているプログラムに基づき処理を実行することによって、クライアントコンピュータ１０１のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。このＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。２０３は、リードオンリーメモリ（ＲＯＭ）である。ＲＯＭ２０３は、ブートプログラムや基本入出力システム（ＢＩＯＳ）等の各種プログラムが書き込まれてある。操作入力装置インターフェース（Ｉ／Ｆ）２０４は、キーボードやポインティングデバイス（マウス）タッチＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）などの操作入力装置２０５を制御するインターフェースである。ディスプレイＩ／Ｆ２０６はディスプレイ２０７への画面表示を制御する。外部メモリＩ／Ｆ２０８は、例えばハードディスク（ＨＤ）、ソリッドステートディスク（ＳＳＤ）等の外部メモリ２０９とのアクセスを制御する。外部メモリ２０９は、オペレーティングシステムプログラム（ＯＳ）２１０をはじめ、タッチパネル、デスクトップそれぞれに対応したアプリケーション２１２、プリンタードライバーを含むドライバー３００６を含む。そして、各種ファイル等を記憶し、クライアントコンピュータ１０１が読み取り可能な記憶媒体として機能する。ネットワークＩ／Ｆ２１３は、ネットワーク１０３を介してプリンター１０２に接続され通信制御処理を行なう。
【００１７】
図３を用いて、カスタマイズツール全体の構成を説明する。まず、図３（Ａ）を用いてドライバーセットについて説明する。３０００は、ドライバーセットである。ドライバーセット３０００は、ドライバーをＯＳ２１０内に配置するために必要なドライバー３００６のファイル及びモジュールの集合である。３００６は、ドライバーであり、印刷時に必要なレンダリングなどのモジュールや機種依存ファイル群などを持つ。３００１は、機種依存ファイルである。機種依存ファイル３００１には、機種ごとの禁則のルールや機能の一覧、工場出荷値の印刷設定やロケールごとのデフォルトの印刷設定などのファイル群が置いてある。３００２は、ドライバーＵＩモジュールである。ドライバーＵＩモジュール３００２は、ドライバー３００６がＯＳ２１０内に配置された後に、印刷時に呼び出され、印刷設定の変更を容易にすることが可能なモジュールである。また、ＯＳ２１０内に配置する前であっても他のアプリケーション２１２からロードして呼び出すことも可能である。３００３は、グラフィックスモジュールであり、ドライバー３００６が印刷をする際に印刷対象のファイルをＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）に変換を行う。ＩＮＦファイル３００７は、ドライバーセット３０００でサポートしている機種の一覧や、サポートしている機種のプリンタードライバーの必要なモジュールの一覧などの設定情報が記述されたファイルである。３００４は、インストーラであり、インストーラ３００４は、外部からの操作入力装置２０５を通じて起動された際にドライバー３００６をＯＳ２１０内に配置を行う。ＰｏｗｅｒＳｈｅｌｌアプリ３００５は、操作入力装置２０５から起動された場合や他のアプリケーション２１２から起動された際に、ＰｏｗｅｒＳｈｅｌｌのＡＰＩの呼び出しを行うことができるアプリケーションである。ＰｏｗｅｒＳｈｅｌｌとは、Ｗｉｎｄｏｗｓ（商標登録）に内包されているコマンドラインベースの拡張可能なスクリプト言語であり、コマンドラインベースで様々なＯＳ２１０内のＡＰＩを呼び出すことができる。
【００１８】
図３（Ｂ）を用いて、カスタマイズドライバーセットの説明を行う。カスタマイズドライバーセットは、図３（Ａ）のドライバーセット３０００に対し、カスタマイズ設定ファイル（カスタマイズ情報）を追加した構成になっている。よって、図３（Ａ）で説明済みの番号は、説明を省略する。
【００１９】
３００８は、カスタマイズ設定ファイルである。カスタマイズ設定ファイル３００８は、インストール時にドライバー３００６がアクセスできる箇所に書き込まれることで、ドライバー３００６のインストール直後に、ドライバー３００６をカスタマイズされた設定に変更するために利用される。
【００２０】
カスタマイズ設定ファイル３００８は、カスタムモデルデータ３００８１、カスタムアイテムデータ３００８２、カスタム機種データ３００８３を持つ。カスタムモデルデータ３００８１は、カスタマイズドライバーセットでインストール対象のプリンターモデルの一覧のデータである。カスタマイズドライバーセットのユーザーは、カスタマイズドライバーセットの作成者が任意に選定したプリンターモデルのみ、インストールすることが可能になる。
【００２１】
尚、インストール対象として選定したプリンターモデルの中には、カスタマイズされずに標準設定のままのものも存在する。
【００２２】
カスタムアイテムデータ３００８２は、カスタマイズドライバーセットのバージョン番号やカスタマイズドライバーセットを作成したカスタマイズツール３１００のバージョン番号などのデータである。カスタム機種データ３００８３は、プリンターモデルごとのカスタマイズに必要な情報が格納されたフォルダーであり、カスタマイズを施したプリンターモデルごとに作成される。
【００２３】
従って、カスタマイズドライバーセットのインストール対象のプリンターモデルであっても、カスタマイズを施していないプリンターモデルに対しては、作成されない。
【００２４】
カスタム機種データ３００８３は、カスタム印刷設定データ３００８４、カスタムＱＰＢデータ３００８５などのドライバー３００６をカスタマイズするためのデータを持つ。カスタム印刷設定データ３００８４は、印刷設定をカスタマイズするための情報である。カスタムＱＰＢデータ３００８５は、デバイス設定や管理者設定などをカスタマイズするための情報である。
【００２５】
個々のカスタマイズ設定ファイル３００８内のデータの詳細な説明については、後述する。
【００２６】
次に、図３（Ｃ）を用いて、カスタマイズツール３１００の説明を行う。カスタマイズツール３１００は、ドライバーセット３０００を基にして、カスタマイズ設定ファイル３００８を作成する。
【００２７】
３１０１は、カスタマイズツール３１００の実行モジュールであり、カスタマイズツール３１００のＵＩの表示などを行う。
【００２８】
疑似ＡＰＩモジュール３１０２は、カスタマイズ設定ファイル３００８の作成用の疑似ＡＰＩである。通常、ドライバーＵＩモジュール３００２はＯＳ２１０から呼び出されて動作するものである。そして、ドライバーＵＩモジュール３００２は、ＯＳＡＰＩ５００４を使用して諸機能を実現する。実行モジュール３１０１は、ドライバーＵＩモジュール３００２がＯＳ２１０にインストールされる前に、ドライバーＵＩモジュール３００２を直接呼び出して使用する。そのため、ドライバーＵＩモジュール３００２はＯＳＡＰＩ５００４を使うことができない。そこで、ＯＳＡＰＩ５００４の代替ＡＰＩとして疑似ＡＰＩモジュール３１０２を利用する。
【００２９】
次に図４を用いて、カスタマイズ設定ファイル３００８について説明する。
【００３０】
図４（Ａ）は、カスタムモデルデータ３００８１の一例であり、マークアップ記述言語で記述されている。カスタムモデルデータ３００８１は、Ｐｒｏｐｅｒｔｉｅｓ要素を持ち、Ｐｒｏｐｅｒｔｉｅｓ要素の中にＰｒｉｎｔｅｒＭｏｄｅｌ要素を１つから複数持つ。４００は、ＰｒｉｎｔｅｒＭｏｄｅｌ要素である。ＰｒｉｎｔｅｒＭｏｄｅｌ要素４００は子の要素として、Ｃｕｓｔｏｍｉｚｅｄ要素とＰｒｅｆｉｘＳｔｒｉｎｇ要素を持つ。４０１は、Ｃｕｓｔｏｍｉｚｅｄ要素であり、親の要素のＰｒｉｎｔｅｒＭｏｄｅｌをカスタマイズドライバーセットでインストール可能かどうかを示している。Ｃｕｓｏｍｉｚｅｄ要素４０１がＯＮならばインストールが可能であることを表す。ＯＦＦの場合は、インストール不可であることを表す。４０２は、プリンターモデルを一意に定める情報が入力されたプリンターモデル識別子情報である。プリンターモデル識別子情報４０２は、カスタム機種データ３００８３を作成する際の名称に使われる。
【００３１】
図４（Ｂ）は、カスタムアイテムデータ３００８２の一例である。カスタムアイテムデータ３００８２は、複数のＦｅａｔｕｒｅ要素を持つマークアップ記述言語で記述されており、各Ｆｅａｔｕｒｅ要素は、属性にＮａｍｅを持ち各Ｆｅａｔｕｒｅの識別子となる。また、Ｆｅａｔｕｒｅ要素は、子要素としてＶａｌｕｅ要素を持ち、各ＦｅａｔｕｒｅはＶａｌｕｅ要素内に情報が記述される。
【００３２】
４１０は、カスタマイズコードが記述されている一例である。カスタマイズコード４１０は、カスタマイズしたドライバーに対しての説明や識別子を表す情報である。４１１は、カスタマイズドライバーセットのバージョン情報を表す一例である。４１２は、カスタマイズツール３１００の名称である。４１３は、カスタマイズツール３１００のバージョン情報である。
【００３３】
図４（Ｃ）は、カスタム機種データ３００８３に格納されている情報の一つのカスタム印刷設定データ３００８４の一例である。カスタム印刷設定データ３００８４はマークアップ記述言語形式で作成されており、ドライバーセット３０００が持つ工場出荷値の印刷設定と比較した際の差分データを保持する。４２０は、工場出荷値の印刷設定がカラーであるドライバーに対して、デフォルトの印刷設定をモノクロに変更する場合の一例である。以後、カスタマイズされたデフォルトの印刷設定をカスタムデフォルトとする。カスタム印刷設定データ３００８４は、ＦｅａｔｕｒｅとＯｐｔｉｏｎの組み合わせで作成されており、Ｆｅａｔｕｒｅは、マークアップ記述言語におけるＯｐｔｉｏｎの親となる。Ｆｅａｔｕｒｅは機能、Ｏｐｔｉｏｎは機能に対して選択されている設定を表し、本例ではｐｓｋ：ＰａｇｅＯｕｔｐｕｔＣｏｌｏｒに対し、ｐｓｋ：Ｍｏｎｏｃｈｒｏｍという設定がされている。
【００３４】
図４（Ｄ）は、カスタム機種データ３００８３に格納されている情報の一つのカスタムＱＰＢデータ３００８５の一例である。カスタムＱＰＢデータ３００８５は、Ｐｒｏｐｅｒｔｙという要素を持ち、各Ｐｒｏｐｅｒｔｙ要素は、機種依存ファイル３００１に記述されているキュー情報の項目のデータが全て作成される。４３０は、キュー情報の項目の一例である。キュー情報４３０はＮａｍｅ属性を持ち、Ｐｒｏｐｅｔｙ要素の識別子として使われる。キュー情報は、プリントキュー（以降、単にキューと呼ぶことがある）のデバイス設定と管理者設定の双方の設定データであり、一つのマークアップ記述言語で出力される。各項目に対し、入力する情報が存在しない場合には、空欄で出力する。
【００３５】
４３１は、デバイス設定の設定値の一例であり、カセットが設定されていることを示している。
【００３６】
図５は、ＯＳ２１０、ドライバー３００６、印刷設定アプリケーション５０００の構成図である。最初に図５を用いてアプリケーション２１２の一つである印刷設定アプリケーション５０００の動作について説明する。尚、既に説明済みの番号の図については説明を省略する。
【００３７】
印刷設定アプリケーション５０００がユーザーに起動されると、印刷設定アプリケーション５０００は、ドライバー３００６のドライバーＵＩモジュール３００２をロードし、印刷設定ＵＩを表示する。印刷設定ＵＩを表示する際に、機種依存ファイル３００１や印刷設定のユーザーのデフォルト設定が記憶されるデフォルト設定記憶部５００１を参照する。そして、ＯＳ２１０によって生成されたＰｒｉｎｔＴｉｃｋｅｔやＰｒｉｎｔＣａｐａｂｉｌｉｔｉｅｓなどの印刷設定情報を取得する。また、ドライバー情報記憶部５００８から工場出荷値の印刷設定などのドライバー情報を取得する。更に、レジストリやＵＰＢ（ＵｓｅｒＰｒｏｐｅｒｔｙＢａｇ）などを含むユーザー情報記憶部５００６からユーザーが作成したお気に入りやスタンプなどのユーザー情報を取得する。キュー情報記憶部５００２はプリントキュー（論理プリンター）ごとにレジストリデータベースの領域として存在する。キュー情報記憶部５００２の一部はＱＰＢ（ＱｕｅｕｅＰｒｏｐｅｒｔｙＢａｇ）とも呼ばれる。印刷設定アプリケーション５０００はカスタマイズ設定ファイル３００８やデバイス設定情報と管理者設定情報などの各情報をＱＰＢから取得し、印刷設定ＵＩを表示する。印刷設定情報、ドライバー情報、ユーザー情報、カスタマイズ設定ファイル３００８、デバイス情報と管理者設定情報は、ＯＳＡＰＩ５００４を通じて取得される。
【００３８】
続けて図５の構成のうち、まだ説明していない構成の説明を行う。
【００３９】
一時ファイル展開部５００３はＯＳ２１０に含まれるモジュールであり、ドライバーセット３０００内がｃａｂファイルなどで圧縮されていた時に、圧縮ファイルを一時的に展開する場合やアプリケーション２１２の起動時に利用するファイルを一時的に作成する場合などに使われる。５００４は、ＯＳＡＰＩであり、印刷設定の取得などのＯＳから提供されるＡＰＩ群である。
【００４０】
５００５は、ＯＳ２１０が管理するドライバー３００６を配置するフォルダーであり、ドライバー３００６はインストールされるとドライバストア５００５に配置される。
【００４１】
次に図７（Ａ）、図１０、図１１、を用いて、カスタマイズドライバーセットのインストールについて説明する。尚、特に断らない限り主語は、インストーラ３００４である。インストーラ３００４は、図１０（Ａ）に示す言語設定画面１００００を表示する（Ｓ７００１）。言語設定画面表示後に、操作入力装置２０５によるユーザーからの操作を受け付ける。受け付けた後、１０００１の言語設定を変更すると、次に任意の画面を表示する際に表示言語を選択された言語に切り替える。操作入力装置２０５によるユーザーからの操作で、次へボタン１０００２への操作を受け付けると、図１０（Ｂ）に示す使用許諾書画面１０１００を表示する（Ｓ７００２）。使用許諾書画面１０１００は、１０１０１に使用許諾書を表示する。
【００４２】
使用許諾書画面１０１００で、次へボタン１０１０２への操作を受け付けると、ドライバーセット内のファイルを読み込む（Ｓ７００３）。読み込んだ後、図１０（Ｃ）に示すインストール方法選択画面１０２００を表示する（Ｓ７００４）。インストール方法選択画面１０２００では、複数のインストール方法を選択することができる。標準セットアップインストール１０２０１は、ネットワークに繋がっているデバイスを探索してインストールする方法である。
【００４３】
カスタムセットアップインストール１０２０２は、デバイスがない状態でインストールを実行する方法である。ＵＳＢ接続セットアップインストール１０２０３は、インストール時にＵＳＢを接続し、プラグアンドプレイでＯＳ２１０がデバイスの持つＨＷＩＤ（ＨａｒｄｗａｒｅＩＤ）と一致するドライバー３００６を探索し、インストールする方法である。本実施例では、代表的なインストールである標準セットアップインストールについて説明する。
【００４４】
標準セットアップを選択された状態で、次へボタン１０２０４への操作を受け付けると、インストーラ３００４は、ネットワーク１０３に接続されているプリンター１０２を探索する。そして、図１０（Ｄ）に示すプリンター選択画面１０３００にプリンター１０２の一覧を表示する（Ｓ７００５）。図１０（Ｄ）のプリンター選択画面１０３００は、プリンターリストボックス１０３０１にプリンターの一覧を表示しており、プリンターリストボックス１０３０１のアイテムは、デバイス名、製品名、ＩＰアドレス、ＭＡＣアドレスを表示する。また、表示した直後は、次へボタン１０３０３はグレーアウトして各アイテムはチェックボックスを持ち、操作入力装置２０５によるユーザーからの操作を受け付けて選択されるとチェックボックスにチェックがされる。チェックがされると次へボタン１０３０３のグレーアウトが解除され、有効になる。ユーザーから次へボタンが選択されると、図１１（Ａ）に示すインストール確認画面１１３００を表示する（Ｓ７００６）。インストール確認画面１１３００は、１１３０１に示す通りインストールするドライバー３００６のプリンター名称、ドライバー名称とポートを表示する。尚、標準インストールのため、ポートはプリンターのＩＰアドレスとなる。インストール確認画面１１３００で次へボタン１１３０２が押されると、インストーラ３００４は、内部的にインストール対象リストを作成し、図１１（Ｂ）に示すプログレス画面１１４００を表示後にインストール処理（Ｓ７００７）を行う。インストール処理は後程説明する。インストール処理完了後に図１１（ｃ）に示すカスタマイズドライバーセットのインストール終了画面１１５００を表示する（Ｓ７００８）。そして、終了ボタン１１５０１を押下されることで完了する。
【００４５】
図８のフローチャートを用いて、インストール対象のドライバー３００６のインストール処理を説明する。尚、特に断らない限り本フローの主語はインストーラ３００４である。また、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。
【００４６】
最初に、ＯＳ２１０が管理する所定のフォルダーであるドライバストア５００５へ、ドライバー３００６を格納する（Ｓ８００１）。この格納処理は、インストーラ３００４がＯＳ２１０の機能を使って実行する。インストーラ３００４は、Ｓ８００２からＳ８００９のループ処理で、インストール対象リストの中の個々のプリンターに対するドライバーのインストール処理を行う。まず、インストール対象リストに未処理のプリンターが存在するか確認する（Ｓ８００２）。確認した結果、インストール対象リストに未処理のプリンターが存在した場合、インストール対象リストより未処理の一つのプリンターを取得し、現在のインストール対象とする（Ｓ８００３）。ＯＳに既にインストールされているプリンタードライバーを把握するため、現在のインストール対象となるプリンタードライバーのインストール前のプリンターリストを取得する（Ｓ８００４）。プリンターリストとはＯＳ２１０に存在するプリントキューの一覧である。次に、対象のＩＰアドレスなどの情報を元にＯＳ２１０に依頼し、ＯＳ２１０内にポートを作成する（Ｓ８００５）。ドライバー３００６に対する印刷ジョブを管理するためのプリンター名を指定して、ドライバー３００６に対応するキュー５００７をＯＳ２１０に依頼して作成する（Ｓ８００６）。その際に、キュー情報記憶部５００２を作成する。最後に、ＯＳ２１０に依頼し、ドライバー３００６と、キュー５００７およびポートを結びつける（Ｓ８００７）。インストール処理後にデフォルト設定記憶部５００１にユーザーデフォルトの印刷設定を書き込む（Ｓ８００８）。その後に、カスタマイズ設定ファイル書き込み処理を行う（Ｓ８００９）。カスタマイズ設定ファイル書き込み処理は後程説明する。インストール対象リストの全てのデバイスを処理した場合は、インストール処理は完了する。
【００４７】
図８の処理によって論理プリンターの名称（プリンター名）を指定してプリンタードライバーをインストールすることが可能となる。
【００４８】
図９を用いて、カスタマイズ設定ファイル３００８の書き込み処理について記述する。尚、特に断らない限り本図の主語はインストーラ３００４である。
【００４９】
また、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。
【００５０】
まず、インストーラ３００４は、ＯＳＡＰＩ５００４にアクセスを試みて、カスタマイズ設定ファイル３００８を対象プリントキューに対応するキュー情報記憶部５００２へ書き込む（Ｓ９００１）。これによって、論理プリンターに対して適用され、プリンタードライバーの設定を変更するための情報であるカスタマイズ情報がデータベースに追加される。
【００５１】
ＯＳＡＰＩ５００４はインストーラ３００４に書き込み処理の成否を応答する。この応答結果を取得することによって、インストーラ３００４はキュー情報記憶部５００２へのカスタマイズ設定ファイル３００８の書き込みが成功したか確認する（Ｓ９００２）。これによって、論理プリンターに対して前記データベースへのカスタマイズ情報の追加が成功したか否かを判断することができる。なお、書き込み処理を行った後に、インストーラ３００４がキュー情報記憶部５００２を取得し、カスタマイズ設定ファイル３００８が正しく書き込まれているかの検証処理を行い、この検証処理によって書き込みが成功したか否かを判断する構成にしても構わない。
【００５２】
書き込みに成功した場合には、ＯＳＡＰＩ５００４を用いて、印刷設定のデフォルトをカスタムデフォルトに変更する（Ｓ９０１１）。カスタマイズ設定ファイル書き込み処理を終了する。書き込みに失敗し、例外が発生した場合、インストーラ３００４は、Ｓ９００３に処理を進める。
【００５３】
カスタマイズ設定ファイル書き込みに失敗したメッセージを表示する（Ｓ９００３）。例えば、図１９（Ａ）のような画面１９０００を表示する。なお、Ｓ９００３はこのタイミングで表示する代わりに、Ｓ９００５やＳ９００９のあとに表示するように構成しても構わない。次に、Ｓ８００６で指定したプリンター名のキューがＯＳ２１０に存在するか確認する（Ｓ９００４）。そして、存在する場合には、Ｓ８００６で指定したプリンター名のキューの削除を行う（Ｓ９００５）。
【００５４】
これによって、論理プリンターに対してデータベースへのカスタマイズ情報の追加が失敗したと判断されて、かつ指定された名称の論理プリンターがＯＳに存在すると判断された場合に、指定された名称の論理プリンターがＯＳから削除される。
【００５５】
存在しない場合には、インストール後のプリンターリストを取得する（Ｓ９００６）。次に、キューの削除を行うために、インストールしたキューの特定処理を行う（Ｓ９００７）。インストールしたキューの特定処理は、後程説明する。インストールしたキューの特定処理を行った後、削除するためのインストールしたキューを特定できたか確認する（Ｓ９００８）。キューが特定できた場合には、特定したキューからプリンター名を取得して、プリンター名のキューを削除する（Ｓ９００９）。そして、カスタマイズ設定ファイル書き込み処理を終了する。キューが特定できなかった場合には、キューの削除に失敗したメッセージを表示する（Ｓ９０１０）。例えば、図１９（Ｂ）のような画面１９１００を表示する。そして、カスタマイズ設定ファイル書き込み処理を終了する。
【００５６】
図６を用いて、インストールしたキューをプリンターリストから特定する処理について説明する。Ｓ８００６においてキューが作成された時点から、Ｓ９００４においてプリンター名のキューの存在を確認するまでの間に、ユーザーがインストールしたキューの名称を変更してしまうことが考えられる。このような場合にＳ８００６で指定したプリンター名のキューの削除が行えないため、図６によるインストールしたキューを特定する処理が必要になる。尚、特に断らない限り本図の主語はインストーラ３００４である。また、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。
【００５７】
まず、Ｓ８００４とＳ９００６で取得したインストール前とインストール後に取得したプリンターリストを比較する（Ｓ６００１）。両リストの比較から、差分のキュー数が２つ以上かを確認する（Ｓ６００２）。差分のキュー数が１つの場合は、差分のキューをインストールしたキューと特定する（Ｓ６００３）。差分のキュー数が２つ以上の場合には、インストールしたキューを特定不能とする（Ｓ６００４）。
【００５８】
これによって、プリンタードライバーのインストール前後で取得されたプリンターリスト（論理プリンターの一覧）から、削除すべき論理プリンターがＯＳに存在するか判断する。そして、論理プリンターに対してデータベースへのカスタマイズ情報の追加が失敗したと判断されて、かつプリンターリストから削除すべき論理プリンターがＯＳに存在すると判断された場合に、削除すべき論理プリンターをＯＳから削除することができる。
【００５９】
本実施例により、カスタマイズ情報の書き込みに失敗した場合に、カスタマイズされたドライバーのプリントキューを削除することで、不完全な情報をもとにドライバーが動作してしまい、誤動作や、予期していなかった動作を防ぐことが可能となる。
【００６０】
また、カスタマイズ情報が設定できなかった場合に、インストール前とインストール後に取得したプリンターリストを比較する。そして、カスタマイズ設定に失敗したプリントキューを特定し、プリンター名を指定して、確実にプリントキューを削除することが可能となる。また、不完全な情報をもとにドライバーが動作してしまい、誤動作や、予期していなかった動作を防ぐことが可能となる。
【実施例２】
【００６１】
実施例１においては、カスタマイズ情報が設定できなかった場合に、インストール前とインストール後に取得したプリンターリストを比較することによって、カスタマイズ設定に失敗した論理プリンターを特定した。本実施例では、プリンターリストの差分だけでは、プリントキューを特定できなかった場合にインストールしたキューを絞り込む例を示す。
【００６２】
インストールの処理、および、カスタマイズ設定ファイルの書き込み処理は、実施例１と同じである。図９のＳ９００７のインストールしたキューの特定処理が異なる。図１２を用いて、インストールしたキューの特定処理において、他の情報を利用して、インストールしたキューを絞り込む方法について記述する。尚、特に断らない限り本図の主語はインストーラ３００４である。また、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。
【００６３】
まず、Ｓ８００４とＳ９００６で取得したインストール前とインストール後に取得したプリンターリストを比較する（Ｓ１２００１）。両リストの比較から、差分のキュー数が２つ以上かを確認する（Ｓ１２００２）。差分が１つの場合は、差分のキューをインストールしたキューと特定する（Ｓ１２００３）。差分が２つ以上の場合には、更にインストールしたキューを絞り込む処理を行う（Ｓ１２００４）。インストールしたキューを絞り込む処理は、後程説明する。インストールしたキューを絞り込む処理を行った場合にも、残りのキュー数が２つ以上かを確認する（Ｓ１２００５）。そして、１つの場合には、残りのキューをインストールしたキューと特定する（Ｓ１２００６）。２つ以上の場合には、インストールしたキューを特定不能とする（Ｓ１２００７）。
【００６４】
図１４を用いて、キューに書き込まれているプリンターを作成したメーカー情報を利用して、インストールしたキューを絞り込む方法について記述する。尚、特に断らない限り本図の主語はインストーラ３００４である。また、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。
【００６５】
Ｓ８００４とＳ９００６で取得したインストール前とインストール後のプリンターリストに基づいて、インストール前とインストール後の差分のキューを取得する（Ｓ１４００１）。Ｓ１２００２より、差分のキューは、２つ以上あるため、そこから、チェックしていない一つのキューのメーカー情報を取得する（Ｓ１４００２）。そして、取得したメーカー情報がキューの作成時に書き込んだメーカー情報と一致したかを確認する（Ｓ１４００３）。一致しなかった場合、一致しなかったキューを差分のキューから除外する（Ｓ１４００４）。一致した場合には、そのキューをそのままにして次に進む。全てのキューをチェックしたかを確認する（Ｓ１４００５）。チェックしていない場合には、Ｓ１４００２からの処理を繰り返す。チェックした場合には、残ったキューは一つかを確認する（Ｓ１４００６）。残ったキューが一つの場合には、残った一つのキューをインストールしたキューと特定する（Ｓ１４００７）。そして、インストールしたキューを絞り込む処理を終了する。残ったキューが一つでなかった場合には、インストールしたキューを特定不能（Ｓ１４００８）として、インストールしたキューを絞り込む処理を終了する。
【００６６】
本実施例では、メーカー情報を取得することによって、インストールしたキューの絞り込みを行ったが、他の情報を取得することによって、同様に、キューの絞り込みを行うことが可能なことは、言うまでもない。
【００６７】
このように、カスタマイズ情報が設定できなかった場合に、インストール前とインストール後に取得したプリンターリストの差分を求める。そして、更に各プリンタキューのメーカー情報を取得することによって、インストールしたキューを絞り込み、カスタマイズ設定に失敗したプリントキューを特定し、プリンター名を指定して、確実にプリントキューを削除することが可能となる。そして、不完全な情報をもとにドライバーが動作してしまい、誤動作や、予期していなかった動作を防ぐことが可能となる。
【実施例３】
【００６８】
実施例２においては、カスタマイズ情報が設定できなかった場合に、プリンターリストの差分だけでは、プリントキューを特定できなかった場合にインストールしたキューをさらに絞り込むことによって、論理プリンターの特定を行った。本実施例では、キューの作成時に直接指定した情報を利用することによって、インストールしたキューの特定を行う。
【００６９】
インストールの処理、および、カスタマイズ設定ファイルの書き込み処理は、実施例１と同じである。図９のＳ９００７のインストールしたキューの特定処理が異なる。図１３を用いて、インストールしたキューの特定処理について記述する。尚、特に断らない限り本図の主語はインストーラ３００４である。また、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。
【００７０】
まず、インストールされているプリンターリストを取得する（Ｓ１３００１）。プリンターリストのうち、チェックしていない一つのキューに結び付けられたポートに関連する情報（ポート情報）を取得する（Ｓ１３００２）。そして、Ｓ８００５でポートを作成した時に利用した情報と一致したかを確認する（Ｓ１３００３）。例えば、ＩＰアドレスなどの情報を確認する。一致した場合には、一致したキューをインストールしたキューと特定する（Ｓ１３００４）。そして、インストールしたキューの特定処理を終了する。一致しなかった場合には、全てのキューをチェックしたかを確認する（Ｓ１３００５）。チェックしていない場合には、Ｓ１３００２からの処理を繰り返す。チェックした場合には、一致するキューが存在しなかったため、インストールしたキューを特定不能とする（Ｓ１３００６）。そして、インストールしたキューの特定処理を終了する。
【００７１】
このように、カスタマイズ情報が設定できなかった場合に、キューの作成時に直接指定した情報を利用することによって、インストールしたキューの特定を行う。そして、カスタマイズ設定に失敗したプリントキューを特定し、プリンター名を指定して、確実にプリントキューを削除することが可能となる。そして、不完全な情報をもとにドライバーが動作してしまい、誤動作や、予期していなかった動作を防ぐことが可能となる。
【実施例４】
【００７２】
実施例３においては、カスタマイズ情報が設定できなかった場合に、プリンタキューの作成時に直接指定した情報を利用することによって、インストールした論理プリンターの特定を行った。本実施例４と続く実施例５ではインストールされるプリンタードライバーに関連する特定の情報の取得を行い、プリンタードライバーのインストール前後で取得された特定の情報に基づいて、削除すべき論理プリンターを特定して、特定された論理プリンターをＯＳから削除する。本実施例では特定の情報として、論理プリンターに対応する物理プリンターから取得した構成情報を用いる。
【００７３】
インストールの処理は、実施例１と同じである。図７のＳ７００７のインストール処理が異なる。図１５のフローチャートを用いて、インストール対象のドライバー３００６のインストール処理を説明する。図１５の各処理は、ほぼ図８での各処理と同じである。そのため、異なるＳ１５００８の処理を除いて、説明を省略する。尚、特に断らない限り本フローの主語はインストーラ３００４である。また、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。
【００７４】
Ｓ８００７でドライバーとキューおよびポートを結びつけた後に、作成したポートを利用して、プリンターからデバイスのカセットが何段か、フィニッシャーが付いているか、ステープルが可能かなどを示す構成情報を取得する（Ｓ１５００８）。その後のＳ８００９におけるカスタマイズ設定ファイル書き込み処理は実施例１の図９と同様である。違いとしては図９におけるインストールしたキューの特定処理であるＳ９００７の処理内容が異なる。この処理は、後述する。インストール対象リストの全てのデバイスを処理した場合は、インストール処理は完了する。
【００７５】
図１６を用いて、前述のＳ９００７におけるインストールしたキューの特定処理について記述する。尚、特に断らない限り本図の主語はインストーラ３００４である。また、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。
【００７６】
まず、インストールされているプリンターリストを取得する（Ｓ１６００１）。プリンターリストのうち、チェックしていない一つのキューの構成情報を取得する（Ｓ１６００２）。更に構成情報が取得できたかを確認する（Ｓ１６００３）。取得できなかった場合には、全てのキューをチェックしたかを確認する（Ｓ１６００６）。取得できた場合には、取得した構成情報がＳ１５００８で取得した構成情報と一致したかを確認する（Ｓ１６００４）。一致した場合には、一致したキューをインストールしたキューと特定する（Ｓ１６００５）。そして、インストールしたキューの特定処理を終了する。一致しなかった場合には、全てのキューをチェックしたかを確認する（Ｓ１６００６）。全てのキューをチェックしていない場合には、Ｓ１６００２からの処理を繰り返す。チェックした場合には、一致するキューが存在しなかったため、インストールしたキューを特定不能とする（Ｓ１６００７）。そしてインストールしたキューの特定処理を終了する。
【００７７】
このように、カスタマイズ情報が設定できなかった場合に、キューの作成時にプリンターから情報を取得し、その情報を利用することによって、インストールしたキューの特定を行う。そして、カスタマイズ設定に失敗したプリントキューを特定し、プリンター名を指定して、確実にプリントキューを削除することが可能となる。そして、不完全な情報をもとにドライバーが動作してしまい、誤動作や、予期していなかった動作を防ぐことが可能となる。
【実施例５】
【００７８】
実施例４においては、キューの作成時にプリンターから情報を取得し、その情報を利用することによって、インストールした論理プリンターの特定を行った。本実施例では、キューの作成時に関連付いてＯＳにより作成された固有情報を利用することによって、インストールしたキューの特定を行う。
【００７９】
インストールの処理は、実施例１と同じである。図７のＳ７００７のインストール処理が異なる。図１７のフローチャートを用いて、インストール対象のドライバー３００６のインストール処理を説明する。図１７の各処理もほぼ図８での各処理と同じである。そのため、異なるＳ１７００８の処理を除いて、説明を省略する。尚、特に断らない限り本フローの主語はインストーラ３００４である。また、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。
【００８０】
Ｓ８００７でドライバーとキューおよびポートを結びつけた後、作成したキューに関連付く固有情報を取得する（Ｓ１７００８）。例えば、固有情報としてキューの識別ＩＤ（識別情報）を取得する。その後のＳ８００９におけるカスタマイズ設定ファイル書き込み処理は実施例１の図９と同様である。実施例４と同様に違いとしては図９におけるインストールしたキューの特定処理であるＳ９００７の処理内容が異なる。この処理は、後述する。インストール対象リストの全てのデバイスを処理した場合は、インストール処理は完了する。
【００８１】
図１８を用いて、前述のＳ９００７におけるインストールしたキューの特定処理について記述する。尚、特に断らない限り本図の主語はインストーラ３００４である。また、各アプリケーション及びモジュールは、外部メモリ２０９に格納されており、必要に応じてＲＡＭ２０２にロードされ、クライアントコンピュータ１０１上のＣＰＵ２０１で実行される。
【００８２】
まず、インストールされているプリンターリストを取得する（Ｓ１８００１）。プリンターリストのうち、チェックしていない一つのキューの固有情報を取得する（Ｓ１８００２）。固有情報が取得できたかを確認する（Ｓ１８００３）。取得できなかった場合には、全てのキューをチェックしたかを確認する（Ｓ１８００６）。取得できた場合には、取得した固有情報がＳ１７００８で取得した固有情報と一致したかを確認する（Ｓ１８００４）。一致した場合には、一致したキューをインストールしたキューと特定する（Ｓ１８００５）。そして、インストールしたキューの特定処理を終了する。一致しなかった場合には、全てのキューをチェックしたかを確認する（Ｓ１８００６）。全てのキューをチェックしていない場合には、Ｓ１８００２からの処理を繰り返す。チェックした場合には、一致するキューが存在しなかったため、インストールしたキューを特定不能とする（Ｓ１８００７）。そしてインストールしたキューの特定処理を終了する。
【００８３】
このように、カスタマイズ情報が設定できなかった場合に、キューの作成時に関連付いてＯＳにより作成された固有情報を利用することによって、インストールしたキューの特定を行う。そして、カスタマイズ設定に失敗したプリントキューを特定し、プリンター名を指定して、確実にプリントキューを削除することが可能となる。そして、不完全な情報をもとにドライバーが動作してしまい、誤動作や、予期していなかった動作を防ぐことが可能となる。
【００８４】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2019008669.tif 000003
【図２】
2019008669.tif 000004
【図３】
2019008669.tif 000005
【図４】
2019008669.tif 000006
【図５】
2019008669.tif 000007
【図６】
2019008669.tif 000008
【図７】
2019008669.tif 000009
【図８】
2019008669.tif 000010
【図９】
2019008669.tif 000011
【図１０】
2019008669.tif 000012
【図１１】
2019008669.tif 000013
【図１２】
2019008669.tif 000014
【図１３】
2019008669.tif 000015
【図１４】
2019008669.tif 000016
【図１５】
2019008669.tif 000017
【図１６】
2019008669.tif 000018
【図１７】
2019008669.tif 000019
【図１８】
2019008669.tif 000020
【図１９】
2019008669.tif 000021