(57)【特許請求の範囲】
【請求項１】
複数のデバイスから構成される周辺装置を接続可能なインタフェース、を備え、
第一のデバイス情報記憶手段と、前記インタフェースに接続された周辺装置内のデバイスを検出し、検出したデバイスに対応するデバイスドライバを取得すると共に、該デバイスに関するデバイス情報を、前記第一のデバイス情報記憶手段に記憶させることにより、該デバイスドライバをオペレーティングシステム内にインストールするインストール手段と、を備えるオペレーティングシステム、
により動作する情報処理装置であって、
前記インストール手段が前記オペレーティングシステム内にインストールするデバイスドライバに対応するインストール対象デバイス、に関するインストール対象デバイス情報を記憶する第二のデバイス情報記憶手段と、
該第二のデバイス情報記憶手段に記憶された前記インストール対象デバイス情報に基づき、前記インストール手段が前記オペレーティングシステム内にインストールするデバイスドライバに対応する前記インストール対象デバイスの数を認識するデバイス数認識手段と、
前記インストール手段によるインストールの進行状況を監視する監視手段と、該監視手段の監視結果、及び前記デバイス数認識手段の認識結果に基づいて、前記インストール手段が実行するデバイスドライバのインストールが全て完了するまでのプロセスの進行度を、表示手段に表示する進行度表示手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記進行度表示手段は、前記進行度として、前記インストール手段が各デバイスに対応するデバイスドライバのインストールを終える度に、前記インストール対象デバイスの内、前記インストール手段がインストールしたデバイスドライバに対応するデバイスの数を、前記デバイス数認識手段が認識した前記インストール対象デバイスの数に対する割合で、表示することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記進行度表示手段は、
前記監視手段の監視結果、及び前記デバイス数認識手段の認識結果に基づいて、前記インストール手段がインストールしたデバイスドライバに対応する各デバイスが、予め設定された複数のクラスのいずれに属するデバイスであるかを識別すると共に、各クラスに属するデバイスに対応する全てのデバイスドライバのインストールが完了したか否か判断する判断手段、を備え、
該判断手段の判断結果に基づいて、前記複数のクラスの内、前記インストール手段によりデバイスドライバのインストールが完了したクラスの数を、前記予め設定されたクラスの数に対する割合で、表示することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記進行度表示手段は、前記進行度をグラフ形式で表示する構成にされ、該進行度を表すグラフの値を所定時間毎に上昇させることにより、所定時間毎に前記進行度を前記表示手段に更新表示する構成にされていることを特徴とする請求項１〜請求項３のいずれかに記載の情報処理装置。
【請求項５】
前記監視手段は、前記第一のデバイス情報記憶手段の記憶内容を参照することにより、前記インストール手段によるデバイスドライバのインストールの進行状況を監視する構成にされていることを特徴とする請求項１〜請求項４のいずれかに記載の情報処理装置。
【請求項６】
前記インストール手段は、検出したデバイス毎に、該デバイスに対応するデバイスドライバを取得すると共に、前記デバイス情報として、該デバイスのドライバ情報をデバイスの識別情報に関連付けて前記第一のデバイス情報記憶手段に書き込んで、該デバイスドライバをインストールする構成にされており、
前記監視手段は、前記インストール手段による前記第一のデバイス情報記憶手段への前記ドライバ情報の登録状況を監視することにより、前記各インストール対象デバイスに対応するデバイスドライバのインストールが完了したか否か判断する構成にされていることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記インストール手段は、前記インタフェースに接続された周辺装置が備える各デバイスの前記識別情報が前記第一のデバイス情報記憶手段に存在するか否かを判断することにより、前記インタフェースに接続された周辺装置内の新規デバイスを検出し、該デバイスに対応するデバイスドライバをインストールする構成にされており、
当該装置は、
前記第二のデバイス情報記憶手段に記憶されているインストール対象デバイス情報に基づいて、前記インストール対象デバイスのドライバ情報が全て前記第一のデバイス情報記憶手段に記憶されているか否か判断し、該ドライバ情報が全て前記第一のデバイス情報記憶手段に記憶されていないと判断すると、前記インストール対象デバイスの前記識別情報を全て前記第一のデバイス情報記憶手段から削除し、前記インストール手段を動作させる初期化手段、
を備えていることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記インストール手段の動作を支援するインストール支援手段、を備えていることを特徴とする請求項１〜請求項７のいずれかに記載の情報処理装置。
【請求項９】
前記インストール支援手段は、前記インストール手段のインストールに必要なデバイスドライバの取得先に関する取得先情報を、該インストール手段に提供することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
請求項１〜請求項６のいずれかに記載の情報処理装置における前記デバイス数認識手段、前記監視手段、及び前記進行度表示手段としての機能を、コンピュータに実現させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラム及び前記インストール対象デバイス情報を備える記録媒体。
【請求項１２】
複数のデバイスから構成される周辺装置を接続可能なインタフェース、を備え、
第一のデバイス情報記憶手段と、前記インタフェースに接続された周辺装置内のデバイスを検出し、検出したデバイスに対応するデバイスドライバを取得すると共に、該デバイスに関するデバイス情報を、前記第一のデバイス情報記憶手段に記憶させることにより、該デバイスドライバをオペレーティングシステム内にインストールするインストール手段と、を備えるオペレーティングシステム、
により動作する情報処理装置において、前記インストール手段が実行するインストールの進行度を表示手段に表示するためのインストール状況表示方法であって、
前記インストール手段が実行するデバイスドライバのインストールの進行状況を監視すると共に、前記インストール手段がインストールするデバイスドライバに対応するインストール対象デバイス、に関するインストール対象デバイス情報に基づき、前記インストール手段によってデバイスドライバがインストールされる該インストール対象デバイスの数を認識し、該監視結果及び認識結果に基づいて、前記インストール手段が実行するデバイスドライバのインストールが全て完了するまでのプロセスにおける該プロセスの進行度を、前記表示手段に表示することを特徴するインストール状況表示方法。
【請求項１３】
前記監視結果及び認識結果に基づき、前記進行度として、前記インストール手段が各デバイスに対応するデバイスドライバのインストールを終える度に、前記インストール対象デバイスの内、前記インストール手段がインストールしたデバイスドライバに対応するデバイスの数を、前記認識結果としての前記インストール対象デバイスの数に対する割合で、表示することを特徴とする請求項１２に記載のインストール状況表示方法。
【請求項１４】
前記進行度を、所定時間毎に上昇させてグラフ形式で前記表示手段に表示することを特徴とする請求項１２又は請求項１３に記載のインストール状況表示方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、新規デバイスを検出し、検出したデバイスに対応するデバイスドライバをオペレーティングシステム内にインストールする情報処理装置、及び、その情報処理装置に用いられるプログラム、及び、記録媒体、及び、インストール状況表示方法に関する。
【０００２】
【従来の技術】
従来より、情報処理装置としては、パーソナルコンピュータが知られている。パーソナルコンピュータは、周知のように周辺装置を後付け可能な装置構成となっており、パーソナルコンピュータ用のオペレーティングシステム（以下、「ＯＳ」とする。）は、周辺装置内のデバイスを駆動制御するためのデバイスドライバを、インストールすることが可能な構成にされている。
【０００３】
パーソナルコンピュータ用ＯＳとしては、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）系ＯＳや、ＵＮＩＸ（登録商標）系ＯＳなどが知られている。これらのＯＳには、ＯＳの基本機能を実現するソフトウェアとしてのカーネルに、デバイスドライバのインストールを補助するインストールプログラムなど、システムを運営するために必要なソフトウェア群が付属している。
【０００４】
近年では、パーソナルコンピュータの普及に伴い、パーソナルコンピュータに関する専門知識を有しないユーザに対して操作性を向上させる必要性から、上記ＯＳには、インタフェースに接続された周辺装置内のデバイスを自動検出するプラグアンドプレイ機能が備えられている。また、Ｗｉｎｄｏｗｓ系ＯＳは、新規デバイスを検出すると、検出したデバイス毎に、デバイスドライバを自動インストール可能なインストールプログラムを起動する構成にされている。
【０００５】
尚、上記インストールプログラムは、必要に応じて、デバイスドライバのインストールの進行状況を、デバイス毎に、表示手段（ディスプレイ等）に表示する構成にされており、ユーザは、表示手段に表示される情報を元に、インストールの進行状況をデバイス毎に確認することができる。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記ＯＳ付属のインストールプログラムは、デバイス毎に起動してインストールを行うので、デバイスドライバのインストールの進行状況をデバイス毎にしか表示手段に表示することができず、複数のデバイスに対してデバイスドライバのインストールが連続して行われる場合、ユーザは、その連続したデバイスドライバのインストールが最終的にいつ完了するのかを把握することができなかった。
【０００７】
例えば、複数のデバイスを内蔵する周辺装置（プリンタやスキャナなどをデバイスとして備えるディジタル複合機など）がパーソナルコンピュータのインタフェースに接続された場合、ＯＳは、一つの周辺装置の接続に対して、複数の新規デバイスを認識し、複数のデバイスに対応するデバイスドライバのインストールをデバイス毎に連続して行う。この際、従来のＯＳ付属のインストールプログラムでは、全デバイスドライバのインストールが完了するまでのプロセスにおけるインストールの進行状況が表示されないため、ユーザは、いつデバイスドライバのインストール処理が完了するのか把握することができないまま、ただインストール処理が終了するのを待つしかなかった。したがって、従来では、ユーザが、長時間のインストール処理に対して、苛立ちを覚えることがあった。
【０００８】
本発明は、こうした問題に鑑みなされたものであって、複数のデバイスに関するデバイスドライバのインストールが連続して行われる際に、それら全体のインストールの進行状況を表示することが可能な情報処理装置、及びプログラム、及び記録媒体、及びインストール状況表示方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
かかる目的を達成するためになされた請求項１に記載の発明は、複数のデバイスから構成される周辺装置を接続可能なインタフェース、を備える情報処理装置であって、そのインタフェースに接続された周辺装置内のデバイスに関するデバイス情報を記憶するための第一のデバイス情報記憶手段と、インタフェースに接続された周辺装置内のデバイスを検出し、検出したデバイスに対応するデバイスドライバを取得すると共に、そのデバイスに関するデバイス情報を、第一のデバイス情報記憶手段に記憶させることにより、デバイスドライバをオペレーティングシステム内にインストールするインストール手段と、を備えるオペレーティングシステム、により動作する情報処理装置に、第二のデバイス情報記憶手段と、デバイス数認識手段と、監視手段と、進行度表示手段と、を設けたことを特徴とする。
【００１０】
第二のデバイス情報記憶手段には、インストール手段がオペレーティングシステム内にインストールするデバイスドライバに対応するインストール対象デバイス、に関するインストール対象デバイス情報が記憶されており、デバイス数認識手段は、第二のデバイス情報記憶手段に記憶されたそのインストール対象デバイス情報に基づき、インストール手段がオペレーティングシステム内にインストールするデバイスドライバに対応するインストール対象デバイスの数を認識する。
【００１１】
また、監視手段は、インストール手段によるインストールの進行状況を監視する。そして、進行度表示手段は、監視手段の監視結果、及びデバイス数認識手段の認識結果に基づいて、インストール手段が実行するデバイスドライバのインストールが全て完了するまでのプロセスの進行度を、表示手段に表示する。
【００１２】
このように構成された請求項１に記載の情報処理装置においては、インストール手段が連続して行うインストール対象デバイスに対応する全デバイスドライバのインストールが完了するまでのプロセスの進行度を、表示手段に表示することができるので、インタフェースに接続された周辺装置に関するデバイスドライバのインストールがどの程度完了しているかを、その進行度でユーザに示すことができる。
【００１３】
結果、本発明の情報処理装置によれば、複数のデバイスに関して連続してインストール処理が行われる場合に、その連続したインストール処理がいつ完了するのかわからないことに起因してユーザが苛立ちを覚えるのを防止することができる。
【００１４】
尚、請求項１に記載の情報処理装置におけるインタフェースは、上記構成に加えて単一のデバイスから構成される周辺装置を接続可能な構成にされていてもよいし、複数の周辺装置を接続可能な構成にされていてもよい。またインストール手段は、複数の周辺装置内の各デバイスを連続して検出し、その検出したデバイスに関するデバイスドライバのインストールを連続して行う構成にされいてもよい。
【００１５】
また、請求項１に記載の情報処理装置における進行度表示手段は、請求項２に記載のように構成されていると良い。
請求項２に記載の情報処理装置における進行度表示手段は、インストール手段が各デバイスに対応するデバイスドライバのインストールを終える度に、上記進行度として、上記インストール対象デバイスの内、インストール手段がインストールしたデバイスドライバに対応するデバイスの数を、上記デバイス数認識手段が認識したインストール対象デバイスの数に対する割合で、表示する構成にされている。
【００１６】
このように構成された請求項２に記載の情報処理装置によれば、インストールの全体のプロセスの進行度を表示しつつ、デバイス毎に、そのデバイスに対応したデバイスドライバのインストールが完了したことを、その進行度でユーザに示すことができる。
【００１７】
この他、請求項１に記載の情報処理装置においては、進行度表示手段を、請求項３に記載のように構成してもよい。
請求項３に記載の情報処理装置における進行度表示手段は、上記監視手段の監視結果、及び上記デバイス数認識手段の認識結果に基づいて、インストール手段がインストールしたデバイスドライバに対応する各デバイスが、予め設定された複数のクラスのいずれに属するデバイスであるかを識別すると共に、各クラスに属するデバイスに対応する全てのデバイスドライバのインストールが完了したか否か判断する判断手段、を備えており、判断手段の判断結果に基づいて、複数のクラスの内、インストール手段によりデバイスドライバのインストールが完了したクラスの数を、予め設定されたクラスの数に対する割合で、表示する構成にされている。
【００１８】
このように構成された請求項３に記載の情報処理装置においては、各クラスに属するデバイスに対応した全デバイスドライバのインストールが完了する度に、デバイスドライバのインストールの進行度を、一定量増加させて表示することができるので、各クラスに対応するデバイスドライバのインストールが完了したことを、全体のプロセスの進行度と共に、ユーザに示すことができる。
【００１９】
また、請求項１〜請求項３のいずれかに記載の情報処理装置においては、進行度表示手段を請求項４に記載のように構成すると良い。請求項４に記載の進行度表示手段は、進行度をグラフ形式で表示する構成にされており、進行度を表すグラフの値を所定時間毎に上昇させることにより、所定時間毎に進行度を表示手段に更新表示する構成にされている。
【００２０】
監視手段がインストールの進行状況を把握するまでには、一定度の時間を要する。したがって、監視手段による監視結果に基づいて、正確なインストールの進行度だけを表示手段に表示しようとすると、進行度が長時間更新されない事態が発生する可能性がある。そして、進行度が長時間更新されないと、インストールが正常に進行しているか否かに対してユーザが不安を覚える可能性がある。
【００２１】
請求項４に記載のように、進行度表示手段が、所定時間毎に進行度を表すグラフの値を所定時間毎に上昇させる構成であると、そのグラフの変化により、ユーザにインストールが進行していることを示すことができ、ユーザがインストールが正常に進行しているか否かに不安を覚えるのを防止することができる。
【００２２】
また、インストール手段がデバイスドライバのインストール時にデバイス情報を第一のデバイス情報記憶手段に登録する請求項１〜請求項４のいずれかに記載の情報処理装置においては、具体的に請求項５に記載のように監視手段を構成することにより、インストール手段の進行状況を監視することができる。
【００２３】
請求項５に記載の情報処理装置における監視手段は、第一のデバイス情報記憶手段の記憶内容を参照することにより、インストール手段によるデバイスドライバのインストールの進行状況を監視する構成にされている。
このような構成の情報処理装置においては、インストール手段の動作を直接監視しなくても良いので、監視手段の構成を簡単にすることができる。
【００２４】
この他、インストール手段が、検出したデバイス毎に、そのデバイスに対応するデバイスドライバを取得すると共に、上記デバイス情報として、そのデバイスのドライバ情報をデバイスの識別情報に関連付けて第一のデバイス情報記憶手段に書き込んで、デバイスドライバをインストールする構成にされている情報処理装置においては、上記監視手段を、請求項６に記載のように構成すると良い。
【００２５】
請求項６に記載の情報処理装置における監視手段は、インストール手段による第一のデバイス情報記憶手段へのドライバ情報の登録状況を監視することにより、各インストール対象デバイスに対応するデバイスドライバのインストールが完了したか否か判断する構成にされている。請求項６に記載の情報処理装置においては、デバイスドライバに関するドライバ情報の登録状況を参照するので、デバイスドライバのインストールが適切に完了したか否か判断することができる。
【００２６】
この他、上記インストール手段が、上記インタフェースに接続された周辺装置が備える各デバイスの識別情報が第一のデバイス情報記憶手段に存在するか否かを判断することにより、インタフェースに接続された周辺装置内の新規デバイスを検出し、検出した新規デバイスに対応するデバイスドライバをインストールする構成にされている場合には、請求項７に記載のように初期化手段を装置内に設けるのがよい。
【００２７】
従来より知られているように、上記構成にされたインストール手段を備えるオペレーティングシステムでは、デバイスドライバが一度インストールされると、デバイスドライバが適切なものであるか否かにかかわらず、デバイスドライバがインストールされたとの認識により、再度のデバイスドライバのインストールが、自動で行われなくなってしまう。このため、従来では、間違ったデバイスドライバがインストールされた場合、デバイスドライバのアンインストール操作をユーザに手動で行わせていた。しかしながら、不慣れなユーザに、手動でデバイスドライバのアンインストール操作を適切に行わせるのは、難しい。
【００２８】
請求項７に記載のように、初期化手段が、第二のデバイス情報記憶手段に記憶されているインストール対象デバイス情報に基づいて、インストール対象デバイスのドライバ情報が全て第一のデバイス情報記憶手段に記憶されているか否か判断し、該ドライバ情報が全て第一のデバイス情報記憶手段に記憶されていないと判断すると、インストール対象デバイスの識別情報を全て第一のデバイス情報記憶手段から削除し、インストール手段を動作させる情報処理装置においては、初期化手段が適切にインストール対象デバイスの識別情報を一旦削除するので、不慣れなユーザに、デバイスドライバのアンインストール操作を手動で行わせなくて済み、インストール手段に、再度デバイスドライバのインストールを実行させることができる。
【００２９】
請求項８に記載の情報処理装置は、インストール手段の動作を支援するインストール支援手段、を備えていることを特徴とする。このようなインストール支援手段を設ければ、インストール支援手段側から、インストール手段の動作に必要な情報等を提供することができる。
【００３０】
請求項９に記載の情報処理装置は、上記インストール支援手段が、上記インストール手段のインストールに必要なデバイスドライバの取得先に関する取得先情報を、該インストール手段に提供することを特徴とする。
このように構成された請求項９に記載の情報処理装置においては、インストール支援手段が、適切なデバイスドライバの取得先情報をインストール手段に提供するので、インストール手段を支援して、デバイスドライバのインストールを適切にインストール手段に行わせることができる。
【００３１】
ところで、請求項１〜請求項６のいずれかに記載の情報処理装置における上記デバイス数認識手段、上記監視手段、及び上記進行度表示手段としての機能は、コンピュータ上で実現することが可能である。
請求項１０に記載のように、請求項１〜請求項６のいずれかに記載の情報処理装置における上記デバイス数認識手段、上記監視手段、及び上記進行度表示手段としての機能を、コンピュータに実現させるためのプログラムを、上記オペレーティングシステムにより動作する情報処理装置が備えるコンピュータに実行させれば、請求項１〜請求項６に記載の情報処理装置と同様の効果を得ることができる。また、請求項１１に記載のように、請求項１０に記載のプログラム及び上記インストール対象デバイス情報を記録媒体に記録してもよい。
【００３２】
この他、請求項７に記載の情報処理装置における上記初期化手段、上記デバイス数認識手段、上記監視手段、及び上記進行度表示手段としての機能を、コンピュータに実現させるためのプログラムを、上記オペレーティングシステムにより動作する情報処理装置が備えるコンピュータに実行させれば、請求項７に記載の情報処理装置と同様の効果を得ることができる。そして、このプログラム及びインストール対象デバイス情報を備える記録媒体をユーザに提供すれば、ユーザに簡単に周辺装置のデバイスドライバのインストール操作を行わせることができる。
【００３３】
また、請求項７に記載の情報処理装置における上記初期化手段、上記デバイス数認識手段、上記監視手段、及び上記進行度表示手段としての機能を、コンピュータに実現させるためのプログラムに、請求項８又は請求項９に記載の情報処理装置におけるインストール支援手段としての機能をコンピュータに実現させるためのプログラムを組み込んで、そのプログラムを上記オペレーティングシステムにより動作する情報処理装置が備えるコンピュータに実行させれば、請求項８又は請求項９に記載の情報処理装置と同様の効果を得ることができる。そして、このプログラム及びインストール対象デバイス情報を備える記録媒体をユーザに提供すれば、ユーザに適切なデバイスドライバのインストール操作を行わせることができる。
【００３４】
請求項１２に記載の発明は、複数のデバイスから構成される周辺装置を接続可能なインタフェース、を備え、第一のデバイス情報記憶手段と、インタフェースに接続された周辺装置内のデバイスを検出し、検出したデバイスに対応するデバイスドライバを取得すると共に、そのデバイスに関するデバイス情報を、第一のデバイス情報記憶手段に記憶させることにより、デバイスドライバをオペレーティングシステム内にインストールするインストール手段と、を備えるオペレーティングシステム、により動作する情報処理装置において、インストール手段が実行するインストールの進行度を表示手段に表示するためのインストール状況表示方法であって、インストール手段が実行するデバイスドライバのインストールの進行状況を監視すると共に、インストール手段がインストールするデバイスドライバに対応するデバイスであるインストール対象デバイスに関するインストール対象デバイス情報に基づき、インストール手段によってデバイスドライバがインストールされるインストール対象デバイスの数を認識し、その監視結果及び認識結果に基づいて、インストール手段が実行するデバイスドライバのインストールが全て完了するまでのプロセスにおける該プロセスの進行度を、表示手段に表示することを特徴とする。
【００３５】
請求項１２に記載のインストール状況表示方法によれば、請求項１に記載の情報処理装置と同様に、全体のインストールの進行状況を表示することができ、連続したインストール手段の動作がいつ完了するのかわからないことに起因してユーザが苛立ちを覚えるのを防止することができる。
【００３６】
請求項１３に記載の発明は、請求項１２に記載のインストール状況表示方法において、上記監視結果及び認識結果に基づき、進行度として、インストール手段が各デバイスに対応するデバイスドライバのインストールを終える度に、インストール対象デバイスの内、インストール手段がインストールしたデバイスドライバに対応するデバイスの数を、上記認識結果としてのインストール対象デバイスの数に対する割合で、表示することを特徴とする。
【００３７】
請求項１３に記載のインストール状況表示方法によれば、請求項２に記載の情報処理装置と同様に、インストールの全体のプロセスの進行度を示しつつ、デバイス毎に、そのデバイスに対応したデバイスドライバのインストールが完了したことを、その進行度でユーザに示すことができる。
【００３８】
請求項１４に記載の発明は、請求項１２又は請求項１３に記載のインストール状況表示方法において、上記進行度を、所定時間毎に上昇させてグラフ形式で表示手段に表示することを特徴とする。請求項１４に記載のインストール状況表示方法によれば、請求項４に記載の情報処理装置と同様に、グラフ変化により、ユーザにインストールが進行していることを示すことができ、インストールが正常に進行しているか否かにユーザが不安を覚えるのを防止することができる。
【００３９】
【発明の実施の形態】
以下に本発明の実施例について、図面とともに説明する。図１は、本実施例で用いられるパーソナルコンピュータ（以下、「ＰＣ」とする。）の構成を表した概略ブロック図である。
【００４０】
図１に示す本実施例のＰＣ１０は、周知のＰＣと同様に、装置全体を統括制御するＣＰＵ１１や、半導体製メモリとしてのＲＯＭ１２、ＲＡＭ１３などを備えている。また、このＰＣ１０は、デバイスを内蔵する周辺装置を接続するためのインタフェース１４、表示部１６（ディスプレイ等）、ユーザインタフェースとしての入力部１７（キーボードやマウス等）、ストレージ装置としてのハードディスクドライブ１８、コンパクトディスク（ＣＤ）２０内のデータを読出可能なＣＤドライブ１９、などを備えている。
【００４１】
具体的に説明すると、当該ＰＣ１０には、ハードディスクドライブ１８内に、当該コンピュータを管理・運営するためのＯＳとして、マイクロソフト社のＷｉｎｄｏｗｓがインストールされている。即ち、当該ＰＣ１０は、電源投入後、Ｗｉｎｄｏｗｓを起動し、このＯＳ４２により動作する。また上記インタフェース１４は、複数のデバイスから構成される周辺装置を接続可能なインタフェースとしてのパラレルインタフェースや、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  ＳｅｒｉａｌＢｕｓ）インタフェース、ＩＥＥＥ１３９４インタフェース、などから構成されている。
【００４２】
ところで、このようなインタフェース１４に外部から周辺装置を接続して、その周辺装置内のデバイスをＰＣ１０側から制御しようとする場合には、そのデバイスをＰＣ１０から駆動制御するためのデバイスドライバを、ＯＳ４２内に組み込む必要がある。
【００４３】
本実施例のＰＣ１０は、図２に示すように、インタフェース１４に接続された周辺装置内のデバイスを検出する接続検出部４１としての機能及びＯＳ４２としての機能をＣＰＵ１１上で実現する構成にされており、接続検出部４１の検出結果に基づき、ＯＳ４２内のプラグアンドプレイ処理部４３にて新規デバイスを検出し、その新規デバイスに関して、デバイスドライバをＯＳ４２内部に組み込むためのドライバインストールモジュール４４を実行することにより、ユーザに手動でデバイスドライバをインストールさせることなく、自動でそのデバイスドライバのインストールを行う。
【００４４】
尚、図２は、ＰＣ１０内のＣＰＵ１１が実行する各種処理によりＣＰＵ１１内で実現される各機能の構成を表したブロック図である。以上の記述からも理解できるように、本実施例のＯＳ４２（Ｗｉｎｄｏｗｓ）は、プラグアンドプレイ処理部４３としての機能（所謂、プラグアンドプレイ機能）をＣＰＵ１１に実現させるためのプログラムを、付属アプリケーションとして備えており、このプログラムを実行することにより、自動でそのデバイスドライバのインストールを行う。
【００４５】
具体的に説明すると、ＯＳ４２は、上記接続検出部４１にてインタフェース１４に接続された周辺装置内のデバイスを検出しつつ、接続検出部４１の検出結果と、自身が管理するレジストリ４５の記憶内容に基づき、プラグアンドプレイ処理部４３にて、新規デバイスが接続されたか否か判断する。
【００４６】
レジストリ４５は、図３に示すように、デバイステーブル４６、及び、そのデバイステーブル４６に列挙されたデバイス毎のレジストリ情報４７、などから構成されており、接続検出部４１の検出結果に基づくプラグアンドプレイ処理部４３の動作により逐次更新されている。
【００４７】
デバイステーブル４６には、デバイスの識別情報であるデバイスハンドルがデバイス毎に記述されており、上記レジストリ情報４７は、このデバイスハンドルに関連付けられて記憶されている。
レジストリ情報４７は、パラメータ”ＤｅｖｉｃｅＤｅｓｃ”のデータ値、パラメータ”ＨａｒｄｗａｒｅＩＤ”のデータ値、パラメータ”Ｄｒｉｖｅｒ”のデータ値、などから構成されている。予め説明しておくが、プラグアンドプレイ処理部４３の動作によりデバイスドライバがインストールされると、該デバイスドライバに対応するデバイスに関するレジストリ情報として、パラメータ”ＤｅｖｉｃｅＤｅｓｃ”には、デバイス名称を表すデータ値が与えられ、パラメータ”ＨａｒｄｗａｒｅＩＤ”には、ハードウェアＩＤ（ＰｎＰＩＤとも言う。）が上記データ値として与えられ、パラメータ”Ｄｒｉｖｅｒ”には、デバイスを駆動制御するためのデバイスドライバをＯＳ４２内で読み出すためのドライバ識別情報（ドライバＩＤ）が上記データ値として与えられる。
【００４８】
続いてプラグアンドプレイ処理部４３の動作について図４を用いて説明する。図４は、ＣＰＵ１１上のＯＳ４２が、プラグアンドプレイ処理部４３として機能するために実行するプラグアンドプレイ処理を表すフローチャートである。
ＯＳ４２は、接続検出部４１からデバイスの接続状態に変化等があったことを示すイベント信号の入力があると、プラグアンドプレイ処理を実行する。処理を実行するとＯＳ４２は、まずＳ１１０にて、接続検出部４１によるデバイスの検出結果を取得し、その検出結果に基づいてレジストリ４５内のデバイステーブル４６を更新し、ＰＣ１０にインターフェース１４等を介して接続されているデバイスをデバイステーブル４６に列挙する。また、ＯＳ４２は、更新前のデバイステーブル４６に列挙されていなかったデバイスハンドルが、その更新により列挙されると、新規デバイスがインタフェース１４に接続されたと判断する（Ｓ１２０でＹｅｓ）。つまり、以前存在しなかったデバイスハンドルがデバイステーブル４６に追加されると、ＯＳ４２は、Ｓ１２０にて、新たに追加されたデバイスハンドルに対応する周辺装置内のデバイスを、新規デバイスとして検出する。そして、検出した新規デバイスに対応するデバイスドライバの取得先を表すパス情報の入力を外部タスクに要求する（Ｓ１３０）。
【００４９】
ここで外部タスクからパス情報が入力されないと、ＯＳ４２は、Ｓ１４０でＮｏと判断し、対話式でユーザにパス情報を求めるプログラム、所謂インストールウィザードを立ち上げて、ユーザ操作による入力部１７からの入力信号に基づくパス情報を取得する（Ｓ１５０）。この後、Ｓ１６０にて、ドライバインストールモジュール４４を実行し、パス情報に対応する場所に保存されているデバイスドライバインストール用の定義ファイル（所謂ＩＮＦファイル）を読み出し、この定義ファイルの記述内容に基づいてデバイスドライバを取得すると共に、上記定義ファイルに記述されたデバイスドライバに関するドライバ情報を、上記レジストリ情報として、対応するデバイスハンドルに関連付けて書き込むことによって、デバイスドライバをＯＳ４２内にインストールする。
【００５０】
尚、この際には、上記定義ファイルに記述されたドライバ情報に従って、パラメータ”ＤｅｖｉｃｅＤｅｓｃ”に、そのデバイスのドライバ情報としての上記デバイス名称が書き込まれ、パラメータ”Ｄｒｉｖｅｒ”に、上記ドライバ識別情報が書き込まれる。
【００５１】
一方、ＯＳ４２は、Ｓ１４０にて外部タスクからパス情報が取得できたと判断すると、Ｓ１６０でデバイスドライバをインストールした後に、処理を再びＳ１２０に戻し、上記Ｓ１１０によるデバイステーブル更新で新たに追加されたデバイスであってＳ１３０以降の処理を行っていない新規デバイスがあると判断すると（Ｓ１２０でＹｅｓ）、そのデバイスについて上述のようにＳ１３０〜Ｓ１６０までの処理を実行する。そして、新規デバイスがないと判断すると（Ｓ１２０でＮｏ）、当該処理を終了する。
【００５２】
以上のようにして本実施例のＰＣ１０は、プラグアンドプレイ機能により新規に接続されたデバイスに対応するデバイスドライバを、デバイス毎に、ＯＳ４２内にインストールするのであるが、ＯＳ４２によるプラグアンドプレイ処理部４３の動作だけでは、ユーザがデバイスドライバを正確にインストールすることが難しい場合がある。
【００５３】
例えば、上記プラグアンドプレイ処理のＳ１３０でパス情報をリクエストしてパス情報を取得できなければ、ＯＳ４２は、ユーザに対話形式でパス情報の入力を求めることになるが、この際、ユーザが必ずしもデバイスに真に適合するデバイスドライバのパス情報を入力するとは限らない。このような場合には、一応のデバイスドライバのインストールは完了するものの、そのデバイスドライバが対応するデバイスに適合しないため、実質的に、そのデバイスをＰＣ１０側から駆動制御できないことになる。
【００５４】
このため、近年では一般的に、上記プラグアンドプレイ処理のＳ１３０のリクエストに対して、その正確なデバイスドライバのパス情報を入力することのできるセットアッププログラム（以下、「インストーラ」と表現する。）が、そのデバイスドライバ本体と共に、周辺装置の販売元から、ＣＤやフレキシブルディスク、インターネット経由でユーザに提供されていることが多い。
【００５５】
本発明の主な手段は、ＣＰＵ１１によるインストーラの実行によって実現されており、以下では、図１に示すディジタル複合機５０（以下、「ＭＦＤ５０」とする。）に対応したデバイスドライバをＯＳ４２内にインストールするためのインストーラ６０について説明する。尚、図１に示すＭＦＤ５０は、原稿を画像データとして読み取るためのスキャナ、印刷データ（ＰＤＬデータ等）に基づく画像を用紙上に印刷して形成するプリンタ、外部ネットワークと双方向通信を行うためのモデムなど、複数のデバイスを備える周辺装置である。
【００５６】
図５及び図６は、インストール操作処理を表すフローチャートである。ＣＰＵ１１は、インストーラ６０及びデバイス情報ファイル６１などが記憶されたＣＤ２０がＣＤドライブ１９内に挿入されると、そのインストーラ６０を起動し、インストーラ６０にて、図５及び図６に示すインストール操作処理を行う。
【００５７】
インストーラ６０は、まずＳ２１０にて、ＣＤ２０に格納されたデバイス情報ファイル６１をＣＤドライブ１９経由で読み出し、上記プラグアンドプレイ処理部４３にデバイスドライバをインストールさせるべきデバイス（以下、「インストール対象デバイス」とする。）に関するインストール対象デバイス情報を取得し、これをＲＡＭ１３内に記憶する（Ｓ２２０，Ｓ２３０）。図７は、デバイス情報ファイル６１の構成を表す説明図である。図７に示すように、デバイス情報ファイル６１には、プラグアンドプレイ処理部４３にデバイスドライバをインストールさせるべきデバイスの名称及びハードウェアＩＤがインストール対象デバイス情報として互いに関連付けられて記憶されている。
【００５８】
即ち、インストーラ６０は、デバイス情報ファイルに列挙された全デバイスに関して、デバイス名称及びハードウェアＩＤを取得し（Ｓ２２０）、更にＳ２３０にて、そのデバイス情報ファイル６１に列挙されたインストール対象デバイスの数を表すデバイス数情報を取得し、このデバイス数情報に基づき、インストール対象デバイスの数を表すｉ値を設定する。尚、本実施例においては、直接デバイス情報ファイル６１から上記デバイス数情報としてのインストール対象デバイス数を取得させ、これをｉ値として設定させることにより、インストール対象デバイスの数をインストーラ６０に認識させているが、例えば、インストーラ６０に、デバイス情報ファイルに列挙されたデバイスの数をカウントさせて、このカウント値をｉ値として設定させることにより、インストール対象デバイスの数をインストーラ６０に認識させてもよい。
【００５９】
この後、インストーラ６０は、ＯＳ４２側にデバイステーブル４６の更新指令を入力して（Ｓ２４０）、ＯＳ４２にデバイステーブル４６を更新させる。この更新によりデバイステーブル４６には、ＰＣ１０に接続されたデバイスを表すデバイスハンドルが列挙される。つまり、デバイステーブル４６が有する情報は、現在のデバイスの接続状態を表す最新の情報に更新される。
【００６０】
Ｓ２４０の処理を終えると、インストーラ６０は、Ｓ２５０にて、「チェック」及び「削除」のいずれか一方の値をとるフラグの値を「チェック」にセットし、この後に、デバイスチェック処理を実行する（Ｓ２６０）。図８は、デバイスチェック処理を表すフローチャートである。
【００６１】
このデバイスチェック処理を実行すると、インストーラ６０は、まずＳ５１０にて、ＯＳ４２に、デバイステーブル４６内のデバイスハンドルを返すように要求する。このように要求すると、ＯＳ４２がデバイステーブル４６に列挙された全てのデバイスハンドルを返してくるため、インストーラ６０は、Ｓ５２０で、ＯＳ４２側から入力されてきた全デバイスハンドルを取得する。
【００６２】
この後、インストーラ６０は、Ｓ５３０にて、デバイスドライバをインストール済みのデバイス数をカウントするためのｋ値を初期化してゼロに設定し（ｋ＝０）、Ｓ５４０にて、先の処理（Ｓ５２０）で取得したデバイスハンドルの内、最初のデバイスハンドルに対応するレジストリ情報４７としてレジストリ４５内に格納されているパラメータＤｅｖｉｃｅＤｅｓｃのデータ値を返すようにＯＳ４２側に要求する。そして、ＯＳ４２側から、そのＤｅｖｉｃｅｄｅｓｃのデータ値を取得する（Ｓ５５０）。
【００６３】
続いて、インストーラ６０は、取得したＤｅｖｉｃｅｄｅｓｃのデータ値と、デバイス情報ファイル６１から読み出したデバイス名称とを照合する（Ｓ５６０）。そして、両者が合致しなければ処理をＳ６００に移し、デバイス情報ファイル６１に記述されたデバイスの全てを対象に、Ｓ５６０での照合を行ったかどうかを判断する。尚、インストーラ６０は、Ｓ５６０において、両者が完全に合致しない場合であっても、デバイス名称がＤｅｖｉｃｅＤｅｓｃのデータ値に含まれていれば、両者が合致したと判断するように構成されている。
【００６４】
また、Ｓ６００において、全デバイスを対象にＳ５６０での照合を行っていないと判断すると、インストーラ６０は、処理をＳ６１０に移して、Ｓ５２０で取得したデバイスハンドルの内、まだ未照合のデバイスハンドルを一つ選択し、ＯＳ４２側に、このデバイスハンドルに対応するＤｅｖｉｃｅＤｅｓｃのデータ値を返すように要求する（Ｓ６１０）。
【００６５】
そして再び処理をＳ５５０に移して、ＤｅｖｉｃｅＤｅｓｃのデータ値を取得し、Ｓ５６０にてその取得値がデバイス情報ファイル６１から取得したデバイス名称のいずれかと合致するか否か判断する。そして、合致すると判断すると、Ｓ５７０にて、フラグの値が「チェック」であるかそれとも「削除」であるか判断する。尚、Ｓ２６０にて実行されるデバイスチェック処理においては、予めＳ２５０にてフラグの値が「チェック」に設定されているので、インストーラ６０は、Ｓ５８０に処理を移し、ｋ値を１増加させる（ｋ＝ｋ＋１）。この後処理を、Ｓ６００に移して、再び上記判断を行い、デバイス情報ファイル６１内に列挙された全てのデバイスについて照合を行っている場合（Ｓ６００でＹｅｓ）には当該デバイスチェック処理を終了する。
【００６６】
Ｓ２６０にて上記デバイスチェック処理を終えると、インストーラ６０は、Ｓ２７０にて、デバイス情報ファイル６１に列挙されているインストール対象デバイスの数を表すｉ値が、既にデバイスドライバがインストール済みであるインストール対象デバイスの数を表すｋ値に一致するか否か（即ち、ｉ＝ｋであるか否か）判断し、一致したらインストールが全て終了したと判断して当該処理を終了し、一致しないと判断すると、処理をＳ２８０に移す。
【００６７】
そして、インストーラ６０は、フラグの値を「削除」に設定し（Ｓ２８０）、再びデバイスチェック処理（図８）を実行する（Ｓ２９０）。デバイスチェック処理を実行すると、インストーラ６０は、先程と同様にＳ５５０からＳ６１０までの処理を繰り返し、先程ｋ値をカウントする契機となったデバイスに関するＤｅｖｉｃｅＤｅｓｃの値を取得すると、Ｓ５６０でＹｅｓと判断する。
【００６８】
この後、インストーラ６０は、Ｓ５７０でフラグの値が「削除」であると判断し、そのデバイスに関する情報（レジストリ情報及びデバイスハンドル）を全てレジストリから削除する（Ｓ５９０）。このような処理を先程ｋ値をカウントする契機となったデバイス全てに関して行うと、インストーラ６０は、Ｓ６００でＹｅｓと判断して、デバイスチェック処理を終了する。この動作により、インストーラ起動以前において、ＯＳ４２内にインストールされたＭＦＤ５０に関するデバイスドライバは全てアンインストールされる。
【００６９】
Ｓ２９０での処理が終了すると、インストーラ６０は再びフラグの値を「チェック」にセットし（Ｓ３００）、この後に、周辺装置（ＭＦＤ５０）のインタフェース１４への接続を促すメッセージを表示部１６の画面上に表示する（Ｓ３１０）。
【００７０】
次に、インストーラ６０は、Ｓ３２０で、ユーザの操作よりインストールのキャンセル指令が入力部１７から入力されたか否か判断し、入力されていなければ、Ｓ３３０で、周辺装置（ＭＦＤ５０）がインタフェース１４に接続されたか否か判断する。そして、接続されたと判断すると（Ｓ３３０でＹｅｓ）、Ｓ３４０にて、先程表示部１６に表示したメッセージを画面上から消去し、この後に、図９に示す表示制御処理（詳しくは後述）の実行を開始する（Ｓ３５０）。尚、この表示制御処理は、当該処理に並行してインストーラ６０により実行される。またＯＳ４２は、周辺装置（ＭＦＤ５０）がインタフェース１４に接続されると、上述のようにプラグアンドプレイ処理を開始する。
【００７１】
Ｓ３５０の処理実行後において、インストーラ６０は、表示制御処理を終了するまでの間、Ｓ３６０でＮｏと判断して、ＯＳ４２側がパス情報をリクエストしているか否か判断し（Ｓ３７０）、リスエストがされていると判断すると、Ｓ３８０にて、そのリクエストに対応するデバイスのデバイスドライバとして、プラグアンドプレイ処理部４３にインストールさせるべきデバイスドライバの取得先を表すパス情報を、リクエスト元のタスク（上記プラグアンドプレイ処理部４３）に入力して提供する。
【００７２】
このようにパス情報を入力すると、プラグアンドプレイ処理部４３では、そのデバイスについてドライバインストールモジュール４４が動作し、そのデバイスに対応したデバイスドライバのインストールが実行される。尚、プラグアンドプレイ処理部４３は、ＭＦＤ５０内の複数のデバイスＤｅｖ１，Ｄｅｖ２，Ｄｅｖ３，…の夫々に関して、ドライバインストールモジュール４４を動作させるから、そのＭＦＤ５０内の各デバイスＤｅｖ１，Ｄｅｖ２，Ｄｅｖ３，…に対応したデバイスドライバのインストールは、当該インストーラ６０からのパス情報の入力により、連続して行われる。
【００７３】
また、プラグアンドプレイ処理部４３により周辺装置（ＭＦＤ５０）内のデバイスに対応するデバイスドライバが連続してインストールされている間においては、並行動作する表示制御処理によりインストールの進行度が表示部１６の画面上に表示される。尚、図９は、インストーラ６０が実行する表示制御処理を表すフローチャートである。また図１０は、表示制御処理動作中に、表示部１６の画面上に表示されるウィンドウ７０の構成を表す説明図（ａ）と、そのウィンドウ７０内に表示されるインストールの進行度を表す棒グラフの態様を示す説明図（ｂ）である。
【００７４】
表示制御処理を実行すると、インストーラ６０は、内蔵のタイマ（図示せず）を初期化し（Ｓ７１０）、周辺装置（ＭＦＤ５０）が内蔵するインストール対象デバイスに対応する全てのデバイスドライバのインストールが完了するまでのプロセスの進行度（即ち、インストールの進行度）を表示するためのＤ値をゼロ（Ｄ＝０）に設定する（Ｓ７２０）。この後インストーラ６０は、Ｄ値を表示するためのウィンドウ７０を図１０に示すように表示部１６の画面上に表示し（Ｓ７３０）、ウィンドウ７０上にそのＤ値をグラフ形式及び数字形式で表示する。
【００７５】
図１０に示すように、ウィンドウ７０は、デバイスドライバがインストール中であることを示すメッセージを表示するための領域７０ａ、インストールの進行度を棒グラフ形式で表示するための領域７０ｂ、インストールの進行度を数字で表示するための領域７０ｃ、などから構成されている。尚、本実施例では、ウィンドウ７０に、社名（図中「Ｂ−ｓｙａ」）を表示することにより、インストールがどの機器に対応したものであるのかをユーザに示しているが、ウィンドウ７０にインストール対象デバイスの機器名等を表示してインストールに関するより詳細な情報をユーザに提供してもよい。
【００７６】
上記ウィンドウ７０の表示後、インストーラ６０は、タイマが予め定めた上限値を越えた値を示しているか（即ち、タイムアウトしているか）否か判断し（Ｓ７４０）、タイマが上限値を越えた値を示していれば、Ｓ８２０にて、ウィンドウ７０を表示部１６の画面上から消去し、この後に当該表示制御処理を終了する。尚、上限値は、ＯＳ４２側がデバイスドライバのインストールを正常に実行していないと概ね推定できる時間に設定されている。
【００７７】
一方、タイムアウトしていないと判断すると、インストーラ６０は、処理をＳ７５０に移して、デバイスチェック処理を実行する。尚、このデバイスチェック処理の実行時において、フラグの値は「チェック」にセットされている。
Ｓ７５０でデバイスチェック処理を実行すると、インストーラ６０は、上述のように、各デバイスハンドルに対応したＤｅｖｉｃｅＤｅｓｃのデータ値を取得し、Ｓ５６０にて、取得したＤｅｖｉｃｅＤｅｓｃのデータ値がデバイス情報ファイル６１内に記述されたデバイス名称のいずれかと合致するか否か判断することにより、プラグアンドプレイ処理部４３によるインストールの進行状況を監視する。尚、インストーラ６０は、Ｓ５６０において、両者が完全に合致しない場合であっても、デバイス名称がＤｅｖｉｃｅＤｅｓｃのデータ値に含まれていれば、両者が合致したと判断する構成にされている。
【００７８】
上記Ｓ２９０でのデバイスチェック処理により、デバイス情報ファイル６１内に記述されたデバイスに関する情報は、プラグアンドプレイ処理部４３によるデバイスドライバのインストール前に、一旦レジストリ４５から削除されているから、Ｓ２９０の処理後におけるプラグアンドプレイ処理部４３の動作により、パラメータＤｅｖｉｃｅＤｅｓｃにデバイス名称を表すデータ値が書き込まれると、上記Ｓ５６０でのＹｅｓとの判断により、Ｓ５８０でｋ値が１増加する。
【００７９】
即ち、Ｓ７５０で実行されるデバイスチェック処理では、インストールが完了したデバイスの回数だけＳ５６０でＹｅｓとの判断がインストーラ６０によってなされ、Ｓ５８０でｋ値がカウントされる。したがって、インストーラ６０は、デバイスチェック処理（Ｓ７５０）の終了後に、ｋ値として、インストールが完了したデバイスの数を取得する。
【００８０】
このｋ値を取得すると、インストーラ６０は、処理をＳ７６０に移行し、デバイスチェック処理（Ｓ７５０）実行前と、実行後において、ｋ値に変化があったか否か（即ち、ｋ値が更新されたか否か）判断する。
ここで、ｋ値が更新されていないと判断すると、インストーラ６０は、所定時間として１秒間だけ待機し（Ｓ７７０）、その一秒経過後に、Ｄ値を１％だけ上昇させる（Ｓ７８０）。この後、Ｓ８００にて、現在のＤ値をウィンドウ７０にグラフ形式及び数字形式で表示する。つまり、ウィンドウ７０内のグラフの値を１％分だけ上昇させる。
【００８１】
また、インストーラ６０は、Ｓ８１０でｉ値がｋ値と一致する（ｉ＝ｋである）か否か判断する。そして、ｉ＝ｋでなければ、再び、Ｓ７４０及びＳ７５０の処理を実行した後、Ｓ７６０にて、ｋ値が更新されたか否か判断し、更新されたと判断すると、Ｓ７９０にて、インストール対象デバイスの内、デバイスドライバのインストールが完了したデバイスの数を表すｋ値を、デバイス情報ファイルに基づき認識したインストール対象デバイス数であるｉ値で除算し、その除算した値に、値１００を乗算して、Ｄ値を算出する。つまり、インストーラ６０は、次式を用いて進行度を表すＤ値を算出する。
【００８２】
Ｄ＝ｋ／ｉ×１００
この後、インストーラ６０は、Ｓ８００にて、ウィンドウ７０を更新し、最新の進行度を表すＤ値をグラフ形式及び数字形式でウィンドウ７０内に表示することにより、プラグアンドプレイ処理部４３がインストールしたデバイスドライバに対応するデバイスの数を、デバイス情報ファイル６１に基づき認識したインストール対象デバイス数に対する割合（本実施例では、百分率）で、表示する。
【００８３】
また、インストーラ６０は、Ｓ８１０でｉ＝ｋではないと判断すると、再び、上記Ｓ７４０〜Ｓ８１０までの処理を繰り返し、Ｓ８１０でｉ＝ｋであると判断すると、Ｓ８２０にてウィンドウ７０を表示部１６の画面上から消去して、当該表示制御処理を終了する。
【００８４】
このような表示制御処理動作により、ウィンドウ７０上では、インストールの進行度を表す棒グラフが図１０（ｂ）に示すように徐々に変化する。尚、進行度を表すＤ値は、０〜１００までの値を取るようにされており、例えばＭＦＤ５０の内蔵デバイス数ｉが４つである場合（即ち、ｉ＝４である場合）、ウィンドウ７０内における棒グラフの表示領域７０ｂは、プラグアンドプレイ処理部４３での最初のデバイスに対応したデバイスドライバのインストール動作が完了した時点で、その四分の一が、棒グラフにより満たされる。
【００８５】
また、２つ目のデバイスに対応したデバイスドライバのインストールが完了した時点で、ウィンドウ７０内における表示領域７０ｂの半分は、棒グラフにより満たされる。更に、プラグアンドプレイ処理部４３での３つ目のデバイスに対応したデバイスドライバのインストールが完了した時点で、ウィンドウ７０内における表示領域７０ｂの四分の三は、棒グラフにより満たされ、４つ目のデバイスに対応したデバイスドライバのインストールが完了した時点、即ち、デバイス情報ファイル６１に記述された全デバイスに関してプラグアンドプレイ処理部４３でのインストールが完了した時点で、ウィンドウ７０内における表示領域７０ｂは、すべて棒グラフで満たされる。これにより、ＭＦＤ５０に対するデバイスドライバのインストールが完了したことがユーザに示される。
【００８６】
さて、この表示制御処理が終了すると、インストーラ６０は、上記インストール操作処理のＳ３６０（図６参照）にて、Ｙｅｓと判断し、Ｓ３９０にて、表示制御処理が正常終了したか否か判断する。尚、ここでいう正常終了とは、上記Ｓ８１０でＹｅｓとの判断がなされて表示制御処理が終了したものをいう。
【００８７】
ここで、正常終了したと判断すると、インストーラ６０は、インストール操作処理を終了する。一方、正常終了していなければ（即ち、タイムアウトにより表示制御処理が終了していれば）、Ｓ４００でインストールを再度プラグアンドプレイ処理部４３に行わせるか否かを確認するためのメッセージを表示部１６の画面上に表示する。この後、インストーラ６０は、ユーザの操作による入力部１７からの入力信号に基づき、ユーザからリトライの指令が入力されたか否か判断し（Ｓ４１０）、リトライの指令が入力されていなければインストール操作処理を終了し、リトライの指令が入力されていれば、再びＳ２８０での処理を実行する。
【００８８】
この後、インストーラ６０は、Ｓ２９０にて、レジストリ４５内から、デバイス情報ファイル６１に列挙されたデバイスに関する情報を消去することにより、再度プラグアンドプレイ処理部４３に、ＭＦＤ５０内部の各デバイスＤｅｖ１，Ｄｅｖ２，Ｄｅｖ３，…を新規デバイスとして検出させ、そのデバイスに対応するデバイスドライバのインストールを実行させる。
【００８９】
以上、本実施例のＰＣ１０の構成及び動作について説明したが、本実施例のＰＣ１０によれば、プラグアンドプレイ処理部４３が連続して行う全デバイスドライバのインストールが完了するまでのプロセスの進行度を、インストーラ６０が、デバイスチェック処理の結果と、インストール対象デバイスの数ｉと、に基づき、表示部１６に表示するので、インタフェース１４に接続された周辺装置に関するデバイスドライバのインストールがどの程度完了しているかを、ユーザに示すことができる。したがって、本実施例のＰＣ１０によれば、プラグアンドプレイ処理部４３が周辺装置内の複数のデバイスに関して連続してデバイスドライバのインストールを実行する場合に、その連続したインストールがいつ完了するのかわからないことに起因してユーザが苛立ちを覚えるのを防止することができる。
【００９０】
この他、本実施例のＰＣ１０によれば、各デバイスに対応したデバイスドライバのインストールが完了する度に、インストーラ６０が、表示制御処理にて、進行度を表すＤ値を所定値に設定するので、デバイス毎に、そのデバイスに対応したデバイスドライバのインストールが完了したことを、その進行度でユーザに示すことができる。
【００９１】
また、本実施例のＰＣ１０によれば、インストール済みデバイスの数を表すｋ値に変化がない場合、インストーラ６０が、所定時間毎にＤ値を１％づつ上昇させるので、各デバイスドライバのインストールに時間がかかる場合でもインストールが進行していることを常時ユーザに示すことができる。したがって、インストールが正常に進行しているか否かにユーザが不安を覚えるのを防止することができる。
【００９２】
また、本実施例のＰＣ１０によれば、インストーラ６０が、インストール対象デバイス情報に基づいて、インストール対象デバイスのデバイスハンドルをレジストリ４５から一旦削除し、この後、インストール対象デバイスに対応するデバイスドライバのインストールをプラグアンドプレイ処理部４３に実行させるので、間違ったデバイスドライバがインストーラ６０の起動前にインストールされていても、それらのデバイスドライバに関する情報をユーザにレジストリから手動で削除させなくて済む。
【００９３】
この他、本実施例のＰＣ１０によれば、インストーラ６０が、デバイスドライバの取得先を表すパス情報をプラグアンドプレイ処理部４３に提供するので、ユーザにパス情報の入力を求めることなく、デバイスドライバのインストールを適切にプラグアンドプレイ処理部４３に行わせることができる。
【００９４】
続いて、上記実施例の変形例について説明する。尚、図１１は、変形例のデバイス情報ファイル６１’の構成を表す説明図であり、図１２は、インストーラ６０が実行する変形例の表示制御処理を表すフローチャートである。以下では、上記実施例と異なる変形例の構成のみ説明することにし、同一構成の部分の説明に関しては省略することにする。
【００９５】
図１１に示すように、変形例のデバイス情報ファイル６１’には、周辺装置が備えるデバイス１からデバイス６までの計６つのインストール対象デバイスに関するインストール対象デバイス情報が登録されている。具体的に、デバイス情報ファイル６１’には、インストール対象デバイス情報として、デバイス毎のデバイス名称及びハードウェアＩＤと、各デバイスが属するクラスを表すデータ値と、が記憶されている。尚、本実施例では、予め”スキャナ”、”プリンタ”、”マルチファンクション”、”モデム”といった複数（計４つ）のクラスが設定されている。そして、”プリンタ””スキャナ””マルチファンクション”の各クラスには、夫々一つのデバイスが属し、”モデム”クラスには、計３つのデバイスが属している。
【００９６】
変形例のインストーラ６０は、図９に示した表示制御処理の代わりに、Ｓ３５０で、図１２に示す変形例の表示制御処理を実行する。変形例の表示制御処理を実行すると、インストーラ６０は、まず、Ｓ１０１０にて、タイマを初期化し、続いてＳ１０２０でＤ値をゼロに設定（Ｄ＝０）し、Ｓ１０３０にて、Ｄ値を表示するためのウィンドウ７０を図１０に示すように表示部１６の画面上に表示する。
【００９７】
この後、インストーラ６０は、Ｓ１０４０にて、タイマがタイムアウトしているか否か判断し、タイムアウトしていれば、Ｓ１３６０にて、ウィンドウ７０を表示部１６の画面上から消去し、この後に当該表示制御処理を終了する。
一方、タイムアウトしていないと判断すると、インストーラ６０は、処理をＳ１１００に移して、図１３に示す第二デバイスチェック処理を実行する。尚、図１３は、第二デバイスチェック処理を表すフローチャートである。
【００９８】
Ｓ１１００で第二デバイスチェック処理を実行すると、インストーラ６０は、まずＯＳ４２側にデバイステーブル４６内のデバイスハンドルを返すように要求し（Ｓ１１１０）、デバイステーブル４６内の全てのデバイスハンドルを取得する（Ｓ１１２０）。またＳ１１３０にて、プラグアンドプレイ処理部４３によりデバイスドライバのインストールが完了したクラスの数を表すｇ値と、デバイスドライバをインストール済みのインストール対象デバイスの内、”モデム”クラスに属するデバイスの数を表すｊ値、をゼロに設定する（ｇ＝０，ｊ＝０）。
【００９９】
この後、インストーラ６０は、最初のデバイスハンドルに対応するＤｅｖｉｃｅＤｅｓｃのデータ値を返すようにＯＳ４２側に要求し（Ｓ１１４０）、そのＤｅｖｉｃｅＤｅｓｃのデータ値を取得する（Ｓ１１５０）。そして、Ｓ１１６０にて、取得したＤｅｖｉｃｅＤｅｓｃのデータ値がデバイス情報ファイル６１’内に記述されたデバイス名称のいずれかと合致するか否か判断する。
【０１００】
プラグアンドプレイ処理部４３の動作により、パラメータＤｅｖｉｃｅＤｅｓｃにデバイス名称を表すデータ値が書き込まれると、インストーラ６０は、Ｓ１１６０でＹｅｓと判断して、プラグアンドプレイ処理部４３がインストールしたデバイスドライバに対応するデバイスが上記複数のクラスのいずれに属するデバイスであるかを識別する（Ｓ１１７０）。そして、デバイスが”モデム”クラスではないと判断すると、そのクラスに属する全デバイスドライバのインストールが完了したとして、Ｓ１１８０で、ｇ値を１増やす。一方、デバイスが”モデム”クラスに属するデバイスであると判断すると、Ｓ１１９０にて、ｊ値を１増やす。
【０１０１】
この後、インストーラ６０は、Ｓ１２００にて、全デバイスについて照合が完了したか否か判断し、照合が完了していなければ、次のデバイスハンドルに対応するＤｅｖｉｃｅＤｅｓｃのデータ値を返すようにＯＳ４２側に要求する（Ｓ１２１０）。一方、照合が完了していれば、Ｓ１２２０にて、ｊ値が、”モデム”クラスに属するデバイスの数ｍ（本実施例では、ｍ＝３）に一致するか否か判断する。尚、ｍ値は、Ｓ２３０においてｉ値とともに、デバイス情報ファイル６１’に基づき設定されている。
【０１０２】
ここで、ｊ値がｍ値に一致しないと判断すると、インストーラ６０は、そのまま当該第二デバイスチェック処理を終了し、一致していると判断すると、その”モデム”クラスに属するデバイスに対応する全てのデバイスドライバのインストールが完了したとして、Ｓ１２３０で、ｇ値を更に１増やし、この後に、当該第二デバイスチェック処理を終了する。
【０１０３】
即ち、第二デバイスチェック処理では、全デバイスドライバのインストールが完了したクラスの数だけ、Ｓ１１８０及びＳ１２３０でｇ値がカウントされる。したがって、インストーラ６０は、第二デバイスチェック処理（Ｓ１１００）の終了後に、ｇ値として、デバイスドライバのインストールが完了したクラスの数を得る（Ｓ１１００）。
【０１０４】
このｇ値を取得すると、インストーラ６０は、処理をＳ１３００に移して、第二デバイスチェック処理（Ｓ１１００）実行前と、実行後において、ｇ値が更新されたか否か判断する。
ここで、ｇ値が更新されていないと判断すると、インストーラ６０は、１秒間だけ待機し（Ｓ１３１０）、その一秒経過後に、Ｄ値を１％だけ上昇させる（Ｓ１３２０）。この後、Ｓ１３４０にて、現在のＤ値をウィンドウ７０に表示することにより、インストールの進行度を表すグラフの値を１％だけ上昇させる。
【０１０５】
更に、インストーラ６０は、Ｓ１３５０でｉ値が値（ｇ＋ｍ−１）と一致する（ｉ＝ｇ＋ｍ−１である）か否か判断する。
そして、ｉ＝ｇ＋ｍ−１でなければ、再び、Ｓ１０４０及びＳ１１００の処理を実行した後、Ｓ１３００にて、ｇ値が更新されたか否か判断し、更新されたと判断すると、Ｓ１３３０にて、インストール対象デバイスの内、デバイスドライバのインストールが完了したクラスの数を表すｇ値を、デバイス情報ファイルに基づき認識したクラスの数である値（ｉ−ｍ＋１）で除算し、その除算した値に、値１００を乗算して、Ｄ値を算出する。つまり、インストーラ６０は、次式を用いて進行度を表すＤ値を算出する。
【０１０６】
Ｄ＝ｇ／（ｉ−ｍ＋１）×１００
この後に、インストーラ６０は、Ｓ１３４０にて、ウィンドウ７０を更新し、最新の進行度を表すＤ値を棒グラフ及び数字でウィンドウ７０内に表示する。この時、ウィンドウ７０内には、プラグアンドプレイ処理部４３にてデバイスドライバのインストールが完了したクラスの数が、予め設定されたクラスの数である値（ｉ−ｍ＋１）に対する割合で表示される。
【０１０７】
また、インストーラ６０は、Ｓ１３５０でｉ＝ｇ＋ｍ−１であると判断すると、Ｓ１３６０にてウィンドウ７０を表示部１６の画面上から消去して、当該表示制御処理を終了する。
尚、このようなインストーラ６０の動作により、ウィンドウ７０には、”スキャナ””プリンタ””マルチファンクション””モデム”の各クラスのデバイスドライバのインストールが完了する度に、進行度が、２５％、５０％、７５％、１００％で順次表示される。
【０１０８】
以上、変形例について説明したが、この変形例においては、プラグアンドプレイ処理部４３がインストールしたデバイスドライバに対応する各デバイスが、予め設定された複数のクラスのいずれに属するデバイスであるかを、インストーラ６０が、Ｓ１１７０で識別して、各クラスに属するデバイスに対応する全てのデバイスドライバのインストールが完了したか否かをクラス毎に判断し、この結果得たｇ値及びｊ値に基づいて、デバイスドライバのインストールが完了したクラスの数を、上記予め設定されたクラスの数に対する割合で、表示するから、各クラスに対応するデバイスドライバのインストールが完了したことを、全体のプロセスにおけるインストールの進行度と共に、その進行度でユーザに示すことができる。
【０１０９】
尚、本発明の情報処理装置はＰＣ１０に相当する。また、デバイス数認識手段、監視手段、及び進行度表示手段としての機能を、コンピュータに実現させるためのプログラムは、インストーラ６０に組み込まれている。また、本発明の記録媒体は、インストーラ６０及びデバイス情報ファイル６１，６１’を備えるＣＤ２０に相当する。この他本発明のインストール状況表示方法は、インストーラ６０の動作にて実現されている。
【０１１０】
また、本発明の第一のデバイス情報記憶手段は、デバイス情報としてのレジストリ情報４７を記憶するレジストリ４５に相当し、インストール手段は、ＯＳ４２がプラグアンドプレイ処理部４３としての機能を果たすために実行するプラグアンドプレイ処理（図４）にて実現されている。また第二のデバイス情報記憶手段は、インストール対象デバイス情報を記憶するデバイス情報ファイル６１，６１’に相当する。またデバイス数認識手段は、デバイス情報ファイル６１，６１’内のインストール対象デバイス情報に基づき、インストーラ６０が、インストール対象デバイス数を表すｉ値を設定する動作（Ｓ２３０）にて実現されている。
【０１１１】
そして、監視手段がドライバ情報の登録状況を監視する動作は、インストーラ６０が、Ｓ７５０にて繰り返しデバイスチェック処理を実行し、Ｓ５６０で、レジストリ４５内に記憶されたドライバ情報としてのデバイス名称の登録状況を確認する動作にて実現されている。また、監視手段がインストール対象デバイスに対応するデバイスドライバのインストールが完了したと判断する動作は、Ｓ５６０でＹｅｓと判断する動作にて実現されている。尚、変形例において、監視手段は、インストーラ６０が第二デバイスチェック処理（図１２）を繰り返し実行する動作にて実現されている。
【０１１２】
この他、進行度表示手段は、インストーラ６０が、監視手段の監視結果が反映されたｋ値（又はｇ値）と、デバイス数認識手段の認識結果であるｉ値（又はｉ値及びｍ値）とに基づいて、表示制御処理のＳ７８０及びＳ７９０（又は、Ｓ１３２０又はＳ１３３０）にて進行度を表すＤ値を更新し、Ｓ８００（又はＳ１３４０）で表示手段としての表示部１６の画面上に表示したウィンドウ７０にＤ値を更新表示する動作にて実現されている。尚、インストーラ６０は、Ｓ７６０でｋ値が更新されたと判断する度に、各デバイスに対応するデバイスドライバのインストールが完了したとして、Ｄ値を更新表示する。
【０１１３】
また、進行度表示手段が所定時間毎に進行度を表すグラフの値を上昇させる動作は、インストーラ６０が、ｋ値（又はｇ値）が更新されない場合に、一秒ごとに、Ｄ値を１％上昇させ、このＤ値をウィンドウ７０内のグラフ値に反映させて、更新表示する動作にて実現されている。
【０１１４】
この他、進行度表示手段が備える判断手段は、変形例においてインストーラ６０が、”モデム”以外のクラスに属するデバイスに対応するデバイスドライバのインストールが完了したときに、そのクラスの全デバイスドライバのインストールが完了したと判断し、判断結果としてＳ１１８０でｇ値をカウントする動作、及び、”モデム”クラスに属するデバイスインストールが完了したときに、一旦ｊ値を更新し、更にＳ１２２０でｊ＝ｍであるか否か判断し、判断結果として、Ｓ１２３０でｇ値をカウントする動作にて実現されている。
【０１１５】
また、初期化手段は、フラグが「削除」である時にインストーラ６０が実行するデバイスチェック処理（Ｓ２９０）により実現されている。尚、インストーラ６０は、このデバイスチェック処理により、削除したデバイスハンドルに対応するインストール対象デバイスに関して、プラグアンドプレイ処理部４３に、デバイスドライバのインストールを実行させる。この他、インストール支援手段は、インストーラ６０がＳ３８０で、取得先情報としてのパス情報をＯＳ４２側に入力する動作にて実現されている。
【０１１６】
以上、本発明の実施例について説明したが、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。
例えば、上記実施例では、デバイスドライバの取得先情報であるパス情報をインストーラ６０内に記述することにより、インストーラ６０を、周辺装置（ＭＦＤ５０）専用のものとしたが、パス情報を、デバイス情報ファイル６１，６１’に記述しておいて、インストーラ６０が、デバイス情報ファイルからパス情報を読み出し、このパス情報をプラグアンドプレイ処理部４３に渡すようにすると、インストーラ６０を、周辺装置を限定しない汎用のインストーラとすることができる。
【０１１７】
また、デバイス情報ファイル内にデバイス毎のＩＮＦファイルに関するＩＮＦファイル情報を格納する場合には、上記デバイス情報ファイル６１を図１４に示す構成のデバイス情報ファイル６２に変更してもよい。尚、図１４に示すデバイス情報ファイル６２には、インストール対象デバイス情報として、周辺装置内の全デバイスに共通するデバイス名称と、全デバイスに共通するハードウェアＩＤと、各デバイス毎のＩＮＦファイル情報（ＩＮＦファイルの名前）とが登録されている。
【０１１８】
また、上記デバイス情報ファイル６２を用いる場合には、Ｓ２２０で、各デバイス共通のデバイス名称とハードウェアＩＤとを取得し、Ｓ２３０で、デバイス情報ファイル６２内に登録されたＩＮＦファイルの数に基づいてインストール対象デバイス数ｉを設定するように、インストーラ６０を構成すると良い。尚、図１４に示す例においては、インストール対象デバイスが４つあるため、デバイス情報ファイル内には、ＩＮＦファイル情報（ＩＮＦファイルの名前）が４つ書き込まれている。また、このような場合には、ＩＮＦファイルをデバイス情報ファイル６２と共にＣＤ２０内に格納すると良い。この他、ＩＮＦファイルは、ＣＤ２０内において、デバイス情報ファイル６２と同一ディレクトリに格納されていてもよいし、別ディレクトリに格納されていてもよい。
【０１１９】
ただし、インストール対象デバイスの数ｉは、デバイス情報ファイル６２内に登録されたＩＮＦファイルの数に一致するとは限らないため、このような場合には、インストーラ６０内に、ＩＮＦファイル数からインストール対象デバイス数ｉを求めるための計算式を組み込んでおけばよい。また、デバイス情報ファイル６２内に、インストール対象デバイス数を登録しておいてもよい。
【図面の簡単な説明】
【図１】本実施例のＰＣ１０の構成を表すブロック図である。
【図２】ＣＰＵ１１の動作により実現される各機能を表したブロック図である。
【図３】レジストリ４５の構成を表す説明図である。
【図４】ＯＳ４２が実行するプラグアンドプレイ処理を表すフローチャートである。
【図５】インストーラ６０が実行するインストール操作処理を表すフローチャートである。
【図６】インストーラ６０が実行するインストール操作処理を表すフローチャートである。
【図７】デバイス情報ファイル６１の構成を表す説明図である。
【図８】インストーラ６０が実行するデバイスチェック処理を表すフローチャートである。
【図９】インストーラ６０が実行する表示制御処理を表すフローチャートである。
【図１０】インストールの進行度を表示するためのウィンドウ７０の構成を表す説明図である。
【図１１】デバイス情報ファイル６１’の構成を表す説明図である。
【図１２】インストーラ６０が実行する変形例の表示制御処理を表すフローチャートである。
【図１３】インストーラ６０が実行する第二デバイスチェック処理を表すフローチャートである。
【図１４】デバイス情報ファイル６２の構成を表す説明図である。
【符号の説明】
１０…ＰＣ、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…インタフェース、１６…表示部、１７…入力部、１８…ハードディスクドライブ、１９…ＣＤドライブ、２０…ＣＤ、４１…接続検出部、４２…ＯＳ、４３…プラグアンドプレイ処理部、４４…ドライバインストールモジュール、４５…レジストリ、４６…デバイステーブル、４７…レジストリ情報、５０…ＭＦＤ、６０…インストーラ、６１，６１’，６２…デバイス情報ファイル、７０…ウィンドウ
【図１】
0003578153.tif 000002
【図２】
0003578153.tif 000003
【図３】
0003578153.tif 000004
【図４】
0003578153.tif 000005
【図５】
0003578153.tif 000006
【図６】
0003578153.tif 000007
【図７】
0003578153.tif 000008
【図８】
0003578153.tif 000009
【図９】
0003578153.tif 000010
【図１０】
0003578153.tif 000011
【図１１】
0003578153.tif 000012
【図１２】
0003578153.tif 000013
【図１３】
0003578153.tif 000014
【図１４】
0003578153.tif 000015