(57)【要約】【課題】デバイスに関連付けて生成された、ＯＳが提供する汎用ドライバの印刷キューを削除しつつ、デバイスの製造元が提供するドライバの印刷キューを生成する。【解決手段】本発明の情報処理装置は、デバイスの製造元が提供するドライバを登録する登録手段と、前記デバイスのＵＵＩＤと前記情報処理装置の印刷ポート名とを用いてＰｎＰ−Ｘ  ＩＤを取得する取得手段と、前記情報処理装置にインストール済みのドライバの印刷キューが、前記ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられており、かつ、前記印刷キューに対応するドライバが前記登録されたドライバと一致しない場合、前記印刷キューを削除する削除手段と、前記登録されたドライバの印刷キューをＷＳＤ通信ポートに割り当てて生成する生成手段と、を有することを特徴とする。【選択図】図６
2018194910.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
デバイスの製造元が提供するドライバを登録する登録手段と、
前記デバイスのＵＵＩＤと前記情報処理装置の印刷ポート名とを用いてＰｎＰ−Ｘ  ＩＤを取得する取得手段と、
前記情報処理装置にインストール済みのドライバの印刷キューが、前記ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられており、かつ、前記印刷キューに対応するドライバが前記登録されたドライバと一致しない場合、前記印刷キューを削除する削除手段と、
前記登録されたドライバの印刷キューをＷＳＤ通信ポートに割り当てて生成する生成手段と、を有する
ことを特徴とする情報処理装置。
【請求項２】
情報処理装置であって、
デバイスの製造元が提供するドライバを登録する登録手段と、
前記デバイスのＵＵＩＤと前記情報処理装置の印刷ポート名とを用いてＰｎＰ−Ｘ  ＩＤを取得する取得手段と、
前記ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられている印刷キューが少なくとも１つ以上存在し、かつ、前記印刷キューに対応するドライバが、いずれも前記登録されたドライバと一致しない場合、前記印刷キューを削除する削除手段と、
前記登録されたドライバの印刷キューをＷＳＤ通信ポートに割り当てて生成する生成手段と、を有する
ことを特徴とする情報処理装置。
【請求項３】
前記削除手段は、前記デバイスの管理に用いられるデータベースから前記デバイスを示す情報が削除されることに応じて、前記デバイスに関連付けられたドライバの前記印刷キューを削除することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記生成手段は、前記データベースに前記デバイスを示す情報が登録されることに応じて、前記登録されたドライバの印刷キューを前記ＷＳＤ通信ポートに割り当てて生成することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記取得手段は、情報処理装置のＯＳが提供する機能であるポートモニタから前記ＰｎＰ−Ｘ  ＩＤを取得することを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
情報処理装置へのドライバのインストール方法であって、
デバイスの製造元が提供するドライバを登録する登録ステップと、
前記デバイスのＵＵＩＤと前記情報処理装置の印刷ポート名とを用いてＰｎＰ−Ｘ  ＩＤを取得する取得ステップと、
前記情報処理装置にインストール済みのドライバの印刷キューが、前記ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられており、かつ、前記印刷キューに対応するドライバが前記登録されたドライバと一致しない場合、前記印刷キューを削除する削除ステップと、
前記登録されたドライバの印刷キューをＷＳＤ通信ポートに割り当てて生成する生成ステップと、を有する
ことを特徴とするドライバのインストール方法。
【請求項７】
情報処理装置へのドライバのインストール方法であって、
デバイスの製造元が提供するドライバを登録する登録ステップと、
前記デバイスのＵＵＩＤと前記情報処理装置の印刷ポート名とを用いてＰｎＰ−Ｘ  ＩＤを取得する取得ステップと、
前記ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられている印刷キューが少なくとも１つ以上存在し、かつ、前記印刷キューに対応するドライバが、いずれも前記登録されたドライバと一致しない場合、前記印刷キューを削除する削除ステップと、
前記登録されたドライバの印刷キューをＷＳＤ通信ポートに割り当てて生成する生成ステップと、を有する
ことを特徴とするドライバのインストール方法。
【請求項８】
情報処理装置として機能させるためのプログラムであって、
デバイスの製造元が提供するドライバを登録する登録手段と、
前記デバイスのＵＵＩＤと前記情報処理装置の印刷ポート名とを用いてＰｎＰ−Ｘ  ＩＤを取得する取得手段と、
前記情報処理装置にインストール済みのドライバの印刷キューが、前記ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられており、かつ、前記印刷キューに対応するドライバが前記登録されたドライバと一致しない場合、前記印刷キューを削除する削除手段と、
前記登録されたドライバの印刷キューをＷＳＤ通信ポートに割り当てて生成する生成手段と、を有する情報処理装置として機能させるためのプログラム。
【請求項９】
情報処理装置として機能させるためのプログラムであって、
デバイスの製造元が提供するドライバを登録する登録手段と、
前記デバイスのＵＵＩＤと印刷ポート名とを用いてＰｎＰ−Ｘ  ＩＤを取得する取得手段と、
前記ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられている印刷キューが少なくとも１つ以上存在し、かつ、前記印刷キューに対応するドライバが、いずれも前記登録されたドライバと一致しない場合、前記印刷キューを削除する削除手段と、
前記登録されたドライバの印刷キューをＷＳＤ通信ポートに割り当てて生成する生成手段と、を有する情報処理装置として機能させるためのプログラム。
【請求項１０】
前記削除手段は、前記デバイスの管理に用いられるデータベースから前記デバイスを示す情報が削除されることに応じて、前記デバイスに関連付けられたドライバの前記印刷キューを削除することを特徴とする請求項８または９に記載のプログラム。
【請求項１１】
前記生成手段は、前記データベースに前記デバイスを示す情報が登録されることに応じて、前記登録されたドライバの印刷キューを前記ＷＳＤ通信ポートに割り当てて生成することを特徴とする請求項１０に記載のプログラム。
【請求項１２】
前記取得手段は、情報処理装置のＯＳが提供する機能であるポートモニタから前記ＰｎＰ−Ｘ  ＩＤを取得することを特徴とする請求項８から１１のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスドライバのインストール技術に関する。
【背景技術】
【０００２】
コンピュータにインストールされるデバイスドライバの種類は、大きく２種類に分類することができる。１つは、デバイスの製造元が提供するドライバであり、これらはＯｕｔｂｏｘドライバと称される。もう１つは、ＯＳが提供するドライバであり、これらはＩｎｂｏｘドライバと称される。一般的には、Ｏｕｔｂｏｘドライバの方がＩｎｂｏｘドライバよりも優れた機能を有しており、デバイスの製造元はＯｕｔｂｏｘドライバを使用することを推奨している。
【０００３】
Ｗｉｎｄｏｗｓ（登録商標）ＯＳではＰｎＰ−Ｘ（Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ  Ｅｘｔｅｎｓｉｏｎ  ｆｏｒ  Ｎｅｔｗｏｒｋ  Ｃｏｎｎｅｃｔｅｄ  Ｄｅｖｉｃｅ）機能が提供されている。Ｗｉｎｄｏｗｓ  ＯＳは、自身のＰｎＰ−Ｘ機能に基づいてデバイスを検出し、そのデバイスに関連付けられたＩｎｂｏｘドライバを自動的にコンピュータにインストールする。すなわち、コンピュータとデバイスとをネットワークを介して接続するだけで、Ｉｎｂｏｘドライバが自動的にコンピュータにインストールされる。
【０００４】
Ｉｎｂｏｘドライバがインストールされた後に、Ｏｕｔｂｏｘドライバのインストールを実行する場合、ＰｎＰ−Ｘ機能によってデバイスの自動検出が行われない。そのため、ユーザは、Ｉｎｂｏｘドライバを削除してからＯｕｔｂｏｘドライバのインストールを実行する場合がある。この場合、例えば、特許文献１の手法を適用してＩｎｂｏｘドライバを削除することができる。特許文献１は、プリンタドライバに付加された固有削除情報を参照することにより、コンピュータにインストールされているプリンタドライバを選択的に削除する手法を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３３４６９９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
最新ＯＳであるＷｉｎｄｏｗｓ１０（登録商標）は、Ｍｉｃｒｏｓｏｆｔ  Ｍｏｂｉｌｅ  Ｐｒｉｎｔ（以下「ＭＭＰ」と記す）用のドライバを標準装備しており、このＭＭＰドライバは全てのデバイスの製造元に共通する仕様となっている。
【０００７】
そのため、ＭＭＰドライバを削除してからＯｕｔｂｏｘドライバのインストールを実行する場合、製造元が異なる他のデバイスに関連付けられたＭＭＰドライバの印刷キューまでもが意図せず削除されてしまうという課題があった。
【０００８】
本発明は上記課題に鑑みなされたものである。すなわち、デバイスに関連付けて生成された、ＯＳが提供する汎用ドライバの印刷キューを削除しつつ、デバイスの製造元が提供するドライバの印刷キューを生成することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、デバイスの製造元が提供するドライバを登録する登録手段と、前記デバイスのＵＵＩＤと前記情報処理装置の印刷ポート名とを用いてＰｎＰ−Ｘ  ＩＤを取得する取得手段と、前記情報処理装置にインストール済みのドライバの印刷キューが、前記ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられており、かつ、前記印刷キューに対応するドライバが前記登録されたドライバと一致しない場合、前記印刷キューを削除する削除手段と、前記登録されたドライバの印刷キューをＷＳＤ通信ポートに割り当てて生成する生成手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、デバイスに関連付けて生成された、ＯＳが提供する汎用ドライバの印刷キューを削除しつつ、デバイスの製造元が提供するドライバの印刷キューを生成することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１における情報処理システムの構成例である。
【図２】実施形態１におけるコンピュータのハードウェア構成例である。
【図３】実施形態１におけるデバイスのハードウェア構成例である。
【図４】実施形態１におけるソフトウェアの機能構成例である。
【図５】実施形態１におけるドライバインストーラの処理手順を示すフローチャートである。
【図６】実施形態１における印刷キューの生成手順を示すフローチャートである。
【図７】実施形態２における印刷キューの生成手順を示すフローチャートである。
【図８】実施形態１におけるデバイス設定の確認ウィンドウの一例を示す図である。
【発明を実施するための形態】
【００１２】
［実施形態１］
以下、本発明を実施するための形態について図面を参照して説明する。ただし、この実施形態に記載されている構成はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。
【００１３】
（情報処理システムの構成）
図１は、本実施形態における情報処理システムの構成例を示すブロック図である。本実施形態の情報処理システム１は、コンピュータ１００と、デバイス２００、４００とから構成される。図１に示される通り、コンピュータ１００およびデバイス２００が属するサブネットワークＡと、デバイス４００が属するサブネットワークＢとは、ルータ３００を介して接続されている。コンピュータ１００は、ＰＣ（パーソナルコンピュータ）やタブレットなどの情報処理装置である。デバイス２００、４００は、プリンタ、複写機、ファクシミリ、スキャナ等の周辺機器またはそれらの複合機能を備える装置である。デバイス２００、４００は、ＴＣＰ／ＩＰプロトコルに対応すると共に、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＯＳ標準のネットワークプロトコルであるＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ｏｎ  Ｄｅｖｉｃｅｓ）にも対応している。なお、情報処理システム１の構成は一例であり、図１の情報処理システム１の構成に限定されるものではない。例えば、サブネットワークＡおよびサブネットワークＢそれぞれに属するコンピュータ、デバイスの数は図１の情報処理システム１の構成に限定されず、複数であってもよい。
【００１４】
（コンピュータのハードウェア構成）
図２は、本実施形態におけるコンピュータ１００のハードウェア構成例を示すブロック図である。コンピュータ１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、グラフィックコントローラ１０４、表示部１０５、補助記憶装置１０６を含んで構成される。さらに、コンピュータ１００は、外部接続インタフェース１０７（以下インタフェースは「Ｉ／Ｆ」と記す）、ネットワークＩ／Ｆ１０８を含み、各構成部はバス１０９を介して通信可能に接続されている。ＣＰＵ１０１は演算回路からなり、コンピュータ１００を統括制御する。ＣＰＵ１０１はＲＯＭ１０３または補助記憶装置１０６に記憶されたプログラムをＲＡＭ１０２に読み出し、種々の処理を実行する。ＲＯＭ１０３は、コンピュータ１００の制御に用いられるＢＩＯＳなどのシステムソフトウェアなどを記憶する。グラフィックコントローラ１０４は、表示部１０５に表示させるための画面を生成する。表示部１０５は、ＬＣＤ（液晶ディスプレイ）などによって構成され、グラフィックコントローラ１０４によって生成された画面を表示する。また、表示部１０５は、タッチスクリーン機能を有していてもよい。その場合、表示部１０５を介して入力を受け付けたユーザ指示を、コンピュータ１００への入力として扱うことも可能である。補助記憶装置１０６は記憶領域としての機能を有し、ＯＳ（オペレーティングシステム）、種々のデバイスを制御するためのデバイスドライバ、種々の処理を実行するアプリケーションプログラムなどを記憶する。補助記憶装置１０６は記憶装置の一例であり、ＨＤＤ（ハードディスクドライブ）以外にもＳＳＤ（ソリッドステートドライブ）などにより構成することができる。補助記憶装置１０６に記憶されているデバイスドライバには、デバイス２００、４００を含む種々のデバイスを制御するために用いられるドライバソフトウェアが含まれる。このようなドライバソフトウェアとは、例えば、スキャナドライバ、プリンタドライバ、ファクシミリドライバなどである。外部接続Ｉ／Ｆ１０７は、コンピュータ１００に種々の機器を接続するためのインタフェースである。例えば、外部接続Ｉ／Ｆ１０７を介して、キーボード、マウスなどのポインティングデバイスを接続することができる。ネットワークＩ／Ｆ１０８は、ＣＰＵ１０１の制御に基づいてデバイス２００、４００とネットワークを介して通信を行う。
【００１５】
本実施形態の補助記憶装置１０６は、ドライバソフトウェア（以下、単に「ドライバ」と記す場合がある）を対象デバイスにインストールするために必要なドライバインストーラも記憶している。なお、本実施形態において、対象デバイスは、デバイスをインストールする対象となるデバイスを意味する。このドライバインストーラは、ＴＣＰ／ＩＰプロトコルによるデバイスの検索機能と、ＷＳＤプロトコルによるデバイス検索機能とを備えている。本実施形態では、ドライバインストーラが、ＴＣＰ／ＩＰプロトコルによるデバイスの検索機能と、ＷＳＤプロトコルによるデバイス検索機能とを備える構成を示したが、実施形態は上記示した構成に限定されない。別実施形態では、補助記憶装置１０６が、ＴＣＰ／ＩＰプロトコルによるデバイスの検索機能を備える専用モジュールと、ＷＳＤによるデバイス検索機能を備える専用モジュールとを記憶していてもよい。その場合、デバイスドライバやアプリケーションからこれら専用モジュールを呼び出してデバイス検索を実行させるようにしてもよい。
【００１６】
（デバイスのハードウェア構成）
図３は、本実施形態におけるデバイス２００、４００のハードウェア構成例を示すブロック図である。デバイス２００、４００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、グラフィックコントローラ２０４、表示部２０５、操作部２０６を含んで構成される。さらに、デバイス２００、４００は、ネットワークＩ／Ｆ２０７、印刷部２０８を含み、各構成部はバス２０９を介して通信可能に接続されている。ＣＰＵ２０１は演算回路からなり、デバイス２００、４００を統括制御する。ＣＰＵ２０１はＲＯＭ２０３に記憶されたプログラムをＲＡＭ２０２に読み出し、種々の処理を実行する。ＲＯＭ２０３は、デバイス２００、４００の制御に用いられるプログラムやデータを記憶する。グラフィックコントローラ２０４は、表示部２０５に表示させるための画面を生成する。表示部２０５は、ＬＣＤ（液晶ディスプレイ）などによって構成され、グラフィックコントローラ２０４によって生成された画面を表示する。操作部２０６は、タッチパネルやハードウェアキーなどによって構成され、ユーザ指示を受け付けることができる。ネットワークＩ／Ｆ２０７は、ＣＰＵ２０１の制御に基づいて外部デバイスとネットワークを介して通信を行う。印刷部２０８は、コンピュータ１００から送信された印刷ジョブや、デバイス２００、４００自身が読み取った画像データに基づいて、用紙などの記録媒体に文字や画像を形成する。なお、図３に示されるデバイス２００、４００の構成は、デバイス２００、４００がプリンタである場合の構成である。デバイス２００、４００がスキャナである場合、デバイス２００、４００は、用紙などの記録媒体上に形成されている文字や画像を読み取る読取部を更に有することになる。
【００１７】
（ソフトウェア機能構成）
図４は、本実施形態におけるコンピュータ１００のソフトウェア機能構成を示すブロック図である。図４に示される各ブロックの機能は、ＣＰＵ１０１がアプリケーション（ドライバインストーラ）１１０のプログラムコードをＲＡＭ１０２に読み出して実行することにより実現される。
【００１８】
アプリケーション１１０は、ネットワークに接続されるデバイスを検索し、検索されたデバイスのなかからユーザによって選択されたデバイスに関連付けられたドライバをコンピュータ１００にインストールする。アプリケーション１１０は、ユーザによって選択されたデバイスがプリンタであれば、プリンタドライバ１２２をコンピュータ１００にインストールする。ユーザによって選択されたデバイスがスキャナであれば、スキャナドライバ１２３をコンピュータ１００にインストールする。また、ユーティリティ１２４は、ユーザによって選択されたデバイスの種類に応じて適宜コンピュータ１００にインストールされる。
【００１９】
デバイス検出部１１１は、ドライバＩＮＦファイル１２１からデバイスのドライバ情報を取得する。ドライバ情報には、ドライバ名が含まれる。
【００２０】
ＴＣＰ／ＩＰデバイス検索部１１２は、ＴＣＰ／ＩＰプロトコルにより、コンピュータ１００とネットワークを介して接続されるデバイスを検索する。アプリケーション１１０は、上記検索によって検出されたデバイスに関する情報を表示部１０５に表示する。本実施形態では、デバイスに関する情報として、デバイス名、ＩＰアドレス、ＭＡＣアドレスなどが表示部１０５に表示される。これらデバイスに関する情報は、対象デバイスを識別するために利用可能な情報である。さらに、アプリケーション１１０は、表示部１０５に表示されたデバイスに関する情報のうち、選択されたデバイスの制御に用いられるドライバをコンピュータ１００に登録する。
【００２１】
ＷＳＤデバイス検索部１１３は、ＷＳＤプロトコルにより、選択されたデバイスを、コンピュータ１００が属するサブネットワークと同一のサブネットワークに接続されるデバイスから検索する。ＷＳＤの仕様により、ＷＳＤプロトコルによる検索は、ルータ３００を越えた先のサブネットワークからはデバイスを検索することができない。そのため、図１を例に説明すると、ＷＳＤデバイス検索部１１３は、サブネットワークＡに接続されるデバイス２００を検索することはできるが、サブネットワークＢに接続されるデバイス４００を検索することはできない。ＷＳＤデバイス検索部１１３が、コンピュータ１００が属するサブネットワークと同一のサブネットワークに接続されるデバイスを検出した場合、アプリケーション１１０は、当該デバイスとＷＳＤプロトコルによる通信が可能と判定する。
【００２２】
ＵＵＩＤ取得部１１４は、ＷＳＤデバイス検索部１１３によって検出されたデバイスのＵＵＩＤを取得する。
【００２３】
Ｉｎｂｏｘドライバ検出部１１５は、コンピュータ１００が具備する印刷ポートのリストを取得し、ＵＵＩＤと印刷ポート名とを用いて、ポートモニタからＰｎＰ−Ｘ  ＩＤを取得する。次いで、Ｉｎｂｏｘドライバ検出部１１５は、コンピュータ１００にインストール済みの印刷キューのリストを取得し、各印刷キューが、ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられているか否かを判定する。本実施形態では、ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられているか否かを判定することにより、印刷キューがＷＳＤ通信ポートに割り当てられているか否かが判定される。さらに、Ｉｎｂｏｘドライバ検出部１１５は、印刷キューに対応するドライバが、アプリケーション１１０によって登録されたドライバと一致するか否かを判定する。なお、ＰｎＰ−Ｘ  ＩＤは、ＰｎＰ−Ｘ  Ｉｄｅｎｔｉｆｉｅｒ  の略であり、ＰｎＰ−Ｘ機能によるデバイスの検出結果を一意に識別する識別子である。
【００２４】
登録されたドライバと一致しない場合、ＷＳＤデバイス登録部１１６は、ＯＳによって制御され、デバイスの管理に用いられるアソシエーションデータベース（Ａｓｓｏｃｉａｔｉｏｎ  Ｄａｔａｂａｓｅ）から、対象デバイスを削除する。アソシエーションデータベースから対象デバイスが削除されると、ＯＳは、対象デバイスに関連付けられたＩｎｂｏｘドライバ（ＯＳが提供する汎用ドライバ）の印刷キューを削除する。
【００２５】
ＷＳＤデバイス登録部１１６は、対象デバイスを再びＯＳのデータベースに登録する。対象デバイスが再びＯＳのデータベースに登録されると、ＯＳのＰｎＰ−Ｘ機能が誘発され、登録されたドライバの印刷キューがＷＳＤ通信ポートに割り当てて生成される。
【００２６】
（ドライバインストーラの処理手順）
図５は、本実施形態におけるドライバインストーラの処理手順を示すフローチャートである。図５に示されるフローチャートの処理は、ＣＰＵ１０１がアプリケーション１１０のプログラムコードをＲＡＭ１０２に展開し実行することにより行われる。以下の各記号Ｓは、フローチャートにおけるステップであることを意味する。これらは図６以降のフローチャートについても同様である。
【００２７】
Ｓ５０１において、デバイス検出部１１１は、ドライバＩＮＦファイル１２１からデバイスのドライバ情報を取得する。ドライバ情報には、ドライバ名が含まれる。
【００２８】
Ｓ５０２において、ＴＣＰ／ＩＰデバイス検索部１１２は、ＴＣＰ／ＩＰプロトコルにより、コンピュータ１００が属するサブネットと同一のサブネットに接続されるデバイスを検索する。更に、ＴＣＰ／ＩＰデバイス検索部１１２は、ルータ３００を越えた先のサブネットに接続されるデバイスを検索する。
【００２９】
Ｓ５０３において、ＴＣＰ／ＩＰプロトコルによるデバイス検索によって、ドライバＩＮＦファイル１２１から取得されたデバイス名と一致するデバイスが検出されたか否かが判定される。一致するデバイスが検出された場合（Ｓ５０３：ＹＥＳ）、Ｓ５０４に移行する。一致するデバイスが検出されなかった場合（Ｓ５０３：ＮＯ）、Ｓ５１２に移行する。
【００３０】
Ｓ５０４において、Ｓ５０３で検出されたデバイスに関する情報が表示部１０５に表示される。本実施形態では、デバイスに関する情報として、デバイス名、ＩＰアドレス、ＭＡＣアドレスなどが表示部１０５に表示される。これらデバイスに関する情報は、対象デバイスを識別するために利用可能な情報である。なお、Ｓ５０３において複数のデバイスが検出された場合、これら複数のデバイスに関する情報が一覧で表示される。
【００３１】
Ｓ５０５において、表示部１０５に表示されたデバイスに関する情報のうち、選択されたデバイスの制御に用いられるドライバがコンピュータ１００に登録される。本実施形態では、タッチパネル機能を有する表示部１０５に入力されたユーザ指示に基づいてデバイスの選択が行われる。なお、本実施形態では、デバイス２００の製造元が提供するＯｕｔｂｏｘドライバがコンピュータ１００に登録される。
【００３２】
Ｓ５０６において、ＷＳＤデバイス検索部１１３は、ＷＳＤプロトコルにより、Ｓ５０５で選択されたデバイスを、コンピュータ１００が属するサブネットと同一のサブネットに接続されるデバイスから検索する。
【００３３】
Ｓ５０７において、ＷＳＤプロトコルによるデバイス検索によって、Ｓ５０５で選択されたデバイスが、コンピュータ１００が属するサブネットと同一のサブネットに接続されるデバイスから検出されたか否かが判定される。デバイスが検出された場合（Ｓ５０７：ＹＥＳ）、Ｓ５０８に移行する。デバイスが検出されなかった場合（Ｓ５０７：ＮＯ）、Ｓ５１０に移行する。
【００３４】
デバイスが検出された場合（Ｓ５０７：ＹＥＳ）、コンピュータ１００とデバイスとの間でＷＳＤプロトコルによる通信が可能と判定される。そして、Ｓ５０８において、デバイスとの通信に用いられる通信ポートが、ＷＳＤプロトコルによって通信可能なＷＳＤ通信ポートに決定される。
【００３５】
Ｓ５０９において、ＵＵＩＤ取得部１１４は、Ｓ５０７で検出されたデバイスのＵＵＩＤを取得する。
【００３６】
Ｓ６００において、アプリケーション１１０は、Ｓ５０７で検出されたデバイスの制御に用いられるドライバの印刷キューを生成する。Ｓ６００の詳細は後述する。Ｓ６００の処理が完了すると、本フローチャートの処理を終了する。
【００３７】
デバイスが検出されなかった場合（Ｓ５０７：ＮＯ）、コンピュータ１００とデバイスとの間でＷＳＤプロトコルによる通信が不可能と判定される。そして、Ｓ５１０において、コンピュータ１００とデバイスとの通信に用いられる通信ポートが、ＴＣＰ／ＩＰプロトコルによって通信可能なＴＣＰ／ＩＰ通信ポートに決定される。
【００３８】
Ｓ５１１において、アプリケーション１１０は、Ｓ５０７で検出されたデバイスの制御に用いられるドライバの印刷キューを生成する。より詳細には、アプリケーション１１０は、Ｓ５０５で登録されたドライバの印刷キューをＴＣＰ／ＩＰ通信ポートに割り当てて生成する。Ｓ５１１の処理が完了すると、本フローチャートの処理を終了する。
【００３９】
また、ＴＣＰ／ＩＰプロトコルによるデバイス検索によって、ドライバ情報と一致するデバイスが検出されなかった場合（Ｓ５０３：ＮＯ）、Ｓ５１２において、デバイス設定の確認ウィンドウが表示部１０５における表示画面に表示される。
【００４０】
図８は、本実施形態におけるデバイス設定の確認ウィンドウの一例を示す図である。本実施形態の確認ウィンドウ８０１には、ドライバＩＮＦファイル１２１から取得されたドライバ情報（デバイス名）と一致するデバイスが検出されなかった旨のメッセージが含まれる。そして、確認ウィンドウ８０１における再試行ボタン８０２への入力が受け付けられると（Ｓ５１３：ＹＥＳ）、再びＳ５０２に戻る。一方、確認ウィンドウ８０１における中止ボタン８０３への入力が受け付けられると（Ｓ５１３：ＮＯ）、本フローチャートの処理を終了する。
【００４１】
（印刷キューの生成手順）
図６は、本実施形態における印刷キューの生成手順（Ｓ６００）の詳細を示すフローチャートである。以下、図６を参照して詳細に説明する。
【００４２】
Ｓ６０１において、Ｉｎｂｏｘドライバ検出部１１５は、コンピュータ１００が具備する印刷ポートのリストを取得する。
【００４３】
Ｓ６０２において、全ての印刷ポートについて処理が完了したか否かが判定される。全ての印刷ポートについて処理が完了していない場合（Ｓ６０２：ＮＯ）、Ｓ６０３に移行する。全ての印刷ポートについて処理が完了している場合（Ｓ６０２：ＹＥＳ）、Ｓ６０２〜Ｓ６０３の処理ループを抜けてＳ６０４に移行する。
【００４４】
Ｓ６０３において、Ｓ５０９で取得したＵＵＩＤと、コンピュータ１００の印刷ポート名とを用いて、ポートモニタからＰｎＰ−Ｘ  ＩＤを取得する。ポートモニタからＰｎＰ−Ｘ  ＩＤを取得する処理は、上記リストの最上位に記述されている印刷ポート名から上記リストの最下位に記述されている印刷ポート名まで、Ｓ６０２〜Ｓ６０３の処理ループごとに順番に実行される。Ｓ６０３の処理が終了すると再びＳ６０２の判定処理に戻る。なお、本実施形態において、ポートモニタの機能はコンピュータ１００のＯＳによって提供されているものとする。
【００４５】
Ｓ６０４において、コンピュータ１００にインストール済みの印刷キューのリストが取得される。具体的には、各種ドライバがコンピュータ１００にインストールされる際に、インストーラによって生成された印刷キューのリストが取得される。
【００４６】
Ｓ６０５において、全ての印刷キューについて処理が完了したか否かが判定される。全ての印刷キューについて処理が完了していない場合（Ｓ６０５：ＮＯ）、Ｓ６０６に移行する。全ての印刷キューについて処理が完了している場合（Ｓ６０５：ＹＥＳ）、Ｓ６０５〜Ｓ６０７の処理ループを抜けてＳ６１０に移行する。
【００４７】
Ｓ６０６において、印刷キューは、ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられているか否かが判定される。Ｓ６０６の判定処理は、上記リストの最上位に記述されている印刷キュー名から上記リストの最下位に記述されている印刷キュー名まで、Ｓ６０５〜Ｓ６０７の処理ループごとに順番に実行される。本実施形態では、ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられているか否かを判定することにより、印刷キューがＷＳＤ通信ポートに割り当てられているか否かを判定する。印刷キューがＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられている場合（Ｓ６０６：ＹＥＳ）、Ｓ６０７に移行する。割り当てられていない場合（Ｓ６０６：ＮＯ）、再びＳ６０５の判定処理に戻る。
【００４８】
Ｓ６０７において、Ｉｎｂｏｘドライバ検出部１１５は、印刷キューに対応するドライバが、Ｓ５０５で登録されたドライバと一致するか否かを判定する。登録されたドライバと一致している場合（Ｓ６０７：ＹＥＳ）、再びＳ６０５の判定処理に戻る。一方、登録されたドライバと一致していない場合（Ｓ６０７：ＮＯ）、Ｓ６０５〜Ｓ６０７の処理ループを抜けてＳ６０８に移行する。
【００４９】
Ｓ６０８において、ＷＳＤデバイス登録部１１６は、ＯＳのデータベースから対象デバイスを削除する。
【００５０】
Ｓ６０９において、ＯＳのデータベースから対象デバイスが削除されると（Ｓ６０８）、対象デバイスに関連付けられたＩｎｂｏｘドライバ（ＯＳが提供する汎用ドライバ）の印刷キューがＯＳにより削除される。なお、Ｉｎｂｏｘドライバの印刷キューを削除するために、削除対象となる印刷キューの名称を直接指定する手法も考えられるが、本実施形態ではこのような手法を適用していない。これは、印刷キューの名称は自由に変更可能であり、印刷キューの名称によって削除対象となる印刷キューを特定することができない場合があるからである。
【００５１】
Ｓ６１０において、ＷＳＤデバイス登録部１１６は、対象デバイスを再びＯＳのデータベースに登録する。
【００５２】
Ｓ６１１において、対象デバイスが再びＯＳのデータベースに登録されると（Ｓ６１０）、ＯＳのＰｎＰ−Ｘ機能が誘発され、Ｓ５０５で登録されたドライバの印刷キューがＷＳＤ通信ポートに割り当てて生成される。Ｓ６１１の処理が完了すると、本フローチャートの処理を終了し、再び図５のフローチャートに復帰する。
【００５３】
以上説明した通り、本実施形態のドライバのインストール手法によれば、ＯＳが提供する汎用ドライバの特性を考慮して印刷キューを生成する。そのため、本実施形態のドライバのインストール手法は、デバイスに関連付けて生成された、ＯＳが提供する汎用ドライバの印刷キューを削除しつつ、デバイスの製造元が提供するドライバの印刷キューを生成することができる。
【００５４】
［実施形態２］
実施形態１によれば、デバイスに関連付けて生成された、ＯＳが提供する汎用ドライバ（Ｉｎｂｏｘドライバ）の印刷キューを削除しつつ、デバイスの製造元が提供するドライバ（Ｏｕｔｂｏｘドライバ）の印刷キューを生成することができる。しかし、実施形態１の手法では、以下のユースケースにおいて問題が発生する。すなわち、複数のＯｕｔｂｏｘドライバが既にインストールされており、これら複数のＯｕｔｂｏｘドライバのうち一部を更新する場合、非更新対象のＯｕｔｂｏｘドライバの印刷キューが削除されてしまう。実施形態２のドライバのインストール手法は、上記問題に鑑み、非更新対象のＯｕｔｂｏｘドライバの印刷キューを保持しつつ、更新対象のＯｕｔｂｏｘドライバを更新することができる。以下、実施形態１と共通する部分については説明を簡略化ないし省略し、以下では本実施形態に特有な点を中心に説明する。
【００５５】
（印刷キューの生成手順）
Ｓ６０１〜Ｓ６０５は、実施形態１と同じため説明を省略する。  
Ｓ７０１において、Ｓ６０６の判定結果が補助記憶装置１０６などの記憶領域に記憶される。すなわち、ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられている印刷キュー名が、Ｓ６０５〜Ｓ７０２の処理ループごとに記憶される。Ｓ７０１で記憶された印刷キュー名は、後述のＳ７０３の判定処理において参照される。
【００５６】
Ｓ６０７は、実施形態１と同じため説明を省略する。  
Ｓ７０２において、Ｓ６０７の判定結果が補助記憶装置１０６などの記憶領域に記憶される。すなわち、登録されたドライバ（例えば、Ｏｕｔｂｏｘドライバ）と一致すると判定された印刷キュー名が、Ｓ６０５〜Ｓ７０２の処理ループごとに記憶される。Ｓ７０２で記憶された印刷キュー名は、後述のＳ７０３の判定処理において参照される。全ての印刷キューについて処理が完了している場合（Ｓ６０５：ＹＥＳ）、Ｓ７０３に移行し、対象デバイスをＯＳのデータベースから削除するか否かが判定される。
【００５７】
Ｓ７０３において、Ｓ７０１で記憶された判定結果が参照され、ＰｎＰ−Ｘ  ＩＤが取得された印刷ポートに割り当てられている印刷キューが少なくとも１つ以上存在するか否かが判定される。条件を満たす印刷キューが少なくとも１つ以上存在する場合（Ｓ７０３：ＹＥＳ）、Ｓ７０４に移行する。条件を満たす印刷キューが存在しない場合（Ｓ７０３：ＮＯ）、Ｓ７０４〜Ｓ６０９をスキップしてＳ６１０に移行する。
【００５８】
Ｓ７０４において、Ｓ７０２で記憶された判定結果が参照され、Ｓ７０３の条件を満たす印刷キューに対応するドライバが、いずれもＳ５０５で登録されたドライバと一致するか否かが判定される。いずれも登録されたドライバと一致しない場合（Ｓ７０４：ＹＥＳ）、Ｓ６０８に移行する。登録されたドライバと一致する印刷キューが存在する場合（Ｓ７０４：ＮＯ）、Ｓ６０８〜Ｓ６０９をスキップしてＳ６１０に移行する。  
Ｓ６０８〜Ｓ６１１は、実施形態１と同じため説明を省略する。Ｓ６１１の処理を完了すると、本フローチャートを終了し、再び図５のフローチャートに復帰する。
【００５９】
以上説明した通り、本実施形態におけるドライバのインストール手法によれば、非更新対象のＯｕｔｂｏｘドライバの印刷キューを保持しつつ、更新対象のＯｕｔｂｏｘドライバを更新することができる。
【００６０】
以下、対象デバイス２００について、更新対象のＧＤＩドライバと、非更新対象のＸＰＳドライバとがコンピュータ１００に既にインストールされている場合を具体例として説明する。ＧＤＩドライバおよびＸＰＳドライバは双方Ｏｕｔｂｏｘドライバであり、これらの印刷キューはＷＳＤ通信ポートに割り当てられているものとする。この場合、実施形態１の手法では、非更新対象のＸＰＳドライバが登録済みドライバと一致しないと判定されるので（Ｓ６０７：ＮＯ）、ＸＰＳドライバの印刷キューが削除対象の印刷キーと判定されてしまう。一方、本実施形態の手法では、複数のＯｕｔｂｏｘドライバ（ＧＤＩドライバおよびＸＰＳドライバが含まれる）を考慮した判定処理（Ｓ７０３〜Ｓ７０４）が実行されるため、非更新対象のＸＰＳドライバの印刷キューが削除対象の印刷キーと判定されない。かかる構成により、本実施形態の手法では、非更新対象のＯｕｔｂｏｘドライバの印刷キューを保持しつつ、更新対象のＯｕｔｂｏｘドライバを更新することができる。
【００６１】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６２】
１・・・・情報処理システム
１００・・コンピュータ
２００・・デバイス
４００・・デバイス
１１０・・アプリケーション（インストーラ）
１１１・・デバイス検出部
１１２・・ＴＣＰ／ＩＰデバイス検索部
１１３・・ＷＳＤデバイス検索部
１１４・・ＵＵＩＤ取得部
１１５・・Ｉｎｂｏｘドライバ検出部
１１６・・ＷＳＤデバイス登録部
【図１】
2018194910.tif 000003
【図２】
2018194910.tif 000004
【図３】
2018194910.tif 000005
【図４】
2018194910.tif 000006
【図５】
2018194910.tif 000007
【図６】
2018194910.tif 000008
【図７】
2018194910.tif 000009
【図８】
2018194910.tif 000010