(57)【要約】【課題】  インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効な場合にドライバープログラムを更新する。【解決手段】  ＰＣは、制御の対象となるＭＦＰを制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンのドライバープログラムである更新プログラムと既存プログラムとの差分を示す差分情報を取得する差分情報取得部５５と、既存プログラムを実行するタスクが処理の対象とする処理対象データと差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断する更新判断部５９と、を備える。【選択図】        図３
2020035067.tif 000002
【特許請求の範囲】
【請求項１】
制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンの前記ドライバープログラムである更新プログラムと前記既存プログラムとの差分を示す差分情報を取得する差分情報取得手段と、
前記既存プログラムを実行するタスクが処理の対象とする処理対象データと前記差分情報とに基づいて前記既存プログラムを前記更新プログラムで更新するか否かを判断する更新判断手段と、を備えた情報処理装置。
【請求項２】
前記既存プログラムを前記更新プログラムで更新すると判断される場合に前記既存プログラムを前記更新プログラムで更新する更新手段を、さらに備えた、請求項１に記載の情報処理装置。
【請求項３】
制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンの前記ドライバープログラムである更新プログラムが存在する場合に前記既存プログラムを前記更新プログラムで更新する更新手段と、
前記既存プログラムと前記更新プログラムとの差分を示す差分情報を取得する差分情報取得手段と、
前記既存プログラムを実行するタスクが処理の対象とする処理対象データと前記差分情報とに基づいて前記既存プログラムを前記更新プログラムで更新するか否かを判断する更新判断手段と、
前記既存プログラムを前記更新プログラムで更新しないと判断される場合に前記既存プログラムを前記更新プログラムで更新することを禁止する禁止手段と、を備えた情報処理装置。
【請求項４】
前記更新手段は、ユーザーにより更新を指示する操作が入力されていなければ前記既存プログラムを前記更新プログラムで更新しない、請求項２または３に記載の情報処理装置。
【請求項５】
前記更新判断手段は、前記更新プログラムで前記既存プログラムを更新する前後で前記処理対象データに対して実行する処理が同じ場合に前記既存プログラムを前記更新プログラムで更新しないと判断する、請求項１〜４のいずれかに記載の情報処理装置。
【請求項６】
前記更新判断手段は、前記更新プログラムで前記既存プログラムを更新する前後で前記処理対象データに対して実行する処理が異なる場合に前記既存プログラムを前記更新プログラムで更新すると判断する、請求項５に記載の情報処理装置。
【請求項７】
前記更新判断手段は、所定の処理を実行するための条件として前記既存プログラムにより定められた条件および前記所定の処理を実行するための条件として前記更新プログラムにより定められた条件を前記処理対象データがともに満たす場合または前記処理対象データがともに満たさない場合は、更新しないと判断する、請求項１〜４のいずれかに記載の情報処理装置。
【請求項８】
前記差分情報は、前記所定の処理を実行するための条件として前記更新プログラムにより定められた条件とを含み、
前記更新判断手段は、前記所定の処理を実行するための条件として前記既存プログラムにより定められた条件を前記処理対象データが満たさずかつ前記所定の処理を実行するための条件として前記更新プログラムにより定められた条件を前記処理対象データが満たす場合に更新すると判断する、請求項７に記載の情報処理装置。
【請求項９】
前記更新判断手段は、前記既存プログラムを実行するタスクに前記処理対象データが入力されるごとに、前記既存プログラムを前記更新プログラムで更新するか否かを判断する、請求項１〜８のいずれかに記載の情報処理装置。
【請求項１０】
前記更新判断手段により更新すると判断される場合にユーザーに通知する通知手段を、さらに備えた請求項９に記載の情報処理装置。
【請求項１１】
前記処理対象データは、アプリケーションプログラムを実行するタスクからオペレーティングシステムプログラムを実行するタスクを経由して前記既存プログラムを実行するタスクに入力される、請求項１〜１０のいずれかに記載の情報処理装置。
【請求項１２】
制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンの前記ドライバープログラムである更新プログラムと前記既存プログラムとの差分を示す差分情報を取得する差分情報取得ステップと、
前記既存プログラムを実行するタスクが処理の対象とする処理対象データと、前記差分情報とに基づいて前記既存プログラムを前記更新プログラムで更新するか否かを判断する更新判断ステップと、を情報処理装置に実行させるドライバープログラム更新方法。
【請求項１３】
制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンの前記ドライバープログラムである更新プログラムが存在する場合に前記既存プログラムを前記更新プログラムで更新する更新ステップと、
前記既存プログラムと前記更新プログラムとの差分を示す差分情報を取得する差分情報取得ステップと、
前記既存プログラムを実行するタスクが処理の対象とする処理対象データと前記差分情報とに基づいて前記既存プログラムを前記更新プログラムで更新するか否かを判断する更新判断ステップと、
前記既存プログラムを前記更新プログラムで更新しないと判断される場合、前記既存プログラムを前記更新プログラムで更新することを禁止する禁止ステップと、を情報処理装置に実行させるドライバープログラム更新防止方法。
【請求項１４】
制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンの前記ドライバープログラムである更新プログラムと前記既存プログラムとの差分を示す差分情報を取得する差分情報取得ステップと、
前記既存プログラムを実行するタスクが処理の対象とする処理対象データと前記差分情報とに基づいて前記既存プログラムを前記更新プログラムで更新するか否かを判断する更新判断ステップと、を情報処理装置を制御するコンピューターに実行させるドライバープログラム更新プログラム。
【請求項１５】
制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンの前記ドライバープログラムである更新プログラムが存在する場合に前記既存プログラムを前記更新プログラムで更新する更新ステップと、
前記既存プログラムと前記更新プログラムとの差分を示す差分情報を取得する差分情報取得ステップと、
前記既存プログラムを実行するタスクが処理の対象とする処理対象データと前記差分情報とに基づいて前記既存プログラムを前記更新プログラムで更新するか否かを判断する更新判断ステップと、
前記既存プログラムを前記更新プログラムで更新しないと判断される場合、前記既存プログラムを前記更新プログラムで更新することを禁止する禁止ステップと、を情報処理装置を制御するコンピューターに実行させるドライバープログラム更新防止プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置、ドライバープログラム更新方法およびドライバープログラム更新防止方法、ドライバープログラム更新プログラムおよびドライバープログラム更新防止プログラムに関し、特に、制御装置を制御するドライバープログラムがインストールされた情報処理装置、その情報処理装置で実行されるドライバープログラム更新方法およびドライバープログラム更新防止方法、そのドライバープログラム更新方法およびドライバープログラム更新防止方法をコンピューターに実行させるドライバープログラム更新プログラムおよびドライバープログラム更新防止プログラムに関する。
【背景技術】
【０００２】
パーソナルコンピューター（以下「ＰＣ」という）等の情報処理装置は、複合機（以下「ＭＦＰ」という）等の外部装置を制御するために、ドライバープログラムがインストールされる。以下、情報処理装置が備えるＣＰＵがドライバープログラムを実行するタスクを、単に「プリンタドライバー」という。
【０００３】
ドライバープログラムは、ＭＦＰのメーカーから提供され、バージョンアップされる場合に新たなバージョンのドライバープログラムが提供される。通常は、バージョンアップする都度に新たなバージョンのドライバープログラムがインストールされる。新たなバージョンのドライバープログラムをインストールする場合はそのためのインストール時間が必要となる。また、情報処理装置を再起動するための再起動時間が必要となる場合がある。
【０００４】
例えば、特開２００３−０６７１６８号公報には、ネットワークを介して複数の情報端末装置により共用されるプリンタであって、前記プリンタが、前記情報端末装置で使用されるプリンタドライバーを格納するドライバ格納部と、前記情報端末装置からの印刷指示からプリンタドライバーのバージョンを読み出すとともに、前記読み出したプリンタドライバーのバージョンが前記ドライバ格納部に格納されているプリンタドライバーのバージョンよりも古い場合には前記格納されているプリンタドライバーにより前記情報端末装置のプリンタドライバーを書き換える制御手段とを有することを特徴とするプリンタが記載されている。
【０００５】
また、特開２００７−２９３５１４号公報には、プリンタドライバーインストーラにドライババージョン情報を管理・表示する手段とプリンタからファームのバージョンを受信する手段と、プリンタドライバーインストーラ内にプリンタファームバージョン情報ＤＢを読み込む手段を有し、前記プリンタドライバーインストーラ画面において、前記ファームのバージョンを取得し、前記プリンタファームバージョン情報ＤＢより、ドライバとファームウェアの整合性を判断し、整合性のないバージョンの場合、ドライバ、ファームいずれかの自動バージョンアップ機能を使用してプリンタドライバー整合性を維持するインストーラが記載されている。
【０００６】
一方、情報処理装置には、ドライバープログラムとは別に、オペレーションシステムプログラム（以下「ＯＳプログラム」という）またはアプリケーションプログラムがインストールされている。プリンタドライバーは、情報処理装置が備えるＣＰＵがアプリケーションプログラムを実行するタスクまたはＯＳプログラムを実行するタスクの出力にしたがってＭＦＰを制御する。ＯＳプログラムまたはアプリケーションプログラムのバージョンが異なる場合、情報処理装置がアプリケーションプログラムを実行するタスクまたはＯＳプログラムを実行するタスクの出力が異なる場合がある。このため、２つの情報処理装置に同一のバージョンのドライバープログラムがインストールされていても、それらにインストールされているＯＳプログラムおよびアプリケーションプログラムのバージョンが異なる場合、それら２つの情報処理装置それぞれのプリンタドライバーの動作が異なる場合がある。このため、新たなプリンタドライバープログラムのインストールが有効でない場合がある。新たなプリンタドライバープログラムのインストールが有効でない場合にプリンタドライバープログラムを更新する場合はインストール時間または再起動時間が無駄に消費されるといった問題がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−０６７１６８号公報
【特許文献２】特開２００７−２９３５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
この発明の目的の一つは、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効な場合にドライバープログラムを更新することが可能な情報処理装置を提供することである。
【０００９】
この発明の他の目的は、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効でない場合にドライバープログラムが更新されるのを防止することが可能な情報処理装置を提供することである。
【００１０】
この発明のさらに他の目的は、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効な場合にドライバープログラムを更新することが可能なドライバープログラム更新方法を提供することである。
【００１１】
この発明の他の目的は、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効でない場合にドライバープログラムが更新されるのを防止することが可能なドライバープログラム更新防止方法を提供することである。
【００１２】
この発明のさらに他の目的は、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効な場合にドライバープログラムを更新することが可能なドライバープログラム更新プログラムを提供することである。
【００１３】
この発明の他の目的は、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効でない場合にドライバープログラムが更新されるのを防止することが可能なドライバープログラム更新防止プログラムを提供することである。
【課題を解決するための手段】
【００１４】
上述した目的を達成するためにこの発明のある局面によれば、情報処理装置は、制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンのドライバープログラムである更新プログラムと既存プログラムとの差分を示す差分情報を取得する差分情報取得手段と、既存プログラムを実行するタスクが処理の対象とする処理対象データと差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断する更新判断手段と、を備える。
【００１５】
この局面に従えば、処理対象データと差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断するので、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効な場合にドライバープログラムを更新することが可能な情報処理装置を提供することができる。
【００１６】
好ましくは、既存プログラムを更新プログラムで更新すると判断される場合に既存プログラムを更新プログラムで更新する更新手段を、さらに備える。
【００１７】
この局面に従えば、既存プログラムを更新プログラムで更新すると判断される場合に既存プログラムを更新プログラムで更新するので、ドライバープログラムを更新することができる。
【００１８】
この発明の他の局面によれば、情報処理装置は、制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンのドライバープログラムである更新プログラムが存在する場合に既存プログラムを更新プログラムで更新する更新手段と、既存プログラムと更新プログラムとの差分を示す差分情報を取得する差分情報取得手段と、既存プログラムを実行するタスクが処理の対象とする処理対象データと差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断する更新判断手段と、既存プログラムを更新プログラムで更新しないと判断される場合に既存プログラムを更新プログラムで更新することを禁止する禁止手段と、を備える。
【００１９】
この局面に従えば、処理対象データと差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断し、既存プログラムを更新プログラムで更新しないと判断される場合に既存プログラムを更新プログラムで更新することを禁止する。このため、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効でない場合にドライバープログラムが更新されるのを防止することが可能な情報処理装置を提供することができる。
【００２０】
好ましくは、更新手段は、ユーザーにより更新を指示する操作が入力されていなければ既存プログラムを更新プログラムで更新しない。
【００２１】
この局面に従えば、既存プログラムが更新プログラムで自動的に更新されないようにできる。
【００２２】
好ましくは、更新判断手段は、更新プログラムで既存プログラムを更新する前後で処理対象データに対して実行する処理が同じ場合に既存プログラムを更新プログラムで更新しないと判断する。
【００２３】
この局面に従えば、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して更新プログラムが有効でない場合に既存プログラムが更新プログラムで更新されないようにできる。
【００２４】
好ましくは、更新判断手段は、更新プログラムで既存プログラムを更新する前後で処理対象データに対して実行する処理が異なる場合に既存プログラムを更新プログラムで更新すると判断する。
【００２５】
この局面に従えば、インストールされているＯＳプログラムまたはアプリケーションプログラムに更新プログラムが有効な場合に既存プログラムが更新プログラムで更新されるようにできる。
【００２６】
好ましくは、更新判断手段は、所定の処理を実行するための条件として既存プログラムにより定められた条件および所定の処理を実行するための条件として更新プログラムにより定められた条件を処理対象データがともに満たす場合または処理対象データがともに満たさない場合は、更新しないと判断する。
【００２７】
この局面に従えば、インストールされているＯＳプログラムまたはアプリケーションプログラムに更新プログラムが有効でない場合に既存プログラムが更新プログラムで更新されないようにできる。
【００２８】
好ましくは、差分情報は、所定の処理を実行するための条件として更新プログラムにより定められた条件とを含み、更新判断手段は、所定の処理を実行するための条件として既存プログラムにより定められた条件を処理対象データが満たさずかつ所定の処理を実行するための条件として更新プログラムにより定められた条件を処理対象データが満たす場合に更新すると判断する。
【００２９】
この局面に従えば、インストールされているＯＳプログラムまたはアプリケーションプログラムに更新プログラムが有効な場合に既存プログラムが更新プログラムで更新されるようにできる。
【００３０】
好ましくは、更新判断手段は、既存プログラムを実行するタスクに処理対象データが入力されるごとに、既存プログラムを更新プログラムで更新するか否かを判断する。
【００３１】
この局面に従えば、既存プログラムを実行するタスクに処理対象データが入力されるごとに、既存プログラムを更新プログラムで更新するか否かを判断するので、既存プログラムを更新プログラムで自動的に更新することができる。
【００３２】
好ましくは、更新判断手段により更新すると判断される場合にユーザーに通知する通知手段を、さらに備える。
【００３３】
この局面に従えば、ドライバープログラムを更新する場合にユーザーに通知するので、ドライバープログラムが更新されることをユーザーに知らせることができる。
【００３４】
好ましくは、処理対象データは、アプリケーションプログラムを実行するタスクからオペレーティングシステムプログラムを実行するタスクを経由して既存プログラムを実行するタスクに入力される。
【００３５】
この発明のさらに他の局面によれば、ドライバープログラム更新方法は、制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンのドライバープログラムである更新プログラムと既存プログラムとの差分を示す差分情報を取得する差分情報取得ステップと、既存プログラムを実行するタスクが処理の対象とする処理対象データと、差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断する更新判断ステップと、を情報処理装置に実行させる。
【００３６】
この局面に従えば、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効な場合にドライバープログラムを更新することが可能なドライバープログラム更新方法を提供することができる。
【００３７】
この発明のさらに他の局面によれば、ドライバープログラム更新防止方法は、制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンのドライバープログラムである更新プログラムが存在する場合に既存プログラムを更新プログラムで更新する更新ステップと、既存プログラムと更新プログラムとの差分を示す差分情報を取得する差分情報取得ステップと、既存プログラムを実行するタスクが処理の対象とする処理対象データと差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断する更新判断ステップと、既存プログラムを更新プログラムで更新しないと判断される場合、既存プログラムを更新プログラムで更新することを禁止する禁止ステップと、を情報処理装置に実行させる。
【００３８】
この局面に従えば、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効でない場合にドライバープログラムが更新されるのを防止することが可能なドライバープログラム更新防止方法を提供することができる。
【００３９】
この発明のさらに他の局面によれば、ドライバープログラム更新プログラムは、制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンのドライバープログラムである更新プログラムと既存プログラムとの差分を示す差分情報を取得する差分情報取得ステップと、既存プログラムを実行するタスクが処理の対象とする処理対象データと差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断する更新判断ステップと、を情報処理装置を制御するコンピューターに実行させる。
【００４０】
この局面に従えば、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効な場合にドライバープログラムを更新することが可能なドライバープログラム更新プログラムを提供することができる。
【００４１】
この発明のさらに他の局面によれば、ドライバープログラム更新防止プログラムは、制御の対象となる外部装置を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンのドライバープログラムである更新プログラムが存在する場合に既存プログラムを更新プログラムで更新する更新ステップと、既存プログラムと更新プログラムとの差分を示す差分情報を取得する差分情報取得ステップと、既存プログラムを実行するタスクが処理の対象とする処理対象データと差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断する更新判断ステップと、既存プログラムを更新プログラムで更新しないと判断される場合、既存プログラムを更新プログラムで更新することを禁止する禁止ステップと、を情報処理装置を制御するコンピューターに実行させる。
【００４２】
この局面に従えば、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効でない場合にドライバープログラムが更新されるのを防止することが可能なドライバープログラム更新防止プログラムを提供することができる。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施の形態の１つにおけるプリントシステムの全体概要の一例を示す図である。
【図２】本実施の形態におけるＰＣのハードウェア構成の概要の一例を示すブロック図である。
【図３】ＰＣが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図４】差分情報の一例を示す図である。
【図５】更新設定画面の一例を示す図である。
【図６】通知画面の一例を示す図である。
【図７】更新処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００４４】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらの詳細な説明は繰返さない。
【００４５】
図１は、本発明の実施の形態の１つにおけるプリントシステムの全体概要の一例を示す図である。図１を参照して、プリントシステム１は、複合機であるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００と、パーソナルコンピューター（ＰＣ）２００，２００Ａ，２００Ｂと、を含む。ＭＦＰ１００およびＰＣ２００，２００Ａ，２００Ｂは、ローカルエリアネットワーク（ＬＡＮ）３に接続されている。以下、ＰＣ２００，２００Ａ，２００Ｂを総称してＰＣ２００という場合がある。
【００４６】
ＰＣ２００，２００Ａ，２００Ｂは、一般的なコンピューターであり、オペレーティングシステム（ＯＳ）プログラムおよびアプリケーションプログラムがインストールされている。また、ＰＣ２００，２００Ａ，２００Ｂは、オペレーションシステムプログラム（以下「ＯＳプログラム」という）がインストールされるとともに、ＭＦＰ１００を制御するためのドライバープログラムがインストールされている。
【００４７】
ＰＣ２００，２００Ａ，２００Ｂのハードウェア構成および機能は同じなので、ここでは、ＰＣ２００を例に説明する。ＰＣ２００，２００Ａ，２００Ｂと同様にＬＡＮ３に接続可能であれば、ＰＣ２００，２００Ａ，２００Ｂの代わりに、スマートフォン、タブレット端末またはＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）など、ユーザーが携帯して使用する携帯情報装置が用いられてもよい。
【００４８】
図２は、本実施の形態におけるＰＣのハードウェア構成の概要の一例を示すブロック図である。図２を参照して、ＰＣ２００は、ＰＣ２００の全体を制御するための中央演算処理装置（ＣＰＵ）２０１と、ＣＰＵ２０１が実行するためのプログラムを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＣＰＵ２０１の作業領域として使用されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、データを不揮発的に記憶するハードディスクドライブ（ＨＤＤ）２０４と、ＣＰＵ２０１をＬＡＮ３に接続する通信部２０５と、情報を表示する表示部２０６と、ユーザーの操作の入力を受け付ける操作部２０７と、外部記憶装置２０９と、を含む。
【００４９】
ＣＰＵ２０１は、インターネットに接続されたコンピューターからプログラムをダウンロードしてＨＤＤ２０４に記憶する。また、ネットワークに接続されたコンピューターがプログラムをＨＤＤ２０４に書込みする場合に、ＨＤＤ２０４にプログラムが記憶される。ＣＰＵ２０１は、ＨＤＤ２０４に記憶されたプログラムをＲＡＭ２０３にロードして実行する。また、ＨＤＤ２０４は、ＯＳプログラムおよびアプリケーションプログラムを記憶する。
【００５０】
ＣＰＵ２０１のソフトウェアアーキテクチャとして、ＣＰＵ２０１には、オペレーティングシステム（ＯＳ）層が形成され、その上の階層に、アプリケーション層が形成される。ＯＳ層は、ＣＰＵ２０１がＯＳプログラムを実行するタスクが属する。ＯＳ層に属するタスクは、ＰＣ２００のハードウェア資源を制御する処理を実行する。ハードウェア資源は、ここでは、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、通信部２０５、表示部２０６、操作部２０７および外部記憶装置２０９を含む。ＯＳ層に属するタスクは、アプリケーション層から入力されるオペレーティングコマンドにしたがって、ハードウェア資源を制御する。アプリケーション層は、ＣＰＵ２０１がアプリケーションプログラムを実行するタスクが属する。複数種類のアプリケーションプログラムがＰＣ２００にインストールされる場合、アプリケーション層に、複数種類のアプリケーションプログラムをそれぞれ実行する複数のタスクが属する場合がある。さらに、アプリケーションプログラムを実行するタスクは、ＰＣ２００を操作する操作ユーザーによる指示に基づいて、アプリケーションプログラムによって定められた複数種類の処理のうちから実行する処理を特定し、処理を実行する。アプリケーションプログラムで定められる複数種類の処理は、ＣＰＵ２０１がアプリケーションプログラムを実行することにより生成されるデータを、ＭＦＰ１００にプリントさせる処理を少なくとも含む。
【００５１】
外部記憶装置２０９は、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０９Ａが装着される。本実施の形態においては、ＣＰＵ２０１は、ＲＯＭ２０２またはＨＤＤ２０４に記憶されたプログラムを実行する例を説明するが、ＣＰＵ２０１は、外部記憶装置２０９を制御して、ＣＤ−ＲＯＭ２０９ＡからＣＰＵ２０１が実行するためのプログラムを読出し、読み出したプログラムをＲＡＭ２０３に記憶し、実行してもよい。
【００５２】
なお、ＣＰＵ２０１が実行するためのプログラムを記憶する記録媒体としては、ＣＤ−ＲＯＭ２０９Ａに限られず、フレキシブルディスク、カセットテープ、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）等の半導体メモリ等の媒体でもよい。ここでいうプログラムは、ＣＰＵ２０１により直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００５３】
図３は、ＰＣ２００が備えるＣＰＵ２０１が有する機能の一例を示すブロック図である。ここでは、ＰＣ２００が備えるＣＰＵ２０１の機能を示している。図３に示す機能は、ハードウェアで実現してもよいし、ＰＣ２００が備えるＣＰＵ２０１に、ＲＯＭ２０２、ＨＤＤ２０４またはＣＤ−ＲＯＭ２０９Ａに記憶されたプログラムを実行させることにより、ＣＰＵ２０１で実現してもよい。ここで、ＰＣ２００が備えるＣＰＵ２０１にアプリケーションプログラム、ＭＦＰ１００を制御するためのドライバープログラムおよびドライバープログラム更新プログラムを実行させる場合を例に説明する。
【００５４】
図３を参照して、ＰＣ２００が備えるＣＰＵ２０１は、アプリケーション部５１と、ドライバ部５３と、差分情報取得部５５と、設定部５７と、更新判断部５９と、更新部６１と、禁止部６３と、指示受付部６７と、更新通知部６５と、を含む。
【００５５】
アプリケーション部５１は、アプリケーションプログラムを実行し、アプリケーションプログラムにより定められた処理を実行する。換言すれば、アプリケーション部５１は、ＣＰＵ２０１がアプリケーションプログラムを実行するタスクである。アプリケーション部５１は、ＭＦＰ１００にプリントを実行するための操作がユーザーにより操作部２０７に入力される場合、プリントデータをドライバ部５３に出力する。
【００５６】
また、ユーザーが操作部２０７に入力する操作は、プリントデータに対する処理の内容を定める操作を含む。アプリケーション部５１は、プリントデータに対する処理の内容を定める操作が入力される場合、操作にしたがって処理の内容を決定する。また、プリントデータに対する処理の内容はデフォルトで定められてもよい。アプリケーション部５１は、プリントデータに対する処理の内容を指示するコマンドをプリントデータとともにドライバ部５３に出力する。
【００５７】
アプリケーション部５１がドライバ部５３に出力するデータのデータ量の最大値は、アプリケーションプログラムにより定められている。
【００５８】
このため、アプリケーション部５１は、プリントデータをドライバ部５３に出力する場合、プリントデータを複数の分割データに分割し、複数の分割データを順にドライバ部５３に出力する。分割データのデータ量は、アプリケーションプログラムにより定められる最大値以下である。アプリケーションプログラムにより定められる最大値は、アプリケーションプログラムのバージョンにより異なる場合がある。このように、アプリケーション部５１は、アプリケーションプログラムにより定められた最大値以下の単位量の単位データをドライバ部５３に出力する。
【００５９】
アプリケーション部５１がドライバ部５３にプリントデータを出力する場合、ＯＳプログラムを実行するタスクを経由する。このため、アプリケーション部５１はＯＳプログラムを実行するタスクにアプリケーションプログラムを分割した複数の分割データを順に出力する。ＯＳプログラムを実行するタスクがドライバ部５３に出力するデータのデータ量の最大値は、ＯＳプログラムにより定められている。ＯＳプログラムにより定められる最大値は、ＯＳプログラムのバージョンにより異なる場合がある。
【００６０】
このため、ＯＳプログラムを実行するタスクは、ＯＳプログラムにより定められた最大値を超えるデータ量の分割データがアプリケーション部５１から入力される場合、分割データを複数の再分割データに分割し、複数の再分割データを順にドライバ部５３に出力する。再分割データのデータ量は、ＯＳプログラムにより定められた最大値以下である。このように、ＯＳプログラムを実行するタスクは、ＯＳプログラムにより定められた最大値以下の単位量の単位データをドライバ部５３に出力する。ＯＳプログラムを実行するタスクは、ＯＳプログラムにより定められた最大値を超えないデータ量の分割データがアプリケーション部５１から入力される場合、分割データをドライバ部５３に出力する。
【００６１】
ドライバ部５３は、ドライバープログラムを実行し、ドライバープログラムにより定められた処理を実行する。換言すれば、ドライバ部５３は、ＣＰＵ２０１がドライバープログラムを実行するタスクである。以下、ドライバ部５３が実行するドライバープログラムを既存プログラムという。
【００６２】
ドライバ部５３は、アプリケーション部５１が出力するプリントデータが、オペレーティングプログラムを実行するタスクを経由して入力される。ドライバ部５３は、アプリケーション部５１が出力するプリントデータを処理対象データとして処理する。上述したように、ドライバ部５３は、アプリケーション部５１が出力するプリントデータが、ＯＳプログラムを実行するタスクから複数の分割データまたは複数の再分割データとして入力される。複数の分割データまたは複数の再分割データはドライバ部５３が処理対象とする処理対象データである。
【００６３】
差分情報取得部５５は、ドライバ部５３が実行する既存プログラムのバージョンより新しいバージョンのドライバープログラムである更新プログラムと既存プログラムとの差分を示す差分情報を取得する。例えば、差分情報取得部５５は、通信部２０５を制御し、ＭＦＰ１００を提供する者が管理するサーバーに差分情報を要求し、サーバーから差分情報を取得する。差分情報の要求は、既存プログラムのバージョンを示すバージョン情報含む。サーバーは、差分情報の要求に応答して、既存プログラムよりも新しいバージョンのドライバープログラムのバージョンを示すバージョン情報を含む場合に、差分情報を送信する。以下、差分情報に含まれるバージョン情報で特定されるバージョンのドライバープログラムを更新プログラムという。また、差分情報は、既存プログラムと更新プログラムとの差分を示す。具体的には、差分情報は、同一の処理を実行するための条件が既存プログラムと更新プログラムとで異なる場合に更新プログラムでその処理を実行するための条件を含む。
【００６４】
差分情報は、更新プログラムで定められる複数の処理のうち直前のバージョンのドライバープログラムで定められる複数の処理のいずれかと同じ処理であって処理を実行する条件が異なる処理と、その処理を実行する第１条件とを定める。ここでは、更新プログラムが既存プログラムの直後のバージョンで、既存プログラムと更新プログラムとが同一の処理としてデータを圧縮する圧縮処理を定めている場合を例に説明する。また、既存プログラムおよび更新プログラムそれぞれにおいて圧縮処理を実行する条件として処理対象データが満たすべき第１条件が定められているとする。したがって、差分情報は、更新プログラムで定められる第１条件を含む。
【００６５】
図４は、差分情報の一例を示す図である。図４を参照して、差分情報は、バージョンの項目と、既存プログラムから条件が変更された処理を示す変更処理の項目と、第１条件の項目と、第２条件の項目を含む。バージョンの項目は、更新プログラムのバージョンが番号００２であることを示す。変更処理の項目は、既存プログラムから第１条件が変更された処理が画像を圧縮する圧縮処理であることを示す。第１条件の項目は、更新プログラムにおいて定められる第１条件が処理対象データの満たすべき条件として、データ種類が画像、データ幅が３００ｄｐｉ（ｄｏｔ／ｉｎｃｈ）以上かつデータ高さが５０ｄｐｉ以上であることを示す。以下、既存プログラムで定められる第１条件が処理対象データの満たすべき条件としてデータ種類が画像、データ幅が４００ｄｐｉ以上かつデータ高さが１００ｄｐｉ以上である場合を例に説明する。このように、更新プログラムで定められる第１条件が既存プログラムで定められる第１条件から変更される場合がある。なお、ここでは、データのサイズを示すしきい値は、データ幅およびデータ高さで示すしきい値であるが、データ量を示すしきい値であってもよい。
【００６６】
第２条件の項目は、更新プログラムにおいて圧縮処理を実行する第２条件を定める。第２条件は、処理対象データに対して実行する処理の内容を定める設定値を示す。第２条件として定められる設定値は、ＭＦＰ１００に出力するデータの種類を示す情報である。ＭＦＰ１００に出力するデータの種類は、処理対象データをその種類のデータに変換する処理の内容を特定する。ＭＦＰ１００に出力するデータの種類を示す出力情報は色数を示す。色数を単色とする種類はモノクロであり、色数を複数色とする種類はカラーである。ここでは、第２条件として定められる設定値にモノクロが定められている。
【００６７】
図３に戻って、差分情報取得部５５は、差分情報に基づいて、更新プログラムの存否を判断する。差分情報取得部５５は、ドライバ部５３が実行する既存プログラムよりもバージョンのドライバープログラムプログラムの差分情報が存在すれば、更新プログラムが存在すると判断する。差分情報取得部５５は、更新プログラムが存在すると判断する場合、差分情報を更新判断部５９および更新部６１に出力する。
【００６８】
設定部５７は、更新モードを設定する。更新モードは、自動更新モードと、手動更新モードと、更新無効コードと、を含む。設定部５７は、操作部２０７にユーザーにより入力される操作にしたがって、更新モードを設定する。設定部５７は、ユーザーにより設定された更新モードを更新判断部５９に出力する。設定部５７は、更新設定画面を表示し、ユーザーが更新設定画面にしたがって入力する設定により更新モードを設定する。
【００６９】
図５は、更新設定画面の一例を示す図である。図５を参照して、更新設定画面３００は、更新タイミングを設定するための領域３１０と、更新手順を設定するための領域３２０と、を含む。領域３１０は、自動更新モードまたは手動更新モードを設定するためのボタン３１１と、更新禁止モードを設定するためのボタン３１２と、を含む。ボタン３１１は、それに対応する領域に「プリンタドライバーの更新用日を印刷時に常時行う」の文字列が配置され、自動更新モードまたは手動更新モードを設定するためのボタンであることがユーザーに通知される。ボタン３１２は、それに対応する領域に「プリンタドライバーで「更新要否検証」ボタン押下時のみ行う」の文字列が配置され、更新禁止モードを設定するためのボタンであることがユーザーに通知される。図５では、ボタン３１１が選択されて、自動更新モードまたは手動更新モードが選択されたことを示している。
【００７０】
領域３２０は、自動更新モードに設定するためのボタン３２１と、手動更新モードに設定するためのボタン３２２と、を含む。ボタン３２１は、それに対応する領域に「プリンタドライバーの更新を自動で行う」の文字列が配置され、自動更新モードを設定するためのボタンであることがユーザーに通知される。ボタン３２２は、それに対応する領域に「プリンタドライバーの更新を自動で行わない」の文字列が配置され、手動更新モードを設定するためのボタンであることがユーザーに通知される。図５では、ボタン３２１が選択されて、自動更新モードが選択されたことを示している。
【００７１】
図３に戻って、更新判断部５９は、差分情報が入力される場合でかつ更新モードが自動更新モードおよび手動更新モードのいずれかに設定されている場合、ドライバ部５３に処理対象データが入力されるごとに、既存プログラムを更新プログラムで更新するか否かを判断する。なお、処理対象データは、プリントデータを分割した複数の分割データの１つなので、更新判断部５９は、プリントデータを構成する複数の分割データのすべてが入力される場合に既存プログラムを更新するか否かを判断してもよい。この場合、複数の分割データのうちサイズが最大の分割データを処理対象データとすればよい。
【００７２】
更新判断部５９は、更新モードが更新無効モードに設定されている場合、ドライバ部５３においてユーザーにより更新要否検証ボタンを押下する操作が受け付けられていなければ、ドライバ部５３に処理対象データが入力されても既存プログラムを更新するか否かを判断しない。更新判断部５９は、更新モードが更新無効モードに設定されている場合、ドライバ部５３においてユーザーにより更新要否検証ボタンを押下する操作が受け付けられていれば、ドライバ部５３に処理対象データが入力されるごとに、既存プログラムを更新プログラムで更新するか否かを判断する。更新判断部５９は、更新要否検証ボタンを押下する操作が受け付けられたか否かをドライバ部５３から取得する。
【００７３】
更新判断部５９は、既存プログラムを更新プログラムで更新しないと判断する場合は禁止部６３に禁止指示を出力し、既存プログラムを更新プログラムで更新すると判断する場合は更新通知部６５に通知指示を出力する。
【００７４】
上述したように、ドライバ部５３に入力される処理対象データは、アプリケーション部５１から出力されてＯＳプログラムを実行するタスクを経由して分割データまたは再分割データとして入力される。ここでは、ドライバ部５３にＯＳプログラムを実行するタスクから分割データが処理対象データとして入力される場合を例に説明する。
【００７５】
更新判断部５９は、処理対象データが既存プログラムにより定められる第１条件を満たしかつ処理対象データが更新プログラムにより定められる第１条件を満たす場合および処理対象データが既存プログラムにより定められる第１条件を満たさずかつ更新プログラムにより定められる第１条件を満たさない場合に、既存プログラムを更新プログラムで更新しないと判断する。
【００７６】
すなわち、更新判断部５９は、更新プログラムで既存プログラムを更新する前後で処理対象データに対して実行する処理が同じ場合に既存プログラムを更新プログラムで更新しないと判断する。処理対象データが既存プログラムにより定められる第１条件を満たす場合は既存プログラムを実行するタスクが処理対象データに圧縮処理を実行する。また、処理対象データが更新プログラムにより定められる第１条件を満たす場合は既存プログラムを更新プログラムで更新した後に更新プログラムを実行するタスクが処理対象データに圧縮処理を実行する。したがって、更新プログラムで既存プログラムを更新する前後で処理対象データに対して圧縮処理が実行される。このため、処理対象データに基づいて更新プログラムで既存プログラムを更新しないと判断するので、ＯＳプログラムまたはアプリケーションプログラムに対して更新プログラムによる更新が有効でない場合に既存プログラムが更新プログラムで更新されるのを防止することができる。
【００７７】
また、処理対象データが既存プログラムにより定められる第１条件を満たさない場合は既存プログラムを実行するタスクが処理対象データに圧縮処理を実行しない。また、処理対象データが更新プログラムにより定められる第１条件を満たさない場合は既存プログラムを更新プログラムで更新した後に更新プログラムを実行するタスクが処理対象データに圧縮処理を実行しない。したがって、更新プログラムで既存プログラムを更新する前後で処理対象データに対して圧縮処理が実行されない。
【００７８】
更新判断部５９は、処理対象データが既存プログラムにより定められる第１条件を満たすことなくかつ更新プログラムにより定められる第１条件を満たす場合に、更新すると判断する。
【００７９】
すなわち、更新判断部５９は、更新プログラムで既存プログラムを更新する前後で処理対象データに対して実行する処理が異なる場合に既存プログラムを更新プログラムで更新すると判断する。処理対象データが既存プログラムにより定められる第１条件を満たさない場合は既存プログラムを実行するタスクが処理対象データに圧縮処理を実行しない。また、処理対象データが更新プログラムにより定められる第１条件を満たさない場合は既存プログラムを更新プログラムで更新した後に更新プログラムを実行するタスクが処理対象データに圧縮処理を実行する。したがって、更新プログラムで既存プログラムを更新する前は処理対象データに対して圧縮処理が実行されないが、更新プログラムで既存プログラムを更新した後は処理対象データに対して圧縮処理が実行される。このため、処理対象データに基づいて更新プログラムで既存プログラムを更新すると判断するので、ＯＳプログラムまたはアプリケーションプログラムに対して更新プログラムによる更新が有効な場合に既存プログラムを更新プログラムで更新することができる。
【００８０】
既存プログラムおよび更新プログラムそれぞれにおいて圧縮処理を実行する第２条件として、処理対象データに対して実行する処理の内容を定める設定値が設定されている場合がある。ここでは、差分情報により更新プログラムで定められる第２条件として定められる設定値にモノクロが定められている。処理対象データに対して実行する処理の内容を定める設定値は、アプリケーション部５１からプリントデータとともにドライバ部５３に出力されるコマンドによって特定される。
【００８１】
更新判断部５９は、既存プログラムおよび更新プログラムそれぞれにおいて第２条件が定められている場合、既存プログラムで定められる第２条件と更新プログラムで定められる第２条件が同じでかつコマンドにより特定される設定値が既存プログラムおよび更新プログラムそれぞれにおいて定められた第２条件を満たすか否かを判断する。更新判断部５９は、既存プログラムで定められる第２条件と更新プログラムで定められる第２条件が同じでかつコマンドにより特定される設定値が第２条件を満たす場合に既存プログラムを更新プログラムで更新するか否かを判断するが、既存プログラムで定められる第２条件と更新プログラムで定められる第２条件とが異なる場合またはコマンドで特定される設定値が第２条件を満たさない場合は、既存プログラムを更新プログラムで更新するか否かを判断しない。このため、ユーザーがＭＦＰ１００を使用する状況に基づいて、既存プログラムが更新プログラムで更新されるのを防止することができる。
【００８２】
更新部６１は、差分情報取得部５５から差分情報が入力される場合、差分情報と既存プログラムとから更新プログラムを特定し、更新プログラムを取得する。具体的には、更新部６１は、通信部２０５を制御し、ＭＦＰ１００を提供する者が管理するサーバーに更新プログラムを要求し、サーバーから更新プログラムを受信する。更新部６１は、既存プログラムをアンインストールし、更新プログラムをインストールすることにより、既存プログラムを更新プログラムで更新する。
【００８３】
禁止部６３は、更新判断部５９から禁止指示が入力される場合、更新部６１による更新を禁止する。具体的には、禁止部６３は、更新判断部５９から禁止指示が入力される場合、更新部６１が既存プログラムを更新プログラムで更新しないように、更新部６１を制御する。更新部６１は、禁止部６３により既存プログラムを更新プログラムで更新しないように制御される場合、差分情報取得部５５から差分情報が入力される場合であっても既存プログラムを更新プログラムで更新しない。
【００８４】
更新通知部６５は、差分情報取得部５５から差分情報が入力される場合かつ更新モードが手動更新モードに設定されている場合、既存プログラムの更新が必要であることをユーザーに通知する。具体的には、更新通知部６５は、既存プログラムの更新が必要であることを通知するメッセージを含む通知画面を表示部２０６に表示する。更新通知部６５は、ユーザーに通知した後に指示受付部６７に通知画面を表示したことを示す表示信号を出力する。
【００８５】
図６は、通知画面の一例を示す図である。通知画面は、「プリンタドライバーを更新する必要があります。」および「理由：画像圧縮の条件が変更されました。」の文字列と、許可の文字が表された許可ボタンと、を含む。通知画面を見るユーザーは、更新プログラムで更新が可能なことおよび更新の理由を知ることがきる。また、更新の理由から更新するか否かを判断することができる。
【００８６】
図３に戻って、指示受付部６７は、更新モードが手動更新モードに設定されている場合に更新通知部６５から表示信号が入力される場合、ユーザーによる更新指示を受け付ける。更新指示は、例えば、通知画面に含まれる許可ボタンを指示するユーザーによる操作である。指示受付部６７は、操作部２０７が更新指示を受け付ける場合、更新部６１による更新を許可する許可信号を出力する。
【００８７】
更新部６１は、更新モードが自動更新モードに設定されている場合は、禁止部６３により既存プログラムの更新が禁止されていなければ差分情報が入力されることに応じて既存プログラムを更新プログラムで更新する。更新部６１は、更新モードが自動更新モードに設定されている場合であって禁止部６３により既存プログラムの更新が禁止される場合は既存プログラムを更新プログラムで更新しない。
【００８８】
更新部６１は、更新モードが手動更新モードに設定されている場合は、差分情報が入力された後に指示受付部６７から指示信号が入力されるまで既存プログラムを更新プログラムで更新しない。更新部６１は、更新モードが手動更新モードに設定されている場合は、差分情報が入力された後に指示受付部６７から指示信号が入力されることに応じて、既存プログラムを更新プログラムで更新する。
【００８９】
更新部６１は、更新モードが更新禁止モードに設定されている場合は、差分情報が入力される場合であっても既存プログラムを更新プログラムで更新しない。
【００９０】
図７は、更新処理の流れの一例を示すフローチャートである。更新処理は、ＰＣ２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０４またはＣＤ−ＲＯＭ２０９Ａに記憶されたプログラムを実行することにより、ＣＰＵ２０１により実行される処理である。図７を参照して、ＣＰＵ２０１は、更新モードが更新禁止モードに設定されているか否かを判断する（ステップＳ０１）。更新禁止モードに設定されているならば処理を終了するが、そうでなければ処理をステップＳ０２に進める。
【００９１】
ステップＳ０２においては、差分情報を取得し、処理をステップＳ０３に進める。通信部２０５を制御し、ＭＦＰ１００を提供する者が管理するサーバーに差分情報を要求し、サーバーから差分情報を取得する。差分情報の要求は、既存プログラムのバージョンを示すバージョン情報を含む。差分情報は、既存プログラムと更新プログラムとの差分を示す。具体的には、差分情報は、同一の処理を実行するための条件が既存プログラムと更新プログラムとで異なる場合に更新プログラムでその処理を実行するための条件を含む。
【００９２】
ステップＳ０３においては、更新プログラムが存在するか否かを判断する。差分情報に基づいて、既存プログラムよりも新しいバージョンのドライバープログラムが存在すれば、更新プログラムが存在すると判断する。更新プログラムが存在すれば処理をステップＳ０４に進めるが、そうでなければ処理をステップＳ０１に戻す。
【００９３】
ステップＳ０４においては、処理対象データを検出したか否かを判断する。具体的には、既存プログラムを実行するタスクにＯＳプログラムを実行するタスクから処理対象データが入力される場合に、処理対象データを検出する。処理対象データを検出するまで待機状態となり（ステップＳ０４でＮＯ）、処理対象データを検出したならば（ステップＳ０４でＹＥＳ）、処理をステップＳ０５に進める。
【００９４】
ステップＳ０５においては、コマンドを取得する。アプリケーションプログラムを実行するタスクから既存プログラムを実行するタスクに出力されるコマンドを取得する。そして、取得されたコマンドで定められ、処理対象データに対して実行する処理の内容を定める設定値を特定する（ステップＳ０６）。ここでは、処理対象データに対して実行する処理の内容を定める設定値はＭＦＰ１００に出力するデータの種類を示す情報である。ＭＦＰ１００に出力するデータの種類は色数を示し、色数を単色とする種類はモノクロであり、色数を複数色とする種類はカラーである。
【００９５】
次のステップＳ０７においては、既存プログラムで定められる第２条件と更新プログラムで定められる第２条件が同じか否かを判断する。双方の第２条件が同じならば処理をステップＳ０８に進めるが、そうでなければ処理をステップＳ０１に戻す。ステップＳ０８においては、ステップＳ０６において特定された設定値が第２条件を満たすか否かを判断する。具体的には、設定値が第２条件として定められた設定値と同じならば設定値が第２条件を満たすと判断するが、そうでなければ第２条件を満たさないと判断する。設定値が第２条件を満たすならば処理をステップＳ０９に進めるが、そうでなければ処理をステップＳ１０に進める。このため、ユーザーがＭＦＰ１００を使用する状況に基づいて、既存プログラムが更新プログラムで更新されるのを防止することができる。
【００９６】
ステップＳ０９においては、処理対象データが既存プログラムで定められる第１条件を満たすか否かを判断する。ここでは、既存プログラムで定められる第１条件は、処理対象データのサイズである。処理対象データが既存プログラムで定められる第１条件を満たすならば処理をステップＳ１０に進めるが、そうでなければ処理をステップＳ１１に進める。
【００９７】
ステップＳ１０においては、処理対象データが更新プログラムで定められる第１条件を満たすか否かを判断する。ここでは、更新プログラムで定められる第１条件は、処理対象データのサイズである。処理対象データが更新プログラムで定められる第１条件を満たすならば処理をステップＳ１２に進めるが、そうでなければ処理をステップＳ１０に進める。
【００９８】
ステップＳ１０においては、既存プログラムの更新を禁止すること決定し、処理をステップＳ０１に戻す。
【００９９】
ステップＳ１２においては、既存プログラムを更新することに決定し、処理をステップＳ１３に進める。ステップＳ１３においては、更新モードによって処理を分岐させる。更新モードが自動更新モードに設定されていれば処理をステップＳ１６に進めるが、更新モードが手動更新モードに設定されていれば処理をステップＳ１４に進める。
【０１００】
ステップＳ１４においては、ユーザーに更新を通知し、処理をステップＳ１５に進める。具体的には、表示部２０６に通知画面を表示する。そして、更新指示を受け付けるまで待機状態となり（ステップＳ１５でＮＯ）、更新指示を受け付けると（ステップＳ１５でＹＥＳ）、処理をステップＳ１６に進める。通知画面に含まれる許可ボタンを指示するユーザーによる操作を操作部２０７が受け付けると、更新指示を受け付ける。更新指示を受け付けるまで更新しないので、ユーザーは、更新プログラムで更新するタイミングを決定することができる。
【０１０１】
ステップＳ１６においては、更新プログラムをダウンロードし、処理をステップＳ１７に進める。ＰＣ２００に予め登録されたサーバーから更新プログラムをダウンロードする。ステップＳ１７においては、既存プログラムをアンインストールし、処理をステップＳ１８に進める。ステップＳ１８においては、更新プログラムをインストールし、処理をステップＳ０１に戻す。
【０１０２】
以上説明したように本実施の形態におけるＰＣ２００は、情報処理装置として機能し、制御の対象となるＭＦＰ１００を制御するためのドライバープログラムとしてインストールされている既存プログラムのバージョンより新しいバージョンのドライバープログラムである更新プログラムと既存プログラムとの差分を示す差分情報をサーバーから取得し、既存プログラムを実行するタスクが処理の対象とする処理対象データと差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断する。このため、ＰＣ２００にインストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効な場合にドライバープログラムを更新することができる。
【０１０３】
また、ＰＣ２００は、処理対象データと差分情報とに基づいて既存プログラムを更新プログラムで更新するか否かを判断し、既存プログラムを更新プログラムで更新しないと判断される場合に既存プログラムを更新プログラムで更新することを禁止する。このため、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して有効でない場合にドライバープログラムが更新されるのを防止することができる。
【０１０４】
また、ＰＣ２００は、ユーザーにより更新を指示する操作が入力されていなければ既存プログラムを更新プログラムで更新しないので、ユーザーの知らない間に既存プログラムが更新プログラムで自動的に更新されないようにできる。
【０１０５】
また、ＰＣ２００は、更新プログラムで既存プログラムを更新する前後で処理対象データに対して実行する処理が同じ場合に既存プログラムを更新プログラムで更新しないので、ＯＳプログラムまたはアプリケーションプログラムが更新プログラムに対して有効でない場合に更新しないようにして、既存プログラムが更新プログラムで更新される回数を減らすことができる。
【０１０６】
また、ＰＣ２００は、更新プログラムで既存プログラムを更新する前後で処理対象データに対して実行する処理が異なる場合に既存プログラムを更新プログラムで更新するので、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して更新プログラムが有効である場合に既存プログラムが更新プログラムで更新されるようにできる。
【０１０７】
また、ＰＣ２００は、圧縮処理を実行するための条件として既存プログラムにより定められた第１条件および圧縮処理を実行するための条件として更新プログラムにより定められた第１条件を処理対象データがともに満たす場合または処理対象データがともに満たさない場合は、既存プログラムを更新プログラムで更新しない。このため、インストールされているＯＳプログラムまたはアプリケーションプログラムに更新プログラムが有効でない場合に既存プログラムが更新プログラムで更新されないようにできる。
【０１０８】
また、ＰＣ２００は、圧縮処理を実行するための条件として既存プログラムにより定められた第１条件を処理対象データが満たさずかつ圧縮処理を実行するための条件として更新プログラムにより定められた第１条件を処理対象データが満たす場合は、既存プログラムを更新プログラムで更新する。このため、インストールされているＯＳプログラムまたはアプリケーションプログラムに対して更新プログラムが有効である場合に既存プログラムが更新プログラムで更新されるようにできる。
【０１０９】
また、ＰＣ２００は、さらに、圧縮処理を実行するための第２条件としてユーザーにより設定されるＭＦＰ１００に出力するデータの種類が既存プログラムによりモノクロが定められている場合、更新プログラムにおいて圧縮処理を実行するための第２条件としてモノクロが定められていない場合は、既存プログラムを更新プログラムで更新するか否かを判断しない。このため、ユーザーの使用状況に基づいて、既存プログラムが更新プログラムで更新されるのを防止することができる。
【０１１０】
また、ＰＣ２００は、既存プログラムを実行するタスクに処理対象データが入力されるごとに、既存プログラムを更新プログラムで更新するか否かを判断するので、自動的に既存プログラムを更新プログラムで更新することができる。
【０１１１】
また、ＰＣ２００は、既存プログラムを更新プログラムで更新すると判断する場合、ユーザーに通知するので、ユーザーに既存プログラムが更新プログラムで更新されることを知らせることができる。
【０１１２】
上述した実施の形態においては、情報処理装置の一例としてＰＣ２００について説明したが、図７に示した更新処理をＰＣ２００に実行させるドライバープログラム更新方法またはドライバープログラム更新防止方法、そのドライバープログラム更新方法またはドライバープログラム更新防止方法をＰＣ２００が備えるＣＰＵ２０１に実行させるドライバープログラム更新プログラムまたはドライバープログラム更新防止プログラムとして捉えることができるのは言うまでもない。
【０１１３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上述した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１１４】
＜付記＞
（１）  前記所定の処理を実行するための条件は前記処理対象データのデータ容量、第１方向の量、第１方向と交わる第２方向の量および種類の少なくとも１つのしきい値を定める、請求項７または８に記載の情報処理装置。
（２）  前記更新判断手段は、さらに、前記既存プログラムを実行するタスクに対して前記所定の処理を実行するための条件の１つとして設定された前記外部装置に出力するデータの種類が、前記所定の処理を実行するための条件として前記更新プログラムにより定められている条件を満たさない場合は、前記既存プログラムを前記更新プログラムで更新するか否かを判断しない、請求項１〜１１のいずれかに記載の情報処理装置。
（３）前記所定の処理を実行するための条件は前記制御装置に出力するデータの色数を定める、（２）に記載の情報処理装置。
（４）  前記更新判断手段は、ユーザーにより更新の判断を指示する操作が入力されていなければ前記既存プログラムを前記更新プログラムで更新するか否かを判断しない、請求項９に記載の情報処理装置。
（５）  前記差分情報取得手段は、ネットワークを介して接続されるコンピューターから前記差分情報を取得する、請求項１〜１１のいずれかに記載の情報処理装置。
【符号の説明】
【０１１５】
１  プリントシステム、２００  ＰＣ、２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ＨＤＤ、２０５  通信部、２０６  表示部、２０７  操作部、２０９  外部記憶装置、５１  アプリケーション部、５３  ドライバ部、５５  差分情報取得部、５７  設定部、５９  更新判断部、６１  更新部、６３  禁止部、６５  更新通知部、６７  指示受付部。
【図１】
2020035067.tif 000003
【図２】
2020035067.tif 000004
【図３】
2020035067.tif 000005
【図４】
2020035067.tif 000006
【図５】
2020035067.tif 000007
【図６】
2020035067.tif 000008
【図７】
2020035067.tif 000009