(57)【要約】      （修正有）【課題】ｖ４プリンタドライバのアーキテクチャーにおいても、インストーラの利用可否に係らず、画像処理装置の動作中のステータスを情報処理装置で監視することが可能な状況を実現する。【解決手段】プリンタ２６０の状態に関する情報を取得して表示するためのステータス管理プログラム２３１と、このステータス管理プログラムを起動するための監視アプリケーション２４１と、をＰＣ２１０に用意する。そして、監視アプリケーションに画像処理装置におけるイベントの発生を検知させ、検知した情報に基づいてステータス管理プログラムを起動する。【選択図】図２
2018026049.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して画像処理装置に接続された情報処理装置であって、
前記画像処理装置の状態に関する情報を取得して表示するためのステータス管理プログラムを起動するための制御手段を備え、
前記情報処理装置において印刷ジョブを生成するプリンタドライバは、印刷ジョブの生成指示に従って前記ステータス管理プログラムを起動することができず、
前記制御手段は、前記画像処理装置に対する印刷ジョブが生成された場合、前記ステータス管理プログラムを起動することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記ステータス管理プログラムをインストールするためのインストーラが備える登録手段によって、登録されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記ステータス管理プログラムに付随する登録手段によって、登録されることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記制御手段は、前記画像処理装置に対する印刷が実行された場合に登録されることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記画像処理装置または前記画像処理装置に対応するプリントキューを監視対象として登録する登録手段と、
前記画像処理装置または前記プリントキューにおけるイベントの発生を検出するイベント判定手段と、
を更に備え、
前記制御手段は、前記イベント判定手段がイベントを検出した際に、前記ステータス管理プログラムを起動することを特徴とする請求項１ないし４のいずれか１項に記載の情報処理装置。
【請求項６】
スプーラーサービスの再起動を検知する検知手段を更に備え、
前記検知手段が前記スプーラーサービスの再起動を検知した場合、前記登録手段は、前記画像処理装置または前記画像処理装置に対応するプリントキューを監視対象のデバイスとして再登録することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記画像処理装置は、前記情報処理装置から提供された印刷ジョブに基づいてプリント動作を実行するプリンタであることを特徴とする請求項１ないし６のいずれか１項に記載の情報処理装置。
【請求項８】
ネットワークを介して画像処理装置に接続された情報処理装置の制御方法であって、
前記画像処理装置の状態に関する情報を取得して表示するためのステータス管理プログラムを起動するための制御工程を有し、
前記情報処理装置において印刷ジョブを生成するプリンタドライバは、印刷ジョブの生成指示に従って前記ステータス管理プログラムを起動することができず、
前記制御工程は、前記画像処理装置に対する印刷ジョブが生成された場合、前記ステータス管理プログラムを起動することを特徴とする情報処理装置の制御方法。
【請求項９】
ネットワークを介して画像処理装置に接続された情報処理装置が有する制御手段に実行させるためのプログラムであって、
前記情報処理装置において印刷ジョブを生成するプリンタドライバは、前記画像処理装置の状態に関する情報を取得して表示するためのステータス管理プログラムを、印刷ジョブの生成指示に従って起動することができず、
前記制御手段は、前記画像処理装置に対する印刷ジョブが生成された場合、前記ステータス管理プログラムを起動することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク環境下において画像処理装置のようなデバイスに接続する情報処理装置、その制御方法およびプログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置とプリンタなどの画像処理装置とがネットワーク接続される情報処理システムにおいて、情報処理装置は、画像処理装置の状態（ステータス）を監視するための監視機能（ステータス管理プログラム）を備える。ステータス管理プログラムは、ステータスを最新情報に更新するため、定期的に画像処理装置からステータス情報を取得することが好ましい。しかし、定期取得を行うと、ネットワークトラフィックが増加したり、画像処理装置の処理負荷が増大したりして、画像処理装置または情報処理装置の処理速度が低下してしまう場合がある。
【０００３】
マイクロソフト社のＯＳであるＷｉｎｄｏｗｓ（登録商標）が提供するプリンタドライバ（ｖ３プリンタドライバ）アーキテクチャーにおいては、情報処理装置にベンダー独自のユーザインターフェースモジュールを登録する仕組みがある。そして、特許文献１には、プリント開始時に、ＯＳからベンダー独自のユーザインターフェースモジュールのＤｒｖＤｏｃｕｍｅｎｔＥｖｅｎｔ関数がコールされ、当該関数内をベンダーが独自にカスタマイズする構成が開示されている。
【０００４】
すなわち、従来のＷｉｎｄｏｗｓプリンタドライバ（ｖ３プリンタドライバ）環境下で特許文献１を利用すれば、ステータス管理プログラムは、その動作期間を最小限に抑えることができる。具体的には、プリント開始のコマンドとともに起動され、ベンダー独自のユーザインターフェースモジュールからステータス管理プログラムを起動することができる。そして、情報処理装置は、画像処理装置との通信によって、プリントの進捗や、画像処理装置で発生しているエラーに関する情報を取得し、これをユーザに報知することができる。また、画像処理装置でプリント動作が完了したことをステータス管理プログラムが検知すると、ステータス管理プログラムは動作を終了することができる。
【０００５】
このように、従来のＷｉｎｄｏｗｓプリンタドライバ（ｖ３プリンタドライバ）アーキテクチャーでは、ステータス管理プログラムを、画像処理装置のプリント動作中などに限定して起動することが可能であった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１４０２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、次世代のＷｉｎｄｏｗｓプリンタドライバ（ｖ４プリンタドライバ）アーキテクチャーでは、上述したベンダー独自のユーザインターフェースモジュールの登録を行う仕組みがサポートされていない。そのため、次世代のＷｉｎｄｏｗｓプリンタドライバ（ｖ４プリンタドライバ）では、プリント開始時にユーザインターフェースモジュールからステータス管理プログラムを起動することができない。
【０００８】
ｖ４プリンタドライバでは、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）  ＯＳの通知機能であるトースト通知機能を利用して、ステータス管理プログラムを起動する仕組みはサポートされている。しかし、ＯＳによるトースト通知は、デフォルトで５秒程の表示で行われ、この通知期間にユーザがトーストをクリックしないとステータス管理プログラムを起動することができない。
【０００９】
つまり、ｖ４プリンタドライバのアーキテクチャーにおいては、プリント開始時にｖ４プリンタドライバからステータス管理プログラムを起動することができない。その結果、ユーザに対して、報知すべき情報が報知されないおそれがあった。
【００１０】
この課題を回避するために、インストーラからｖ４プリンタドライバのインストールを行う際に、ステータス管理プログラムをスタートアップ登録やサービス登録をすることで常駐起動させる手法がある。しかし、インストーラを利用できず、プリンタドライバのみを単体でインストールせざるを得ない場合には、この手法が適用できない。例えば、マイクロソフト社が運営するＷｉｎｄｏｗｓＵｐｄａｔｅの配信サーバーからプリンタドライバがインストールされる環境や、マイクロソフト社のＰｏｉｎｔ＆Ｐｒｉｎｔ（登録商標）の仕組みで構成されるプリントサーバシステム環境がこれに該当する。  本発明は上記課題を解決するためになされたものである。よってその目的とするところは、ｖ４プリンタドライバのアーキテクチャーにおいても、インストーラの利用可否に係らず、画像処理装置の動作中のステータスを監視することが可能な状況を実現することである。
【課題を解決するための手段】
【００１１】
そのために本発明は、ネットワークを介して画像処理装置に接続された情報処理装置であって、前記画像処理装置の状態に関する情報を取得して表示するためのステータス管理プログラムを起動するための制御手段を備え、前記情報処理装置において印刷ジョブを生成するプリンタドライバは、印刷ジョブの生成指示に従って前記ステータス管理プログラムを起動することができず、前記制御手段は、前記画像処理装置に対する印刷ジョブが生成された場合、前記ステータス管理プログラムを起動することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ｖ４プリンタドライバのアーキテクチャーにおいても、インストーラの利用可否に係らず、画像処理装置の動作中のステータスを監視することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置と画像処理装置のハードウェア構成図である。
【図２】情報処理装置と画像処理装置を接続するネットワーク環境を示す図である。
【図３】ステータス管理プログラムによるＵＩ表示の一例である。
【図４】インストーラの起動に伴う処理を示すフローチャートである。
【図５】インストーラの起動を伴わない場合の処理の一例を示すフローチャートである。
【図６】インストーラの起動を伴わない場合の処理の別例を示すフローチャートである。
【図７】プリンタの監視処理を説明するためのフローチャートである。
【図８】第２の実施形態におけるネットワーク環境を示す図である。
【図９】プリンタの監視処理を説明するためのフローチャートである。
【図１０】スプーラー監視処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
（第１の実施形態）
図１は、本実施形態で使用する情報処理装置１００と画像処理装置１５０のハードウェア構成図である。情報処理装置１００は、入力インタフェース１０２、ＣＰＵ１０３、ＲＯＭ１０４、ＲＡＭ１０５、外部記憶装置１０６、出力インタフェース１０８、表示部１０７、キーボード１０１、マウス１０９、ネットワークインタフェース１１０を有する。
【００１５】
ネットワークインタフェース１１０は、ネットワークケーブル１１１を介して、情報処理装置１００とネットワーク２２０を接続し、両者の間で情報の入出力を行う。ＲＯＭ１０４には初期化プログラムが保存されており、外部記憶装置１０６にはアプリケーションプログラム群、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、プリンタドライバ、その他各種のデータが保存されている。ＣＰＵ１０３は、外部記憶装置１０６に格納される各種プログラムに従って、ＲＡＭ１０５をワークメモリとして使用しながら、各種処理を実行する。
【００１６】
画像処理装置１５０は、ネットワークインタフェース１５１、ＲＡＭ１５２、プリントエンジン１５３、ＲＯＭ１５４、ＣＰＵ１５６を有する。ネットワークインタフェース１５１は、ネットワークケーブル１５７を介して、画像処理装置１５０とネットワーク２２０を接続し、両者の間で情報の入出力を行う。ＣＰＵ１５６は、ＲＯＭ１５４に記憶されている各種プログラムに従って、ＲＡＭ１５２をワークエリアとして使用しながら、各種処理を実行する。例えば、ＣＰＵ１５６は、ネットワーク２２０より受信した画像データを一度ＲＡＭ１５２に保存し、プリントエンジン１５３を起動して当該画像データに従ったプリント動作を行わせる。
【００１７】
ＲＯＭ１５４に記憶されている各種プログラムのうち、ステータス管理モジュール１５５は、画像処理装置１５０の内部に備えられた各種センサの情報をもとに、画像処理装置の状態を監視するためのプログラムである。ＣＰＵ１５６は、ステータス管理モジュール１５５に従って、各種センサの情報をもとに画像処理装置のステータス情報を作成し、ＲＡＭ１５２に記憶する。
【００１８】
図２は、情報処理装置１００と画像処理装置１５０を接続するネットワーク環境を示す図である。ここでは、ネットワーク２２０に対し、情報処理装置１００としてのＰＣ２１０と、画像処理装置１５０としてのプリンタ２６０と、サーバーＰＣ２５０が接続された状態を示し、互いに関係するソフトウェアの構成をブロック図で示している。ただし、ネットワーク２２０には、更に多くの制御装置やデバイスが接続されていても良い。なお、各装置のＣＰＵが図２に記載されているソフトウェアを実行することで、各ソフトウェアの処理が実行される。
【００１９】
ＰＣ２１０には、インストーラ２１１、プリンタドライバ２２１、監視アプリケーション２４１が用意されている。インストーラ２１１は、ユーザによって起動されることにより、プリンタドライバ２２１や監視アプリケーションをＰＣ２１０にインストールするためのソフトウェアである。プリンタドライバ２２１は、プリンタ２６０に印刷ジョブを送信してこれを動作させたり、プリンタ２６０の状態（ステータス）を取得してユーザに情報を提供したりするためのソフトウェアである。監視アプリケーション２４１は、ＰＣ２１０のプリントキューを監視し、プリントキューに変化が発生した場合に、その内容を解析する。変化の要因が印刷ジョブの投入である場合、プリンタドライバ２２１に印刷ジョブが投入された旨を通知し、ステータス管理プログラム２３１を起動させるためのソフトウェアである。一方、プリンタ２６０には、プリント動作を制御するためのプリント部２６１と、プリンタ２６０のステータスを保持する管理情報保持部２６２が用意されている。
【００２０】
本実施形態では、インストーラ２１１が起動されることによってプリンタドライバ２２１をインストールすることも出来る。また他の方法として、Ｐｏｉｎｔ＆Ｐｒｉｎｔ環境下でクライアントとみなされたＰＣ２１０に対し、サーバーＰＣ２５０からプリンタドライバ２２１をインストールすることもできる。また、ＷｉｎｄｏｗｓＵｐｄａｔｅなどの配信サーバーを利用することで、ＰＣ２１０は、プリンタドライバ２２１をインストールすることも出来る。
【００２１】
プリンタドライバ２２１がインストーラ２１１の起動によってインストールされる場合、監視アプリケーション２４１はインストーラ２１１内の監視アプリケーション登録モジュールＡ２１２によってスタートアップ登録される。なお、スタートアップ登録とは、ＯＳが管理するスタートアップフォルダに、アプリケーション等のソフトウェアまたはソフトウェア起動用のリンクファイルを保存することである。そして、スタートアップ登録されたソフトウェアは、ユーザーがログインした場合、自動的に呼び出されて常駐ソフトとして起動される。一方、プリンタドライバ２２１がインストーラ２１１を介さずにインストールされる場合、監視アプリケーション２４１はプリンタドライバ２２１内の監視アプリケーション登録モジュールＢ２２２によってスタートアップ登録される。例えば、サーバーＰＣ２５０がＰｏｉｎｔ＆ＰｒｉｎｔによってＰＣ２１０をクライアントとみなしてプリンタドライバ２２１をインストールする場合が後者に相当する。また、ＷｉｎｄｏｗｓＵｐｄａｔｅなどの配信サーバーからプリンタドライバ２２１をインストールする場合も後者に相当する。
【００２２】
プリンタドライバ２２１のステータス管理プログラム２３１は、管理情報取得モジュール２３２と、管理情報表示モジュール２３３で構成される。管理情報取得モジュール２３２はプリンタ２６０にアクセスし、プリンタ２６０のステータス情報を管理情報保持部２６２から取得する。管理情報表示モジュール２３３は、管理情報取得モジュール２３２が取得したステータス情報に基づいて、ユーザに必要な情報をＵＩ表示する。
【００２３】
なお、上述したようにＰＣ２１０で動作するＯＳは、プリンタドライバが印刷ジョブの生成指示を受けることに従って、プリンタドライバ自らステータス管理プログラム２３１を起動することができない（または制限された）環境を提供する。
【００２４】
図３は、ステータス管理プログラム２３１によるＵＩ表示の一例である。タイトルバー３０１はプリンタの名称等を表示する。メッセージ表示部３０２は、管理情報取得モジュール２３２で取得した情報に基づいて、プリンタ２６０の状況をユーザに報知する。ジョブ情報表示部３０３は、管理情報取得モジュール２３２で取得した情報に基づいて、プリント動作の進捗状況を表示する。インク情報表示部３０４は、管理情報取得モジュール２３２で取得した情報に基づいて、プリンタ２６０で使用するインクの消費状況を表示する。このような情報を確認することにより、ユーザは、プリントジョブの進捗状況を把握したり、インクを交換する時期や種類を確認したり、エラー発生の有無を認識したりすることができる。そして、このような情報は特にプリンタの動作中において有用である。
【００２５】
図２に戻る。監視アプリケーション２４１は、イベント登録モジュール２４２と、イベント判定モジュール２４３と、ステータス管理プログラム起動モジュール２４４で構成される。イベント登録モジュール２４２は、ＰＣ２１０における監視対象となるプリントキューに対応するイベントの登録および管理を行う。本実施形態では、ＰＣ２１０のプリントキューが監視対象の１つとして登録されている。当該プリントキューに印刷ジョブが投入されると、プリンタ２６０に対して、印刷ジョブが送信される。イベント判定モジュール２４３は、イベント登録モジュール２４２によって登録されているプリントキューにおけるイベントの発生を検出し、その内容が印刷ジョブの投入に伴うものであるか解析し、判定を行う。具体的には、新規の印刷ジョブが投入されたか否かを解析することで、この判定処理が実現される。ステータス管理プログラム起動モジュール２４４は、イベント判定モジュール２４３によるイベントの判定結果を受けて、印刷ジョブの投入に伴うイベントであった場合に、ステータス管理プログラム２３１を起動する。
【００２６】
このように、ＰＣ２１０のプリントキューの監視や図３に示す情報表示は、ステータス管理プログラム起動モジュール２４４が、イベント発生時に、プリンタドライバ２２１のステータス管理プログラム２３１を起動させることにより実現される。このため、監視アプリケーション２４１は、プリンタドライバ２２１のインストール方法によらず、スタートアップ登録されていることが望まれる。
【００２７】
図４は、ユーザによってインストーラ２１１の起動コマンドが入力された場合に、ＰＣ２１０の制御部（ＣＰＵ１０３）がインストーラ２１１を実行することで実現される処理を示すフローチャートである。本処理が開始され、ステップＳ４０１でインストーラ２１１が起動されると、インストーラ２１１は、ステップＳ４０２にて、プリンタドライバ２２１とともにステータス管理プログラム２３１をインストールする。
【００２８】
ステップＳ４０３において、インストーラ２１１は、監視アプリケーション２４１が既にＰＣ２１０に登録されているか否かを確認する。具体的には、ＯＳが管理するログインユーザのスタートアップフォルダに監視アプリケーション２４１が存在するか否かを確認する。未だ登録されていないと判断した場合は、ステップＳ４０４に進み、インストーラ２１１は、監視アプリケーション登録モジュールＡ２１２を用いて、監視アプリケーション２４１をスタートアップ登録し、ステップＳ４０５に進む。一方、監視アプリケーション２４１が既に登録されていると判断した場合は、そのままステップＳ４０５にジャンプする。このＳ４０４の処理が実行されることで、ＯＳが管理するログインユーザのスタートアップフォルダに監視アプリケーション２４１が保存される。
【００２９】
続くステップＳ４０５において、インストーラ２１１は、監視アプリケーション２４１を起動させ、さらにステップＳ４０６で監視処理を開始させる。以上で本処理は終了する。
【００３０】
図５は、インストーラ２１１を用いることなくプリンタドライバ２２１をインストールする場合の一例を説明する図である。具体的には、ＰＣ２１０は、インストーラーを用いることなく、プリンタドライバ２２１をインストールし、インストール完了後、ユーザーからのプリントコマンドの入力に伴い、制御部（ＣＰＵ１０３）が実行するフローチャートである。なお、プリントコマンドとは、例えば、ユーザがアプリケーションのＵＩを用いてプリンタドライバを選択して、印刷実行を指示することに相当する。
【００３１】
本処理が開始されるとＣＰＵ１０３は、まずステップＳ５０１で、プリンタドライバ２２１をインストールする。具体的には、ＰＣ２１０は、ＷｉｎｄｏｗｓＵｐｄａｔｅなどの配信サーバーや、Ｐｏｉｎｔ＆Ｐｒｉｎｔ環境下でサーバーＰＣ２５０にて管理されているプリンタを検索して、検索結果から選択されたプリンタのプリンタドライバ２２１をインストールする。
【００３２】
続いて、ＣＰＵ１０３はステップＳ５０２に進み、ステータス管理プログラム２３１をインストールする。ステップＳ５０３に進み、ユーザによってプリントコマンドが入力されると、プリンタドライバ２２１は、ステップＳ５０１でインストールしたプリンタドライバのフィルターモジュールを用いて受信したプリントコマンドに従い、プリント動作を実行する。具体的には、ＣＰＵ１０３は、プリンタドライバ２２１を用いて、アプリケーションから発行されたアプリケーションデータから印刷ジョブを生成し、プリントキューを介してプリンタ２６０へ送信する。
【００３３】
ステップＳ５０４では、ＣＰＵ１０３は、監視アプリケーション２４１が既にＰＣ２１０に登録されているか否かを確認する。具体的には、ＯＳが管理するログインユーザのスタートアップフォルダに監視アプリケーション２４１が存在するか否かを確認する。未だ登録されていないと判断した場合は、ステップＳ５０５に進み、ＣＰＵ１０３は、監視アプリケーション登録モジュールＢ２２２を用いて、監視アプリケーション２４１を登録する。具体的には、ＣＰＵ１０３は、ＯＳのログインユーザのスタートアップフォルダに、プリンタドライバ２２１の監視アプリケーション登録モジュールＢ２２２をコピーして保存する。この処理により、監視アプリケーション２４１が、スタートアップ登録される。一方、ステップＳ５０４で監視アプリケーション２４１が既に登録されていると判断した場合は、そのままステップＳ５０６にジャンプする。
【００３４】
ステップＳ５０６では、ＣＰＵ１０３は、ＰＣ２１０を再起動し、ステップＳ５０７ではステップＳ５０５で登録された監視アプリケーションを起動させる。更に、ステップＳ５０８で監視処理を開始させ、本処理は終了する。
【００３５】
図６は、インストーラ２１１を用いることなくプリンタドライバ２２１をインストールする場合の別例を説明する図である。具体的には、ユーザがプリンタドライバ２２１とともに監視アプリケーションをインストールし、スタートアップ登録させる場合に、制御部（ＣＰＵ１０３）が実行するフローチャートである。
【００３６】
本処理が開始されるとＣＰＵ１０３は、まずステップＳ６０１で、プリンタドライバ２２１をインストールする。詳細な説明は、Ｓ５０１と同じ処理であるため省略する。更に、ステップＳ６０２にて、ＣＰＵ１０３は、ステータス管理プログラム２３１をインストールし、続くステップＳ６０３において、インストールしたステータス管理プログラム２３１を起動する。
【００３７】
続くステップＳ６０４において、ＣＰＵ１０３は、監視アプリケーション２４１が既にスタートアップ登録されているか否かを確認する。詳細な説明は、Ｓ５０４と同じ処理であるため省略する。未だ登録されていないと判断した場合は、ステップＳ６０５に進み、ＣＰＵ１０３は、ステータス管理プログラム２３１に付随されている監視アプリケーション登録モジュールＢ２２２を用いて、監視アプリケーション２４１をスタートアップ登録する。具体的には、ＯＳのログインユーザのスタートアップフォルダに、監視アプリケーション２４１をコピーする。一方、監視アプリケーション２４１が既に登録されていると判断した場合は、そのままステップＳ６０６にジャンプする。
【００３８】
その後、ステップＳ６０６で、ＣＰＵ１０３は、監視アプリケーションを起動させ、ステップＳ６０７で監視処理を開始させ、本処理は終了する。以上図４〜図６で説明したように、本実施形態では様々な方法で、プリンタドライバ２２１および監視アプリケーション２４１をインストールおよび登録することができる。
【００３９】
図７は、ＰＣ２１０の制御部（ＣＰＵ１０３）が、監視アプリケーション２４１を実行することで実現されるＰＣ２１０のプリントキューの監視処理を説明するためのフローチャートである。なお、図７の処理は、上述したＳ４０６、Ｓ５０８、Ｓ６０７により開始される。本処理が開始されると、監視アプリケーション２４１は、まずステップＳ７０１にて、イベント登録モジュール２４２を用い、デバイスフォルダに記憶されているデバイスアイコン（プリントキュー）に対応するプリンタドライバ名やポート名等の情報を取得する。  ステップＳ７０２では、監視アプリケーション２４１は、ステップＳ７０１で取得したプリンタドライバ名やポート名の情報に基づき、監視対象となるデバイスアイコン（プリントキュー）が存在するか判定を行う。つまり、監視アプリケーション２４１は、監視対象とすべきプリンタに関する情報を保持しており、その保持している情報と、Ｓ７０１で取得された情報を比較することで、Ｓ７０２の判定を行う。監視対象となるデバイスアイコン（プリントキュー）が存在しない場合は本処理を終了する。監視対象となるデバイスアイコン（プリントキュー）が存在する場合は、ステップＳ７０３に進む。そして、Ｓ７０３において、監視アプリケーション２４１は、イベント登録モジュール２４２を用いて、監視対象と判定されたデバイスアイコン（プリントキュー）に対してイベントの登録処理を行う。
【００４０】
ステップＳ７０３の登録処理においては、例えばＯＳが提供するＦｉｎｄＦｉｒｓｔＰｒｉｎｔｅｒＣｈａｎｇｅＮｏｔｉｆｉｃａｔｉｏｎ関数を利用することができる。監視アプリケーション２４１は、上述した関数を用いて、監視対象と判定されたデバイスアイコンにイベントが発生した場合にイベント発生を報知するようにスプーラーに登録する。この処理により、例えば、監視対象のプリンタ２６０に対応するプリントキューに印刷ジョブが投入された等のイベントをスプーラーが検知した場合、スプーラーが監視アプリケーション２４１にイベント発生を通知する。その結果、監視アプリケーション２４１は、監視対象のプリンタ２６０に対応するプリントキューに印刷ジョブが投入されたことを認識して後述するＳ７０４の判定処理を実行することが可能となる。
【００４１】
ステップＳ７０４において、監視アプリケーション２４１は、イベント判定モジュール２４３を用いてイベントの発生を監視する状態に入る。監視下においてイベント判定モジュール２４３がイベントを検出すると、監視アプリケーション２４１はステップＳ７０５に進み、イベント判定モジュール２４３を用いてイベントの発生情報を解析する。
【００４２】
ステップＳ７０６において、監視アプリケーション２４１は、ステップＳ７０５で解析した結果に基づき、検出したイベントがプリントに関するイベントであるか否かを判断する。プリントに関するイベントであると判断した場合は、ステップＳ７０７に進む。Ｓ７０７において、監視アプリケーション２４１は、ステータス管理プログラム起動モジュール２４４を用いて、ステータス管理プログラム２３１を起動する。そして、新たなイベントの発生を検出するために、再びステップ７０４のイベント監視状態に戻る。
【００４３】
一方、ステップＳ７０６で、検出したイベントがプリントに関するイベントでは無いと判断した場合は、ステップＳ７０８にジャンプし、監視アプリケーション２４１は、検出したイベントがデバイスアイコンの増減に伴うイベントであるか否かを判断する。デバイスアイコンの増減に伴うイベントである場合は、再度ステップＳ７０１に戻り、デバイスアイコンに対応するプリンタドライバ名やポート名等の最新情報を取得する。デバイスアイコンの増減に伴うイベントである場合は、再度、Ｓ７０３の処理を行う必要があるか否かを決める必要があるため、Ｓ７０１へと処理が戻る。デバイスアイコンの増減に伴うイベントでない場合は、ステップＳ７０４のイベント監視状態に戻る。
【００４４】
以上説明したように、本実施形態においては、プリンタドライバ２２１とは別に監視アプリケーション２４１を用意する。その結果、ＰＣ２１０のプリントキューにおけるイベントの発生に伴って、監視対象のプリンタ２６０のプリントキューに対応するステータス管理プログラムを起動させることができる。このため、ステータス管理プログラムを常駐させる必要がなくなり、必要以上にネットワークトラフィックを増加させることなく、ユーザは必要なデバイス（プリンタ）のステータスを必要なタイミングで把握することができる。
【００４５】
更に、本実施形態によれば、インストーラ２１１だけでなくプリンタドライバ２２１においても、監視アプリケーションを情報処理装置にインストールするためのモジュールを備えている。よって、プリンタドライバ２２１自体が、どのような過程でインストールされたとしても、情報処理装置に監視アプリケーション２４１をインストールすることができる。すなわち、ＯＳのバーションやインストーラの利用可否に係らず、画像処理装置のステータスを適切なタイミングで監視することが可能となる。
【００４６】
（第２の実施形態）
図８は、本実施形態におけるネットワーク環境を示す図である。第１の実施形態と異なる点は、監視アプリケーション８４１にスプーラー再起動検知モジュール８４５が備えられている点である。なお、本実施形態においても、図１で説明した情報処理装置１００と画像処理装置１５０を使用するものとする。また、監視アプリケーション８４１の登録においても、図４〜図６で説明したフローチャートに従って行うことができるものとする。
【００４７】
第１の実施形態では、図７のステップＳ７０３において、ＯＳが提供しているＦｉｎｄＦｉｒｓｔＰｒｉｎｔｅｒＣｈａｎｇｅＮｏｔｉｆｉｃａｔｉｏｎ関数を利用することにより、イベント登録処理を行った。但し、この方法を採用した場合には、スプーラーが再起動されるとイベント登録も無効になってしまう。つまり、スプーラーが再起動されると、監視アプリケーション２４１が監視対象のプリンタ２６０のプリントキューに対応するステータス管理プログラムを起動できなくなるおそれがある。なお、スプーラーの再起動は、例えばユーザの指示により発生する。その他、新規にプリンタドライバがインストールされた場合に、スプーラーが再起動されることもある。このため、本実施形態では、スプーラー再起動検知モジュール８４５を用意し、スプーラーの再起動が検知されたタイミングで、イベント情報を再登録する。
【００４８】
図９は、本実施形態において、ＰＣ８１０のＣＰＵ１０３が、監視アプリケーション８４１として実行する監視処理を示すフローチャートである。本処理が開始されると、監視アプリケーション８４１は、まずステップＳ９００において、スプーラー再起動検知モジュール８４５を用いて、スプーラー監視処理を開始する。スプーラー監視処理の詳細については、後に詳しく説明する。
【００４９】
スプーラー監視処理が開始されると、監視アプリケーション８４１はステップＳ９０１−Ｓ９０２の処理を実行するが、これらの処理はＳ７０１−Ｓ７０２と同じであるため詳細な説明は省略する。監視対象となるデバイスアイコン（プリントキュー）が存在しない場合は、ステップＳ９１０に進み、スプーラー監視フラグをＯＦＦに設定し、本処理を終了する。スプーラー監視フラグをＯＦＦに設定することにより、本実施形態では、スプーラー再起動検知モジュール８４５がこれを確認し、ステップＳ９００で開始させたスプーラー監視処理が終了されるようになっている。
【００５０】
一方、ステップＳ９０２で監視対象となるデバイスアイコン（プリントキュー）が存在すると判断した場合は、ステップＳ９０３に進む。そして、イベント登録モジュールを用いて監視対象と判定されたデバイスアイコン（プリントキュー）に対してイベントの登録処理が行われる。この際、ＯＳが提供するＦｉｎｄＦｉｒｓｔＰｒｉｎｔｅｒＣｈａｎｇｅＮｏｔｉｆｉｃａｔｉｏｎ関数が利用される。
【００５１】
ステップＳ９０４において、監視アプリケーション８４１は、スプーラー再起動検知モジュール８４５を用いてスプーラーの再起動を検知したか否かを判断する。検知したと判断した場合は、デバイスアイコン（プリントキュー）に対応するプリンタドライバ名やポート名等の情報を再度取得するために、ステップＳ９０１に戻る。一方、スプーラーの再起動を検知していない場合は、ステップＳ９０５に進む。
【００５２】
ステップＳ９０５では、監視アプリケーション８４１は、イベント判定モジュール８４３を用いてイベントの発生を検出したか否かを判断する。イベント判定モジュール２４３がイベントを検出したと判断すると、監視アプリケーション８４１はステップＳ９０６に進み、イベント判定モジュール８４３を用いてイベントの内容を解析する。一方、イベント判定モジュール２４３がイベントを検出していない場合は、ステップＳ９０４に戻る。ステップＳ９０４およびＳ９０５は、スプーラーの再起動またはイベント発生の少なくとも一方が検出されるまで繰り返され、監視アプリケーション８４１による監視状態が継続される。
【００５３】
図９におけるステップＳ９０６−Ｓ９０９は、図７のＳ７０５−Ｓ７０８と同じであるため詳細な説明は省略する。  
図１０は、ＣＰＵ１０３が、スプーラー再起動検知モジュール８４５を用いて実行するスプーラー監視処理を説明するためのフローチャートである。本処理は、図９のステップＳ９００で開始され、図９で説明した監視処理とは別スレッドで並行して行われる。
【００５４】
本処理が開始されると、スプーラー再起動検知モジュール８４５は、まずステップＳ１００１においてスプーラー監視フラグをＯＮに設定する。続くステップＳ１００２において、スプーラー再起動検知モジュール８４５は、スプーラー監視フラグのＯＮ／ＯＦＦを確認する。ＯＦＦである場合は、本処理を終了する。一方、ＯＮである場合は、ステップＳ１００３に進み、スプーラーサービスの状態を取得する。
【００５５】
ステップＳ１００４において、スプーラー再起動検知モジュール８４５は、ステップＳ１００３で取得した情報に基づき、スプーラーサービスが開始状態であるか否かを判断する。開始状態である場合は、ステップＳ１００５に進み、スプーラー停止イベントを待ち受け、これを検知すると、その後ステップＳ１００６に進む。なお、Ｓ１００５は、スプーラー停止イベントを検知するまで継続される。一方、ステップＳ１００４でスプーラーサービスが開始状態ではないと判断した場合は、そのままステップＳ１００６にジャンプする。
【００５６】
ステップＳ１００６では、スプーラー開始イベントを待ち受け、これを検知すると、その後ステップＳ１００７に進む。ステップＳ１００７において、スプーラー再起動検知モジュール８４５は、スプーラーの再起動を検知した旨をイベント判定モジュール８４３に通知し、監視状態を継続するために、ステップＳ１００２に戻る。そして、以上の監視処理は、図９のステップＳ９１０において、スプーラー監視フラグがＯＦＦに設定されるまで継続する。
【００５７】
以上説明した本実施形態によれば、監視アプリケーション８４１の監視中にスプーラーが再起動されたとしても、これを検知し即座に監視対象のデバイスアイコン（プリントキュー）に対してイベントの再登録することができる。具体的には、監視アプリケーション８４１は、Ｓ１００７の通知を受けることでＳ９０４にてＹｅｓと判定し、図９の処理をＳ９０１に戻すことで、監視対象のプリンタ２６０のデバイスアイコン（プリントキュー）に対してイベントを再登録できる。その結果、デバイスアイコン（プリントキュー）におけるイベントの発生を逃すことなく、そのステータスを必要なタイミングで把握することができる。
【００５８】
（その他の実施形態）
以上の実施形態では、監視アプリケーションのインストールおよび登録を、図４〜図６で説明した３つの方法で行う場合を例示したが、本発明はこれら方法に限定されるものではない。例えば、サービス登録その他のモジュールが、監視アプリケーション２４１の常時起動登録を行っても良い。
【００５９】
また、監視アプリケーション登録モジュール２１２（２２２）は、ログインしていないユーザのスタートアップフォルダやＤｅｆａｕｌｔのスタートアップフォルダに対しても、監視アプリケーション２４１のスタートアップ登録を行っても良い。これにより、ログインしていないユーザや、新規にアカウントを作成したユーザの環境でも、監視アプリケーション２４１が常駐起動することができる。
【００６０】
また、監視アプリケーションの登録および起動は、必ずしもステータス管理プログラム２３１の起動に伴って行われなくても良い。例えば、プリンタドライバ２２１がプリント設定画面を表示したタイミングや、トーストをクリックして監視アプリケーション２４１を起動する際に、登録および起動される形態とすることもできる。
【００６１】
また、実施形態１および２では、ＰＣ２１０上のプリントキューを監視し、当該プリントキューに発生するイベントを検出する方法をとったが、プリンタ２６０に対して、イベント登録する方法をとっても良い。その場合、プリンタ２６０でプリントが実行されたり、エラーが発生したりすると、プリンタ２６０から監視アプリケーションに対してイベントが通知され、それを受けて監視アプリケーションはステータス管理プログラム２３１の起動を行う。
【００６２】
さらに、以上では、情報処理装置にステータス情報を提供する画像処理装置の一例としてプリンタを用いたが、無論本発明はこのような形態に限定されるものではない。例えば、原稿をスキャンして読み取った画像データを情報処理装置に提供するスキャナや、読み取った画像を更にコピーする機能を備えた複写機なども、本発明の画像処理装置１５０として利用することができる。このような場合でも、原稿の読み取り処理の進捗状態などがステータス情報として情報処理装置に提供されれば、上記実施形態と同様の効果を得ることが出来る。
【００６３】
さらにまた、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をＡＳＩＣ等のハードウェアで実現するようにしてもよい。また、ＣＰＵも１つのＣＰＵで全ての処理を行うものに限らず、複数のＣＰＵが適宜連携をしながら処理を行うものとしてもよい。
【符号の説明】
【００６４】
１００    情報処理装置
１０３    ＣＰＵ
１５０    画像処理装置
２３１    ステータス管理プログラム
２４１    監視アプリケーション
２６０    プリンタ
【図１】
2018026049.tif 000003
【図２】
2018026049.tif 000004
【図３】
2018026049.tif 000005
【図４】
2018026049.tif 000006
【図５】
2018026049.tif 000007
【図６】
2018026049.tif 000008
【図７】
2018026049.tif 000009
【図８】
2018026049.tif 000010
【図９】
2018026049.tif 000011
【図１０】
2018026049.tif 000012