(57)【要約】      （修正有）【課題】プリンタドライバのインストール、またはアンインストールのタイミングでＯＳによってプリンタドライバのモジュールが呼び出される仕組みを持たない環境においても、ユーザの利便性を向上できる情報処理装置、制御方法およびプログラムを提供する。【解決手段】監視アプリケーション２０７は、プリンタドライバの追加を検知した場合、情報取得モジュール２０８を用いて、画像処理装置２１６から情報を取得する。プリンタドライバ関連ファイル２１３は、プリンタドライバ２１０に関連するファイルであり、プリンタドライバ２１０の各種設定に関する情報などが記録されている。印刷処理の要求に基づいて発行された印刷ジョブは、ＯＳ内のプリントサブシステム２０２のスプーラー２０３にて処理される。スプーラー２０３は、印刷アプリケーション２０１から発行された印刷ジョブを、プリンタドライバ２１０へ送信する。【選択図】図２
2018084893.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置と通信可能な情報処理装置であって、
前記情報処理装置が起動された場合に監視処理を実行する監視手段と、
前記監視手段による監視処理中に前記プリンタドライバのインストール処理が発生した場合における前記プリンタドライバに対応する前記画像処理装置に関する情報を取得する第１の処理、および、前記監視手段による監視処理中に前記プリンタドライバのアンインストール処理が発生した場合における前記アンインストールされたプリンタドライバの関連ファイルを削除する第２の処理、および、前記監視手段による監視処理中に前記プリンタドライバの変更処理が発生した場合における前記プリンタドライバに対応するファイルを変更する第３の処理の少なくとも１つを実行する実行手段を有し、
前記関連ファイルは、前記アンインストールされたプリンタドライバに関連し、かつ、前記アンインストールされたプリンタドライバを構成するファイルとは異なることを特徴とする情報処理装置。
【請求項２】
前記プリンタドライバのインストール処理またはアンインストール処理が発生した場合にイベントを通知するように、前記情報処理装置にて動作するオペレーティングシステムに対して、イベント登録処理を行う登録手段を更に有し、
前記監視手段は、前記監視処理として前記オペレーティングシステムから通知されるイベントを監視することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置にて動作するオペレーティングシステムにより管理されているプリンタドライバを示す第１リストを取得する第１取得手段と、
前記第１リストを取得してから所定時間経過した後に、前記オペレーティングシステムにより管理されているプリンタドライバを示す第２リストを取得する第２取得手段を更に有し、
前記監視手段は、前記第１および前記第２リストに基づいて、監視対象のプリンタドライバに対するインストール処理またはアンインストール処理が発生したか否かを判定することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１の処理が実行された場合、前記監視対象のプリンタドライバの設定画面に、前記第１の処理により取得された前記画像処理装置に関する情報が反映されることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記情報処理装置において動作するオペレーティングシステムは、前記プリンタドライバを構成するファイルとして前記画像処理装置とのデータの送受信を行うランゲージモニタプログラムを含めることを制限することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記情報処理装置においてオペレーティングシステムが動作している間、前記監視手段は、前記監視対象のプリンタドライバの有無に関わらず、前記監視処理を継続することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記監視対象のプリンタドライバが存在しないと判定された場合、前記監視手段の動作が停止されることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項８】
画像処理装置と通信可能な情報処理装置において実行される制御方法であって、
前記情報処理装置が起動された場合に監視処理を実行する監視ステップと、
前記監視処理中に前記プリンタドライバのインストール処理が発生した場合における前記プリンタドライバに対応する前記画像処理装置に関する情報を取得する第１の処理、および、前記監視処理中に前記プリンタドライバのアンインストール処理が発生した場合における前記アンインストールされたプリンタドライバの関連ファイルを削除する第２の処理、および、前記監視処理中に前記プリンタドライバの変更処理が発生した場合における前記プリンタドライバに対応するファイルを変更する第３の処理の少なくとも１つを実行する実行ステップを有し、
前記関連ファイルは、前記アンインストールされたプリンタドライバに関連し、かつ、前記アンインストールされたプリンタドライバを構成するファイルとは異なることを特徴とする制御方法。
【請求項９】
コンピュータに、
前記コンピュータが起動された場合に監視処理を実行する監視ステップと、
前記監視処理中に前記プリンタドライバのインストール処理が発生した場合における前記プリンタドライバに対応する前記画像処理装置に関する情報を取得する第１の処理、および、前記監視処理中に前記プリンタドライバのアンインストール処理が発生した場合における前記アンインストールされたプリンタドライバの関連ファイルを削除する第２の処理、および、前記監視処理中に前記プリンタドライバの変更処理が発生した場合における前記プリンタドライバに対応するファイルを変更する第３の処理の少なくとも１つを実行する実行ステップを実行させ、
前記関連ファイルは、前記アンインストールされたプリンタドライバに関連し、かつ、前記アンインストールされたプリンタドライバを構成するファイルとは異なることを特徴とするプログラム。
【請求項１０】
前記プリンタドライバのインストール処理またはアンインストール処理が発生した場合にイベントを通知するように、オペレーティングシステムに対して、イベント登録処理を行う登録ステップを更に実行させ、
前記監視処理として前記オペレーティングシステムから通知されるイベントが監視されることを特徴とする請求項９に記載のプログラム。
【請求項１１】
オペレーティングシステムにより管理されているプリンタドライバを示す第１リストを取得する第１取得ステップと、
前記第１リストを取得してから所定時間経過した後に、前記オペレーティングシステムにより管理されているプリンタドライバを示す第２リストを取得する第２取得ステップを更に実行させ、
前記第１および前記第２リストに基づいて、監視対象のプリンタドライバに対するインストール処理またはアンインストール処理が発生したか否かが判定されることを特徴とする請求項９に記載のプログラム。
【請求項１２】
前記第１の処理が実行された場合、前記監視対象のプリンタドライバの設定画面に、前記第１の処理により取得された前記画像処理装置に関する情報が反映されることを特徴とする請求項９乃至１１のいずれか１項に記載のプログラム。
【請求項１３】
前記コンピュータにより制御されるオペレーティングシステムは、前記プリンタドライバを構成するファイルとして前記画像処理装置とのデータの送受信を行うランゲージモニタプログラムを含むことを制限することを特徴とする請求項９乃至１２のいずれか１項に記載のプログラム。
【請求項１４】
前記コンピュータにより制御されるオペレーティングシステムが動作している間、前記監視対象のプリンタドライバの有無に関わらず、前記監視処理が継続されることを特徴とする請求項９乃至１３のいずれか１項に記載のプログラム。
【請求項１５】
前記監視対象のプリンタドライバが存在しないと判定された場合、前記監視ステップの動作が停止されることを特徴とする請求項９乃至１４のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に接続する情報処理装置、その制御方法およびプログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置とプリンタなどの画像処理装置とが接続される情報処理システムにおいて、情報処理装置は、一般に、画像処理装置に対して印刷データを送信するプリンタドライバを備える。
【０００３】
マイクロソフト社のオペレーティングシステム（ＯＳ）であるＷｉｎｄｏｗｓ（登録商標）によりｖ３プリンタドライバアーキテクチャーが提供される。このアーキテクチャーにおいては、プリンタドライバがＯＳにインストール、またはアンインストールされた際には、ＯＳが、プリンタドライバのモジュールを呼び出す仕組みがある。例えばプリンタドライバがＯＳにインストールされると、ＯＳは、ＤｒｖＰｒｉｎｔｅｒＥｖｅｎｔ関数のコマンドの引数にＰＲＩＮＴＥＲ＿ＥＶＥＮＴ＿ＩＮＩＴＩＡＬＩＺＥを設定する。そして、プリンタドライバ対してプリンタドライバのインストールイベントが送信される。
【０００４】
特許文献１では、こうしたＯＳの仕組みを利用して、ＯＳから呼び出されたプリンタドライバのモジュールが、インストールに対応する処理またはアンインストールに対応する処理を実行することが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２０５００９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＯＳが、プリンタドライバのインストール、またはアンインストールを含む所定の処理が発生したタイミングでプリンタドライバのモジュールを呼び出さない状況について特許文献１は考慮していない。そのため、特許文献１の技術では、上記状況において、プリンタドライバのインストールまたはアンインストールを含む所定の処理が発生した時に実行すべき処理が実行されず、ユーザの利便性が低下するおそれがあった。
【課題を解決するための手段】
【０００７】
上述のような課題を解決するため、本願の情報処理装置は、画像処理装置と通信可能な情報処理装置であって、少なくとも監視対象のプリンタドライバが存在する場合に前記監視対象のプリンタドライバに対する監視処理を継続する監視手段と、前記監視手段による監視処理中に前記プリンタドライバのインストール処理が発生した場合における前記プリンタドライバに対応する前記画像処理装置に関する情報を取得する第１の処理、および、前記監視手段による監視処理中に前記プリンタドライバのアンインストール処理が発生した場合における前記アンインストールされたプリンタドライバの関連ファイルを削除する第２の処理、および、前記監視手段による監視処理中に前記プリンタドライバの変更処理が発生した場合における前記プリンタドライバに対応するファイルを変更する第３の処理の少なくとも１つを実行する実行手段を有し、前記関連ファイルは、前記アンインストールされたプリンタドライバに関連し、かつ、前記アンインストールされたプリンタドライバを構成するファイルとは異なることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、プリンタドライバのインストール、またはアンインストールのタイミングでＯＳによってプリンタドライバのモジュールが呼び出される仕組みを持たない環境においても、ユーザの利便性を向上できる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置と画像処理装置のハードウェア構成図である。
【図２】情報処理装置のソフトウェア構成の一例を示す図である。
【図３】ＯＳのイベント通知機能を利用した処理を示すフローチャートである。
【図４】ＯＳのデバイス管理画面を示す図である。
【図５】印刷設定アプリケーションの印刷設定画面を示す図である。
【図６】ＯＳのイベント通知機能を利用しない処理を示すフローチャートである。
【図７】監視アプリケーションの終了処理の流れを示すフローチャートである。
【図８】監視アプリケーションの終了処理の流れを示す別例のフローチャートである。
【図９】プリンタドライバの有無を確認する処理を示すフローチャートである。
【図１０】アンインストールされたプリンタドライバの有無を確認する処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
本実施形態における画像処理装置と情報処理装置の構成を、図１を参照して説明する。
情報処理装置１００は入力インタフェース１０２とＣＰＵ１０３、ＲＯＭ１０４、ＲＡＭ１０５、外部記憶装置１０６、出力インタフェース１０８、表示部１０７、キーボード１０１、マウス１０９、ＵＳＢインタフェース１１０を有する。情報処理装置１００は、ＵＳＢインタフェース１１０およびＵＳＢケーブル１９０を介して後述する画像処理装置１５０と通信可能である。ＲＯＭ１０４には初期化プログラムが入っており、外部記憶装置１０６にはアプリケーションプログラム群、ＯＳ（オペレーティングシステム）、プリンタドライバやその他各種のデータが保存されている。
【００１１】
ＲＡＭ１０５は外部記憶装置１０６に格納される各種プログラムがワークメモリとして使用する。画像処理装置１５０はＵＳＢインタフェース１５１とＲＡＭ１５２、プリントエンジン１５３、ＲＯＭ１５４、ＣＰＵ１５５を有する。画像処理装置１５０は、ＵＳＢインタフェース１５１およびＵＳＢケーブル１９０を介して情報処理装置１００と通信可能である。ＲＡＭ１５２はＣＰＵ１５５の主メモリとワークメモリとして用いられ、受信した印刷データを一旦保存するための受信バッファーや各種のデータを保存する。プリントエンジン１５３はＲＡＭ１５２に保存された印刷データに基づき印刷を行う。ここでは例として情報処理装置１００と画像処理装置１５０の処理分担を上記のように示したが、特にこの分担形態限らず他の形態であっても構わない。また、ここでは例としてＵＳＢインタフェース１１０、１５１およびＵＳＢケーブル１９０を介して情報処理装置１００と画像処理装置１５０が通信を行うよう示しているが、通信手段は他の形態であっても構わない。なお、本実施形態では、ＣＰＵ１０３やＲＯＭ１０４、ＲＡＭ１０５等によりコンピュータが形成される。そして、このコンピュータが、情報処理装置の動作を制御する。
【００１２】
図２は、ＰＣ２００に備えられたプリンタドライバ２１０、監視アプリケーション２０７と、ＯＳのプリントサブシステム２０２の構成例を示す図である。ＰＣ２００は、図１の情報処理装置１００に対応し、画像処理装置２１６は、図１の画像処理装置１５０に対応する。
【００１３】
また図２は、新規のＯＳ上で実現される新規プリントシステムと監視アプリケーションの関係を示す一例である。なお、新規プリントシステムの一例として、次世代のＷｉｎｄｏｗｓプリンタドライバ（ｖ４プリンタドライバ）アーキテクチャーを用いて説明する。ｖ４プリンタドライバアーキテクチャーでは、プリンタドライバのインストール、またはアンインストールのタイミングでＯＳによってプリンタドライバのモジュールが呼び出される仕組みがない。そして、この新規プリントシステムには、いくつかの制約がある。例えば、ｖ４プリンタドライバ２１０は、印刷設定画面を持つことが許可されていない。ゆえにｖ４プリンタドライバ２１０の印刷設定画面がＯＳから呼び出されることはない。そのため、印刷設定画面はＯＳにより提供される。しかしながら、各ベンダーはｖ４プリンタドライバ２１０に対応する印刷設定アプリケーション２１２を用意することは可能である。この印刷設定アプリケーション２１２がＯＳにインストールされると、ＯＳが提供する印刷設定画面の代わりに、印刷設定アプリケーション２１２が提供する印刷設定画面が表示される。印刷設定アプリケーション２１２のインストール処理は、ｖ４プリンタドライバのインストール処理に連動して実行されても良い。具体的には、ダウンロードソフトが、ｖ４プリンタドライバを所定のサーバからダウンロードしてインストールした場合、インストールされたｖ４プリンタドライバに対応する印刷設定アプリケーション２１２を前記所定のサーバから検索する。そして、対応する印刷設定アプリケーションが検索された場合、ダウンロードソフトが、前記印刷設定アプリケーションを前記所定のサーバからダウンロードしてインストールしても良い。また、印刷設定アプリケーション２１２とｖ４プリンタドライバとは、識別情報にて関連付けられているので、この識別情報を使って連動したインストール処理が実現できる。ただし、印刷設定アプリケーション２１２は、ｖ３プリンタドライバのベンダー独自のユーザインターフェースモジュールのように、プリンタドライバのインストールおよびアンインストールのタイミングでＯＳに呼び出されることはない。なお、印刷設定アプリケーション２１２の印刷設定画面は、ＯＳにより提供される印刷設定画面よりも詳細な印刷設定情報を選択可能である。例えば、印刷設定アプリケーション２１２の印刷設定画面は、ＯＳにより提供される印刷設定画面では設定できない設定項目についても印刷設定情報の設定を受け付ける。
【００１４】
その他の制限としては、新規ＯＳ上で実現される新規プリントシステムでは、ランゲージモニタプログラムの動作が許可されていない。具体的には、図２の装置で動作する新規ＯＳは、プリンタドライバを構成するファイルとして画像処理装置とのデータの送受信を行うランゲージモニタプログラムを含むことを制限している。つまり、ＯＳは、ｖ４プリンタドライバ２１０の印刷設定画面を呼び出すことはせず、かつ、プリンタドライバと関連する印刷設定アプリケーション２１２の印刷設定画面を呼び出す。また、ＯＳは、ランゲージモニターを呼び出さない。ｖ４プリンタドライバ２１０（以降、単に「プリンタドライバ」と称す）は、印刷アプリケーション２０１が発行した印刷指示に従って印刷データを生成し、画像処理装置２１６に印刷データを送信する。また、プリンタドライバは、画像処理装置２１６から能力情報やステータス情報を取得する。
【００１５】
監視アプリケーション２０７は、ＯＳへのプリンタドライバの追加、削除、変更の少なくとも１つが実行されたか否かを監視する監視処理を実行する。なお、プリンタドライバの変更の例としては、プリンタアイコン名の変更や画像処理装置との通信を行うポートの変更が考えられる。
【００１６】
監視アプリケーション２０７は、プリンタドライバの追加を検知した場合、情報取得モジュール２０８を用いて、画像処理装置２１６から情報を取得する。なお、ここで取得された情報は、例えば、印刷設定アプリケーション２１２の設定画面を構築するために使われる。また、監視アプリケーション２０７は、プリンタドライバの削除を検知した場合、ファイル削除モジュール２０９を用いて、プリンタドライバ関連ファイル２１３を削除する。
【００１７】
プリンタドライバ関連ファイル２１３は、プリンタドライバ２１０に関連するファイルであり、プリンタドライバ２１０の各種設定に関する情報などが記録されている。このプリンタドライバ関連ファイル２１３は、情報処理装置内のＯＳが参照する記憶領域に生成され、プリンタドライバ２１０のアンインストールでは削除されない。ＯＳとしてＷｉｎｄｏｗｓ（登録商標）を用いる場合であれば、「ＰｒｏｇｒａｍＤａｔａ」フォルダや「ＡｐｐｌｉｃａｔｉｏｎＤａｔａ（ＡｐｐＤａｔａ）」フォルダが、プリンタドライバ関連ファイル２１３の生成場所として考えられる。プリンタドライバ関連ファイル２１３のファイル名やファイルを含むフォルダ名に命名規則を設けることで、どのプリンタドライバに関連するファイルかを識別することができる。
【００１８】
インストーラ２１４は、ユーザの指示により起動されることにより、監視アプリケーション２０７をインストールするためのソフトウェアである。監視アプリケーション２０７がインストーラ２１４によってインストールされる場合、監視アプリケーション２０７は、インストーラ２１４の監視アプリケーション登録モジュール２１５によってスタートアップに登録され、起動される。スタートアップに登録された監視アプリケーション２０７は、常駐アプリケーションとして動作する。つまり、監視アプリケーション２０７は、基本的にはＯＳの起動直後に処理を開始し、ＯＳの終了時に処理を終了する。このように監視アプリケーション２０７を常駐アプリケーションとして動作させることで、少なくとも監視対象のプリンタドライバが存在する場合に監視処理を継続することができる。言い換えれば、情報処理装置が起動された場合、監視アプリケーションは監視処理を実行する。
【００１９】
なお、監視アプリケーション２０７をプリンタドライバ２１０の構成物に含めてしまい、プリンタドライバ２１０の監視アプリケーション登録モジュール２１１が監視アプリケーション２０７をスタートアップに登録してもよい。この場合、プリンタドライバ２１０が動作するタイミング（例えば印刷実行時）で監視アプリケーション２０７がスタートアップに登録される。監視アプリケーション２０７がスタートアップに登録されることにより、ＯＳ再起動後やＯＳへの再ログイン後もＯＳによって監視アプリケーション２０７が起動され、動作を開始することが可能となる。
【００２０】
次に図２を用いて、ＰＣ２００から画像処理装置２１６へ印刷データが渡るまでのデータの流れを説明する。印刷アプリケーション２０１は、ＯＳが提供する印刷指示を行うＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を利用し、印刷処理の要求を行う。印刷処理の要求に基づいて発行された印刷ジョブは、ＯＳ内のプリントサブシステム２０２のスプーラー２０３にて処理される。スプーラー２０３は、印刷アプリケーション２０１から発行された印刷ジョブを、プリンタドライバ２１０へ送信する。プリンタドライバ２１０は、印刷ジョブを受信すると、ページ構成処理やコマンド生成処理を行い、画像処理装置２１６が解釈可能な印刷データを生成する。
【００２１】
ここでのページ構成処理とは、印刷アプリケーション２０１から指示された印刷設定情報に基づいてページの順序を並べ替える処理や、複数ページを用紙の１つの面に相当する物理ページに配置するための処理を指す。また、コマンド生成処理とは、印刷ジョブを画像処理装置２１６が解釈可能な印刷データへ変換する処理を指す。印刷ジョブを印刷データに変換する処理が完了すると、プリンタドライバ２１０はプリントサブシステム２０２内のポートモニタ２０４に印刷データを渡す。その後、ポートモニタ２０４は、デバイスインタフェース２０５、クラスドライバ２０６を介して、印刷データを画像処理装置２１６に転送する。
【００２２】
続いて、図２を用いて、監視アプリケーション２０７がプリンタドライバ２１０の追加、削除、変更を監視する方法について説明する。監視アプリケーション２０７は、一つ以上のプリンタドライバを監視対象とし、ＯＳが提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を利用し、プリンタドライバ２１０のインストール、アンインストールまたは変更を監視する。
【００２３】
監視アプリケーション２０７は、プリンタドライバ２１０のインストールを検知したら、ポートモニタ２０４を介して画像処理装置と通信する。そして、監視アプリケーション２０７は、画像処理装置２１６内の記憶装置２１７に記憶されている画像処理装置２１６の能力情報や、画像処理装置２１６が印刷可能な用紙の情報を取得する。ここで取得した情報は、プリンタドライバ２１０または印刷設定アプリケーション２１２に共有される。共有の方法は、プリンタドライバ関連ファイル２１３への出力であってもよいし、プリンタドライバ２１０または印刷設定アプリケーション２１２が公開する関数を呼び出し、その引数として受け渡してもよい。また、別の方法でもよい。なお、ここで共有された情報は、印刷実行時のプリンタドライバ２１０の処理を決定するために用いられる。例えば、プリンタドライバ２１０は、画像処理装置２１６がユーザ名およびホスト名を受信可能か否かを、共有された情報に基づいて判定する。この判定結果により、プリンタドライバ２１０は、印刷データにユーザ名およびホスト名を設定するか否かを決定する。また、印刷設定アプリケーション２１２が、共有された情報に基づいて表示する印刷設定画面の内容を決定する。
【００２４】
また、監視アプリケーション２０７は、プリンタドライバ２１０のアンインストールを検知したら、プリンタドライバ２１０の構成物には含まれず、アンインストールによって削除されないプリンタドライバ関連ファイル２１３を削除する。なお、削除する対象はレジストリに記載された情報であってもよい。具体的には、削除対象となるプリンタドライバ関連ファイル２１３は、アンインストールされたプリンタドライバのプリンタドライバ名のフォルダ内に保持されている。そのため、監視アプリケーション２０７は、アンインストールされたプリンタドライバ名を特定することで、削除すべきフォルダを特定し、そのフォルダを削除する。結果として、アンインストールされたプリンタドライバのプリンタドライバ関連ファイル２１３が削除される。
【００２５】
また、監視アプリケーション２０７は、プリンタドライバ２１０の変更を検知したら、プリンタドライバ関連ファイル２１３の生成場所の変更や、記載内容の変更を行う。
【００２６】
図３は、監視アプリケーションの処理の流れを示すフローチャートである。なお、本願では、ＣＰＵ１０３がフローチャートの処理に必要なプログラムを読み出して実行する子でフローチャートの処理が実行される。ＯＳ、インストーラまたはプリンタドライバからの指示により監視アプリケーション２０７が起動される（Ｓ３０１）。Ｓ３０１の後、監視アプリケーション２０７による監視処理が始まる。監視アプリケーション２０７は、ＯＳが提供するＡＰＩを使用し、プリンタドライバの追加、削除、変更を検知する為のイベントをＯＳに登録するイベント登録処理を実行する（Ｓ３０２）。例えばＷｉｎｄｏｗｓの場合、ＦｉｎｄＦｉｒｓｔＰｒｉｎｔｅｒＣｈａｎｇｅＮｏｔｉｆｉｃａｔｉｏｎ  ＡＰＩ、ＦｉｎｄＮｅｘｔＰｒｉｎｔｅｒＣｈａｎｇｅＮｏｔｉｆｉｃａｔｉｏｎ  ＡＰＩを使用することで、監視アプリケーション２０７は、ＯＳへのプリンタドライバの追加、削除、変更を監視できる。このイベント登録が行われることにより、ＯＳは、プリンタドライバの追加、削除、変更が発生したことを監視アプリケーション２０７に対してイベントとして通知できる。
【００２７】
次に、監視アプリケーション２０７は、ＯＳが提供するＥｎｕｍＰｒｉｎｔｅｒｓ  ＡＰＩを使用してＯＳにインストールされている各プリンタの情報（ＰＲＩＮＴＥＲ＿ＩＮＦＯ構造体）を取得する。そして、監視アプリケーション２０７は、この情報を元にプリンタドライバ名やプリンタアイコン名を列挙したプリンタドライバリスト１を生成する（Ｓ３０３）。なお、ステップＳ３０２とステップＳ３０３の処理を行う順番は逆でもよい。次に監視アプリケーション２０７が、ＯＳからイベントが発行されたか否かを検知する（Ｓ３０４）。
【００２８】
Ｓ３０２の登録により、プリンタドライバが新規に追加された場合、ＯＳはプリンタドライバの追加に対応するイベントを監視アプリケーション２０７に通知する。また、プリンタドライバがアンインストールされた場合、ＯＳはプリンタドライバのアンインストールに対応するイベントを監視アプリケーション２０７に通知する。同様に、プリンタドライバが変更された場合、ＯＳはプリンタドライバの変更に対応するイベントを監視アプリケーション２０７に通知する。Ｓ３０４において監視アプリケーション２０７が、いずれかのイベントを検知した場合、Ｓ３０３と同様に、その時点でＯＳにインストールされているプリンタドライバの情報を列挙したプリンタドライバリスト２を生成する（Ｓ３０５）。なお、二つのプリンタドライバリストを生成する目的について説明する。監視アプリケーション２０７は、イベントを受信することでプリンタドライバの追加、削除、変更のいずれが行われたかを認識することはできるが、どのプリンタドライバに対する処理であるかをイベントのみでは判定できない。そのため、監視アプリケーション２０７は、Ｓ３０３とＳ３０５で作成したリストを使って、イベント検知前後で追加、削除、変更されたプリンタドライバを特定する。
【００２９】
なお、監視アプリケーション２０７は、２つのリスト間におけるプリンタドライバの有無を確認することで、追加または削除されたプリンタドライバを特定できる。また、プリンタドライバリストにプリンタドライバ名に紐付けてプリンタアイコン名、ポート名が記載されている場合、監視アプリケーション２０７は、２つのリストの比較結果からプリンタアイコン名またはポート名が変更されたプリンタドライバを特定できる。
【００３０】
監視アプリケーション２０７は、Ｓ３０３で生成したプリンタドライバリスト１と、Ｓ３０５で生成したプリンタドライバリスト２を比較し、その差分から、ステップＳ３０４で検知したイベントの対象となるプリンタドライバを特定する（Ｓ３０６）。続いて、監視アプリケーション２０７は、ステップＳ３０６で特定したプリンタドライバが、監視対象のプリンタドライバか否かを判定する（Ｓ３０７）。判定の方法としては、プリンタドライバ名に含まれる文字列を使用する方法がある。その他、ＧｅｔＰｒｉｎｔｅｒＤｒｉｖｅｒ  ＡＰＩを使用して取得したプリンタドライバのアーキテクチャーバージョン情報、ｖ３プリンタドライバ、ｖ４プリンタドライバで差異のあるプリンタドライバのインストールフォルダなどを用いる方法が考えられる。また、これらの情報を組み合わせて判定しても良い。例えば、監視アプリケーション２０７は、所定の製造元のプリンタドライバであり、かつ、ｖ４プリンタドライバであるという両者の条件を満たすプリンタドライバを監視対象のプリンタドライバとして判定しても良い。また、監視アプリケーション２０７は、上記両者の条件のうち少なくとも１つを満たすプリンタドライバを監視対象のプリンタドライバと判定しても良い。ステップＳ３０７の判定によって、ステップＳ３０６で特定したプリンタドライバが監視対象のプリンタドライバではないと判定された場合には、ステップＳ３０３に戻り、処理を継続する。ステップＳ３０７の判定によって、ステップＳ３０６で特定したプリンタドライバが監視対象のプリンタドライバであると判定された場合、監視アプリケーション２０７は、ステップＳ３０４で検知したイベントの種類を確認する（Ｓ３０８）。
【００３１】
監視アプリケーション２０７は、ＯＳから発行されたイベントを解析することで、プリンタドライバの追加、削除、変更のいずれのイベントが発生したかを特定できる。なお、プリンタドライバリスト２を生成し、プリンタドライバリスト１と比較する処理（ステップＳ３０５、ステップＳ３０６）は、ステップＳ３０８の後に実施してもよい。ステップＳ３０８の確認の結果、イベントの種類がプリンタドライバの追加を示すイベントであれば、監視アプリケーション２０７は、プリンタドライバが新規にインストールされたと判断する。そして、監視アプリケーション２０７はプリンタドライバのインストールイベントを検知した際に実施する処理を実行する（Ｓ３０９）。
【００３２】
監視処理中にプリンタドライバのインストール処理が発生した場合におけるＳ３０９の処理の例として、監視アプリケーション２０７による先述の画像処理装置の能力情報の取得処理や、画像処理装置に登録された印刷可能な用紙の情報を取得するが挙げられる。そして、監視アプリケーション２０７は、プリンタドライバ２１０や印刷設定アプリケーション２１２に取得された情報を共有する。これにより、印刷実行時のプリンタドライバ２１０の処理が決定される。また、取得された情報が、印刷設定アプリケーション２１２により提供される印刷設定画面上に反映される。
【００３３】
ここで図４および図５を用いて、監視アプリケーション２０７から共有された画像処理装置が印刷可能な用紙の情報をもとに、印刷設定アプリケーション２１２の処理を決定する例を説明する。図４はＯＳのデバイス管理画面の一例を表す図である。デバイス管理画面４０１には、ＯＳにインストールされているプリンタドライバのアイコンが表示される。プリンタアイコン４０２には、「ＡＡＡ  Ｃ−３３３  Ｐｒｉｎｔｅｒ」というプリンタアイコン名４０３がつけられている。ユーザがプリンタアイコン４０２を選択することで、プリンタアイコン４０２に対して実行可能な操作を示すメニュー４０４が表示される。
【００３４】
図５は印刷設定アプリケーション２１２の印刷設定画面を表す図であり、プリンタアイコン４０２の操作メニュー４０４の中から印刷設定４０５を選んだ際に表示される。５０１は印刷設定アプリケーション２１２の印刷設定画面であり、５０２はプリンタアイコン名である。印刷設定画面５０１は複数のシートを持つ構成であり、ここではそのうちの基本設定シート５０３が選択されている状態を示している。この基本設定シート５０３では、用紙の種類、用紙サイズ、印刷品質のそれぞれの設定を行うことができ、５０４は現在選択されている用紙の種類を示している。５０５は用紙の種類として選択可能な選択肢を示しており、ここに表示する選択肢は、監視アプリケーション２０７が画像処理装置２１６から取得した情報をもとに決定されている。図３の説明に戻る。ステップＳ３０８において、イベントの種類がプリンタドライバの削除を示すイベントであれば、監視アプリケーション２０７はプリンタドライバがアンインストールされたと判断する。そして、監視アプリケーション２０７は、プリンタドライバのアンインストールイベントを検知した際に実施する処理を実行する（Ｓ３１０）。監視処理中にプリンタドライバのアンインストール処理が発生した場合における処理の例として、監視アプリケーション２０７によるアンインストールされたプリンタドライバの関連ファイルを削除する処理が挙げられる。
【００３５】
ステップＳ３０８において、イベントの種類がプリンタドライバの変更を示すイベントであれば、監視アプリケーション２０７はプリンタドライバが変更されたと判断する。そして、監視アプリケーション２０７は、プリンタドライバの変更を検知した際に実施する処理を実行する（Ｓ３１１）。監視処理中にプリンタドライバの変更処理が発生した場合における処理の例として、監視アプリケーション２０７による先述のプリンタドライバ関連ファイル２１３の生成場所変更や編集といった処理が挙げられる。
【００３６】
なお、ステップＳ３０９〜ステップＳ３１１のいずれの処理も、監視アプリケーション２０７によって呼び出された他のソフトウェアが実施してもよい。また、Ｓ３０９−Ｓ３１１がプリンタドライバを特定する必要なく実施できる処理である場合や、イベント検知時にイベント対象のプリンタドライバが特定できる場合には、Ｓ３０３、Ｓ３０５−Ｓ３０７がスキップされても良い。
【００３７】
なお、図３のステップＳ３０３〜ステップＳ３１１の処理は、監視アプリケーション２０７が起動している間、繰り返される。また、監視アプリケーションは、監視対象のプリンタドライバの追加（インストール）、削除（アンインストール）、変更の全てに対する処理を実行しても良いし、少なくとも１つの処理を実行しても良い。
【００３８】
以上説明したように、本実施形態においては、ＯＳから通知されるイベントを監視する監視アプリケーション２０７を用意することで、プリンタドライバのインストール時、アンインストール時、変更時に、ベンダー独自の処理を実施することができる。
【００３９】
（第２の実施形態）
図６は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第１の実施形態と異なる点は、ＯＳへのプリンタドライバの追加、削除、変更を検知する方法である。なお、本実施形態においても、図１で説明した情報処理装置１００と画像処理装置１５０を使用するものとする。
【００４０】
第１の実施形態では、図３のステップＳ３０２において、監視アプリケーション２０７は、ＯＳにより提供されるＦｉｎｄＦｉｒｓｔＰｒｉｎｔｅｒＣｈａｎｇｅＮｏｔｉｆｉｃａｔｉｏｎ  ＡＰＩ、ＦｉｎｄＮｅｘｔＰｒｉｎｔｅｒＣｈａｎｇｅＮｏｔｉｆｉｃａｔｉｏｎ  ＡＰＩを使用し、ＯＳへのプリンタドライバの追加、削除、変更を監視するためのイベント登録を行った。本実施形態では、こうしたＯＳが提供するイベントの仕組みを利用せずにＯＳへのプリンタドライバの追加、削除、変更を監視する方法について説明する。
【００４１】
ＯＳ、インストーラまたはプリンタドライバによって監視アプリケーション２０７が起動される（Ｓ６０１）。Ｓ６０１の後、監視アプリケーション２０７による監視処理が始まる。監視アプリケーション２０７は、ＯＳが提供するＥｎｕｍＰｒｉｎｔｅｒｓ  ＡＰＩを使用してＯＳにインストールされている全てのプリンタの情報（ＰＲＩＮＴＥＲ＿ＩＮＦＯ構造体）を取得する。そして、監視アプリケーション２０７は、この情報を元にプリンタドライバ名やプリンタアイコン名を列挙したプリンタドライバリスト１を生成する（Ｓ６０２）。その後、所定時間経過した後において（Ｓ６０３）、監視アプリケーション２０７は、ステップＳ６０２と同様の方法で、プリンタドライバリスト２を生成する（Ｓ６０４）。
【００４２】
なお、二つのプリンタドライバリストを生成する目的は、イベント検知前後で追加、削除、変更されたプリンタドライバを特定するためである。監視アプリケーション２０７はステップＳ６０２で生成したプリンタドライバリスト１と、ステップＳ６０４で生成したプリンタドライバリスト２を比較する。監視アプリケーション２０７は、両者の比較結果から、ステップＳ６０３の前後でプリンタドライバの追加、削除、変更が行われたか否かを判別することができる。二つのリストに差分がなければ、ステップＳ６０３に戻って処理を継続する。ステップＳ６０５の比較の結果、二つのリストに差分があった場合には、差分として特定されたプリンタドライバが監視対象のプリンタドライバか否かを判定する（Ｓ６０６）。判定の方法は、Ｓ３０７と同じである。Ｓ６０６の判定の結果、Ｓ６０５で差分として特定されたプリンタドライバが監視対象のプリンタドライバでないと判定された場合、監視アプリケーション２０７は、ドライバリスト１の内容を更新する（Ｓ６０７）。なお、Ｓ６０７の更新処理とは、ドライバリスト２の内容でドライバリスト１の内容を上書きする処理に相当する。
【００４３】
そして、ステップＳ６０３に戻って処理を継続する。
【００４４】
Ｓ６０６においてＳ６０５で差分として特定されたプリンタドライバが監視対象のプリンタドライバであると判定された場合、監視アプリケーション２０７は、二つのリストの差分からプリンタドライバについて発生したイベントの種類を判定する（Ｓ６０８）。例えばプリンタドライバリスト１に記載されていないプリンタドライバがプリンタドライバリスト２に存在する場合、ステップＳ６０３の前後でプリンタドライバが追加されたと判定できる。一方、プリンタドライバ１に記載されているプリンタドライバがプリンタドライバ２に存在しない場合には、ステップＳ６０３の前後でプリンタドライバが削除されたと判定できる。また、プリンタドライバリストに記載する情報を工夫することで、プリンタドライバの変更も検知することができる。例えばプリンタドライバ名に紐付けてプリンタアイコン名、ポート名などを記載しておけば、プリンタアイコン名、ポート名が変更されてもそのことを検知することができる。ステップＳ６０８〜Ｓ６１１の処理は、第１の実施形態にて説明しているため詳細は省略する。Ｓ６０９、Ｓ６１０またはＳ６１１の処理の後、監視アプリケーション２０７は、ドライバリスト１の内容を更新し（Ｓ６１２）、ステップＳ６０３に戻って処理を継続する。Ｓ６１２の更新処理の一例は、ドライバリスト２の内容でドライバリスト１の内容を上書きする処理である。なお、ステップＳ６０３〜ステップＳ６１２の処理は、監視アプリケーション２０７が起動している間、繰り返される。また、ステップＳ６０５で差分として複数のプリンタドライバが特定された場合、任意の一つのプリンタドライバが選定されてＳ６０６以降の処理が実行される。Ｓ６０７またはＳ６１２のリスト１の更新処理において、選定したそのプリンタドライバについてのみの更新を行うことにより、ここで選定されなかった残りのプリンタドライバを再度Ｓ６０３に戻った後の処理で差分として抽出することが可能となる。
【００４５】
以上説明したように、本実施形態においては、ＯＳが提供するイベントの仕組みを利用せずにＯＳへのプリンタドライバの追加、削除、変更を監視することが可能となる。
【００４６】
（第３の実施形態）
図７は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。ここでは、監視アプリケーション２０７の終了処理について説明する。監視アプリケーション２０７はインストーラやプリンタドライバによってスタートアップに登録されるため、基本的にはＯＳの起動直後に処理を開始し、ＯＳの終了時に処理を終了する。しかしながら、ＯＳに監視対象のプリンタドライバが存在しない状況で処理を続けてしまうと、情報処理装置のメモリやＣＰＵリソースを無駄に消費してしまうことになる。そこで本実施形態では、ＯＳに監視対象のプリンタドライバが存在するか否かを確認し、存在しない場合に監視アプリケーション２０７の処理を終了することによって、不要なリソース消費を抑える方法について説明する。なお、本実施形態においても、図１で説明した情報処理装置１００と画像処理装置１５０を使用するものとする。
【００４７】
ＯＳ、インストーラまたはプリンタドライバによって監視アプリケーション２０７が起動される（Ｓ７０１）。監視アプリケーション２０７は、ＯＳが提供するＥｎｕｍＰｒｉｎｔｅｒｓ  ＡＰＩを使用してＯＳにインストールされている各プリンタの情報（ＰＲＩＮＴＥＲ＿ＩＮＦＯ構造体）を取得する。そして、監視アプリケーション２０７は、この情報を元にプリンタドライバ名を列挙したプリンタドライバリストを生成する（Ｓ７０２）。続いて、監視アプリケーション２０７は、プリンタドライバリストに含まれるプリンタドライバの総数を変数ｎにセットする（Ｓ７０３）。次に、監視アプリケーション２０７は、プリンタドライバリストに含まれる一つ目のプリンタドライバを選定し（Ｓ７０４）、そのプリンタドライバが監視対象のプリンタドライバか否かを判定する（Ｓ７０５）。なお、判定の方法は、Ｓ３０７と同様である。ステップＳ７０５の判定の結果、選定したプリンタドライバが監視対象のプリンタドライバであると判定された場合には、ＯＳに監視対象のプリンタドライバが存在することになり、監視アプリケーション２０７は処理を継続する。一方、ステップＳ７０５の判定によって、選定されたプリンタドライバが監視対象のプリンタドライバでないと判定された場合、監視アプリケーション２０７は、ドライバリストに含まれる他のプリンタドライバを選定する（Ｓ７０４）。そして、監視アプリケーション２０７は、再びステップＳ７０５の判定を実施する。プリンタドライバリストに含まれるすべてのプリンタドライバについてステップＳ７０５の判定を行った結果、いずれも監視対象のプリンタでないと判定された場合には、監視アプリケーション２０７は処理を終了する（Ｓ７０６）。ここで終了する処理は、監視アプリケーション２０７の全ての処理であってもよいし、第１の実施形態または第２の実施形態で説明したプリンタドライバの追加、削除または変更を検知する処理であってもよい。後者の場合、定期的に本実施形態で説明した処理を実施することで、新たに監視対象のプリンタドライバがＯＳに追加されたとしても、そのことを検知し、再び第１の実施形態または第２の実施形態で説明した処理を再開することが可能となる。なお、Ｓ７０５の判定においてＹｅｓと判定された場合、図７の処理に続いて、監視アプリケーション２０７は、第１の実施形態または第２の実施形態に記載した内容に基づく監視処理を実行する。
【００４８】
なお、ステップＳ７０３以降の処理は、Ｓ３０３で生成したドライバリスト１に対して実施してもよいし、Ｓ６０２で生成したドライバリスト１、またはＳ６０４で生成したドライバリスト２に対して実施してもよい。また、第１の実施形態もしくは第２の実施形態とは関係なく実施してもよい。
【００４９】
（第４の実施形態）
図８は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第３の実施形態では、ＯＳに監視対象のプリンタドライバが存在しない場合に、監視アプリケーション２０７の処理を終了する説明した。しかしながら、監視アプリケーション２０７が処理を終了したとしても、監視アプリケーション２０７はスタートアップに残ったままであり、ＯＳが再度起動されたタイミングで処理を開始してしまう。そこで本実施形態では、ＯＳに監視対象のプリンタドライバがないことを検知した際、監視アプリケーション２０７が第１の実施形態または第２の実施形態で説明した処理を停止し、その後に自らを削除する処理について説明する。なお、本実施形態においても、図１で説明した情報処理装置１００と画像処理装置１５０を使用するものとする。
【００５０】
なお、Ｓ８０１〜Ｓ８０６は、図７のＳ７０１〜Ｓ７０６と同様の処理であるため詳細な説明は省略する。ステップＳ８０７において、監視アプリケーション２０７自体を削除する。ステップＳ８０７の処理の例としては、監視アプリケーション２０７を削除するコマンドを記載したバッチファイルを生成し、これを別プロセスで実行する処理が考えられる。
【００５１】
なお、ステップＳ８０３以降の処理は、第１の実施形態のステップＳ３０３で生成したドライバリスト１に対して実施しても良い。または、第２の実施形態のステップＳ６０２で生成したドライバリスト１、またはステップＳ６０４で生成したドライバリスト２に対して実施しても良い。また、第１の実施形態もしくは第２の実施形態とは関係なく実施してもよい。
【００５２】
（第５の実施形態）
図９は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第１の実施形態または第２の実施形態で説明したように、監視アプリケーション２０７は、監視アプリケーション２０７起動後のＯＳへのプリンタドライバの追加を監視する。そのため、監視アプリケーション２０７が起動する前に既にインストールされているプリンタドライバの中に監視対象となるプリンタドライバがある場合、そうしたプリンタドライバに対して、インストールを検知した際の処理を実施できない。そこで本実施形態では、監視アプリケーション２０７が起動する前にインストールされているプリンタドライバの有無を確認し、必要に応じて、プリンタドライバのインストールを検知した際の処理を行う方法について説明する。なお、本実施形態においても、図１で説明した情報処理装置１００と画像処理装置１５０を使用するものとする。また、本実施形態では、第１の実施形態で例に挙げた画像処理装置２１６から取得した情報をプリンタドライバ２１０に共有する処理をインストール時処理として実施するものとする。
【００５３】
なお、Ｓ９０１〜Ｓ９０５は、Ｓ７０１〜Ｓ７０５と同様の処理であるため詳細な説明は省略する。ステップＳ９０５の判定の結果、選定したプリンタドライバが監視対象のプリンタドライバであると判定された場合、監視アプリケーション２０７は、そのプリンタドライバに対してインストール時処理が必要か否かを判定する。判定の方法としては例えば、インストール時処理の際にプリンタドライバ関連ファイル２１３を生成するのであれば、監視アプリケーション２０７は、プリンタドライバ関連ファイルの存在もしくは内容を確認する方法が考えられる。既にファイルが存在する場合、もしくはファイルが存在し、その中にインストール時処理の際に記載する情報が既に記載されている場合、監視アプリケーション２０７は、インストール時処理は不要と判定する。そして、監視アプリケーション２０７は、ドライバリストに含まれる他のプリンタドライバを選定し（Ｓ９０４）、再びステップＳ９０５の判定を実施する。なお、ステップＳ９０５の判定ついては、インストール時処理の際にレジストリを経由して情報を共有するのであれば、そのレジストリ情報の有無を確認して判定しても良い。または、プリンタドライバ２１０が公開する関数を呼び出して、インストール時処理が完了しているか否かの情報を返却してもらって判定しても良い。また、インストール時処理を繰り返し行っても問題ない場合には、ステップＳ９０６の判定は行わずに、ステップＳ９０７に進んでもよい。ステップＳ９０６の判定において、ステップＳ９０４で選定したプリンタドライバに対してインストール時処理が必要と判定された場合には、ステップＳ９０４で選定されたプリンタドライバについて、インストール時処理を実施する（Ｓ９０７）。ステップＳ９０７で実施する処理の例は、第１の実施形態に記載の通りである。なお、ステップＳ９０７で実施する処理は、監視アプリケーション２０７によって呼び出された他のソフトウェアが実施してもよい。
【００５４】
また、Ｓ９０２で生成したリストに含まれる全プリンタドライバに対してＳ９０４〜Ｓ９０７を実施することで、監視アプリケーション２０７の起動前にインストールされているプリンタドライバに、インストールを検知した際に行う処理が実施される。
【００５５】
（第６の実施形態）
図１０は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第１の実施形態または第２の実施形態で説明したように、監視アプリケーション２０７は、監視アプリケーション２０７起動後のＯＳからのプリンタドライバの削除を監視する。そのため、監視アプリケーション２０７が起動する前に既にプリンタドライバがアンインストールされている場合には、アンインストールを検知した際に行う処理を実施することができない。そこで本実施形態では、監視アプリケーション２０７が起動する前にアンインストールされたプリンタドライバに対する処理について説明する。なお、本実施形態においても、図１で説明した情報処理装置１００と画像処理装置１５０を使用するものとする。また、本実施形態では、第１の実施形態で例に挙げたプリンタドライバ関連ファイル２１３を削除する処理を、アンインストール時処理として行うものとする。
【００５６】
Ｓ１００１−Ｓ１００３はＳ７０１−Ｓ７０３の処理と同様であるため詳細な説明は省略する。次に、監視アプリケーション２０７は、ＯＳが参照する記憶領域に配置されているプリンタドライバ関連ファイルのリスト（以後、ファイルリスト）を生成し（Ｓ１００４）、リストに含まれるプリンタドライバ関連ファイルの総数を変数ｎにセットする。その後、監視アプリケーション２０７は、ファイルリストに含まれる一つ目のファイルを選定する（Ｓ１００６）。ステップＳ１００７において、監視アプリケーション２０７は、プリンタドライバリストに含まれる一つ目のプリンタドライバを選定する。そして、監視アプリケーション２０７は、ステップＳ１００６で選定したプリンタドライバ関連ファイルが、ステップＳ１００７で選定したプリンタドライバに関連するものか否かを判定する（Ｓ１００８）。その結果、ステップＳ１００７で選定したプリンタドライバに関連するファイルであると判定された場合、監視アプリケーション２０７は、ファイルリストに含まれる他のプリンタドライバ関連ファイルを選定する（Ｓ１００６）。監視アプリケーション２０７は、再びステップＳ１００７の処理を実施する。Ｓ１００８の判定の結果、Ｓ１００６で選定されたプリンタドライバ関連ファイルが、Ｓ１００７で選定されたプリンタドライバに関連するファイルでない場合、監視アプリケーション２０７は、リストに含まれる他のプリンタドライバを選定する（Ｓ１００７）。そして、監視アプリケーション２０７は、再びステップＳ１００８の判定を実施する。Ｓ１００６で選定したドライバ関連ファイルが、Ｓ１００２で生成したリストに含まれるプリンタドライバに関連しない場合、監視アプリケーション２０７は、アンインストール時処理として、そのプリンタドライバ関連ファイルを削除する（Ｓ１００９）。なお、ステップＳ１００９で実施する処理は、監視アプリケーション２０７によって呼び出された他のソフトウェアが実施してもよい。Ｓ１００４で生成したリスト内の全プリンタドライバ関連ファイルにＳ１００７〜Ｓ１００９を実施することで、監視アプリケーション２０７の起動前にアンインストールされたプリンタドライバに、アンインストールを検知した際に行う処理が実施される。
【００５７】
なお、本願では、ＯＳとして、Ｗｉｎｄｏｗｓが使用された例を用いて説明したが、他のＯＳが用いられる時に本願のいずれかの処理が実行されても良い。
【００５８】
さらにまた、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をＡＳＩＣ等のハードウェアで実現するようにしてもよい。また、ＣＰＵも１つのＣＰＵで全ての処理を行うものに限らず、複数のＣＰＵが適宜連携をしながら処理を行うものとしてもよい。
【符号の説明】
【００５９】
１００  情報処理装置
１０１  キーボード
１０２  入力インタフェース
１０３  ＣＰＵ
１０４  ＲＯＭ
１０５  ＲＡＭ
【図１】
2018084893.tif 000003
【図２】
2018084893.tif 000004
【図３】
2018084893.tif 000005
【図４】
2018084893.tif 000006
【図５】
2018084893.tif 000007
【図６】
2018084893.tif 000008
【図７】
2018084893.tif 000009
【図８】
2018084893.tif 000010
【図９】
2018084893.tif 000011
【図１０】
2018084893.tif 000012