(57)【要約】【課題】イベントの発生を検出した際に旧版プログラムを起動する構成とされた情報処理装置において、旧版プログラムを最新版プログラムに変更する作業や旧版プログラムに戻す作業を、より簡単に実施可能とすること。【解決手段】ＰＣ１は、レジストリから最新バージョン格納フォルダを取得できた場合（Ｓ３０１：ＹＥＳ）、最新バージョン格納フォルダのApli2.exeを実行し（Ｓ３０３）、最新バージョン格納フォルダを取得できなかった場合（Ｓ３０１：ＮＯ）、本処理を実行しているApri.exeの格納フォルダフォルダにあるApli2.exeを実行する（Ｓ３２１）。最新バージョン格納フォルダのApli2.exeは、最新バージョンのアプリケーションのメインプログラムであり、一方、本処理を実行しているApri.exeの格納フォルダフォルダにあるApli2.exeは、旧バージョンのメインプログラムに相当するApri.exeを、Ｓ３１５の処理によりリネームしたものである。【選択図】図６
2007280274.tif 000002
【特許請求の範囲】
【請求項１】
同じソフトウェアの旧版プログラムと最新版プログラムが組み込まれた情報処理装置を、所定の旧版起動イベントの発生を検出した際に前記旧版プログラムを起動する構成から、前記旧版起動イベントの発生を検出した際に前記最新版プログラムを起動する構成に変更する処理を、前記情報処理装置に実行させるための構成変更プログラムであり、
前記情報処理装置を、
前記情報処理装置に組み込まれた前記旧版プログラムを検出する旧版検出手段と、
前記旧版検出手段によって前記旧版プログラムが検出された場合に、前記旧版プログラムが格納されたファイルのパス名を、第１パス名から第２パス名に変更するパス名変更手段と、
前記情報処理装置に組み込まれた前記最新版プログラムを検出できた場合には、前記最新版プログラムを起動する一方、前記最新版プログラムを検出できなかった場合には、前記第２パス名を持つファイルに格納された前記旧版プログラムを起動する処理を、前記情報処理装置に実行させるための起動プログラムが格納されたファイルを、前記パス名変更手段によるパス名の変更後に、前記第１パス名を持つファイルとして生成する起動プログラムファイル生成手段
として機能させることを特徴とする構成変更プログラム。
【請求項２】
前記旧版検出手段は、前記旧版プログラムを前記情報処理装置に組み込んだときに前記情報処理装置が備える管理用記憶領域に登録される旧版プログラムの格納フォルダに関する情報が、前記管理用記憶領域内に存在する場合に、前記管理用記憶領域内の情報に基づいて、前記情報処理装置に組み込まれた前記旧版プログラムを検出する
ことを特徴とする請求項１に記載の構成変更プログラム。
【請求項３】
前記旧版検出手段は、前記第１のパス名を持つファイルに格納されたプログラムが前記起動プログラムではない場合に、前記第１のパス名を持つファイルに格納されたプログラムを前記旧版プログラムとして検出する
ことを特徴とする請求項１または請求項２に記載の構成変更プログラム。
【請求項４】
前記情報処理装置を、さらに、
前記旧版プログラムが既に起動済みか否かを判定する旧版起動状態判定手段と、
前記旧版起動状態判定手段によって前記旧版プログラムが既に起動済みであると判定された場合に、起動済みの前記旧版プログラムを終了させる終了制御手段
として機能させることを特徴とする請求項１〜請求項３のいずれかに記載の構成変更プログラム。
【請求項５】
前記情報処理装置を、さらに、
前記情報処理装置に組み込まれた前記最新版プログラムを検出する最新版検出手段と、
前記最新版検出手段によって前記最新版プログラムが検出された場合に、検出された前記最新版プログラムを起動する最新版プログラム起動手段と、
前記最新版検出手段によって前記最新版プログラムが検出されなかった場合に、前記第２パス名を持つファイルに格納された前記旧版プログラムを起動する旧版プログラム起動手段
として機能させる構成を備えることにより、前記起動プログラムとして構成されている
ことを特徴とする請求項１〜請求項４のいずれかに記載の構成変更プログラム。
【請求項６】
前記情報処理装置を、さらに、
前記情報処理装置に前記最新版プログラムを組み込むための処理を実行する最新版インストール手段として機能させる構成を備えることにより、最新版インストールプログラムとして構成されている
ことを特徴とする請求項１〜請求項４のいずれかに記載の構成変更プログラム。
【請求項７】
同じソフトウェアの旧版プログラムと最新版プログラムが組み込まれ、所定の旧版起動イベントの発生を検出した際に前記旧版プログラムを起動する構成から、前記旧版起動イベントの発生を検出した際に前記最新版プログラムを起動する構成に変更する処理を実行する情報処理装置であり、
前記情報処理装置に組み込まれた前記旧版プログラムを検出する旧版検出手段と、
前記旧版検出手段によって前記旧版プログラムが検出された場合に、前記旧版プログラムが格納されたファイルのパス名を、第１パス名から第２パス名に変更するパス名変更手段と、
前記情報処理装置に組み込まれた前記最新版プログラムを検出できた場合には、前記最新版プログラムを起動する一方、前記最新版プログラムを検出できなかった場合には、前記第２パス名を持つファイルに格納された前記旧版プログラムを起動する処理を、前記情報処理装置に実行させるための起動プログラムが格納されたファイルを、前記パス名変更手段によるパス名の変更後に、前記第１パス名を持つファイルとして生成する起動プログラムファイル生成手段
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に情報処理装置の構成を変更する処理を実行させるための構成変更プログラムと、情報処理装置の構成を変更する処理を実行する情報処理装置に関する。
【背景技術】
【０００２】
従来、バージョンが異なる複数のプログラムを備えた情報処理装置において、最新バージョンのプログラムや１つ前のバージョンのプログラムを選択的に起動可能とする技術は、既に提案されていた（例えば、特許文献１参照）。
【０００３】
この技術によれば、あらかじめ決められた特定のプログラム起動キーの操作を利用者が行った場合に、最新バージョンのプログラムを起動することができた。
【特許文献１】特開平７−２９５７９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、パーソナルコンピュータ（以下、ＰＣと称する。）に代表される各種情報処理装置においては、上記のようなプログラム起動キーに対する操作以外にも、様々なイベントの発生を契機として各種プログラムが起動されるようになっている。
【０００５】
例えば、情報処理装置が備えるＯＳ（Operating System）の起動時には、このＯＳの起動を契機として所定のプログラムが起動されることがある。また、プログラムを起動するために用意されたメニューの中から所定のプログラムを選択する操作を利用者が行ったことを契機として、そのプログラムが起動されることもある。さらに、情報処理装置と通信可能な外部装置から所定の信号が到来した時に、その信号の受信を契機として所定のプログラムが起動されることもある。こうした様々なイベントが発生した場合に、どのプログラムを起動すべきかは、各イベント毎に決められてＯＳの管理する記憶領域等に登録されるのが一般的である。
【０００６】
しかし、あるイベントの発生を契機として起動されるプログラムを、旧バージョンから新バージョンに変更したい場合、旧バージョンのプログラムが複数のイベントに対応付けられていると、各イベント毎に登録された情報のすべてを、新バージョン対応に書き換えなければならず、その処理に多大な手間がかかる、という問題があった。
【０００７】
また、新バージョンに変更した後、旧バージョンに戻したい場合にも、同じように多大な手間がかかる、という問題があった。
本発明は、上記問題を解決するためになされたものであり、その目的は、イベントの発生を検出した際に旧版プログラムを起動する構成となっている情報処理装置において、旧版プログラムを最新版プログラムに変更する作業や旧版プログラムに戻す作業を、より簡単に実施可能な構成変更プログラム、および情報処理装置を提供することにある。
【課題を解決するための手段】
【０００８】
以下、本発明において採用した特徴的構成について説明する。
本発明の構成変更プログラムは、同じソフトウェアの旧版プログラムと最新版プログラムが組み込まれた情報処理装置を、所定の旧版起動イベントの発生を検出した際に前記旧版プログラムを起動する構成から、前記旧版起動イベントの発生を検出した際に前記最新版プログラムを起動する構成に変更する処理を、前記情報処理装置に実行させるための構成変更プログラムであり、前記情報処理装置を、前記情報処理装置に組み込まれた前記旧版プログラムを検出する旧版検出手段と、前記旧版検出手段によって前記旧版プログラムが検出された場合に、前記旧版プログラムが格納されたファイルのパス名を、第１パス名から第２パス名に変更するパス名変更手段と、前記情報処理装置に組み込まれた前記最新版プログラムを検出できた場合には、前記最新版プログラムを起動する一方、前記最新版プログラムを検出できなかった場合には、前記第２パス名を持つファイルに格納された前記旧版プログラムを起動する処理を、前記情報処理装置に実行させるための起動プログラムが格納されたファイルを、前記パス名変更手段によるパス名の変更後に、前記第１パス名を持つファイルとして生成する起動プログラムファイル生成手段として機能させることを特徴とする。
【０００９】
この構成変更プログラムに基づいて情報処理装置で機能することになる上記各手段の内、起動プログラムファイル生成手段は、起動プログラムが格納されたファイルを生成する手段であるが、ここでいう生成には、様々な具体的態様が含まれ得る。例えば、起動プログラムが格納されたファイルが、情報処理装置の備えるハードディスク装置内にあらかじめ存在するような場合は、そのファイルをコピー元、第１パス名を持つファイルをコピー先として、ファイルのコピーを行うことで、所期のファイルを生成することができる。また、起動プログラムが格納されたファイルが、圧縮ファイルのような形態で情報処理装置の備えるハードディスク装置内あるいは情報処理装置が読み取り可能なリムーバブルメディアに格納されているような場合は、その圧縮ファイルを展開して第１パス名を持つファイルとすれば、所期のファイルを生成することができる。さらに、構成変更プログラムが利用するために用意された内部データに基づいて、起動プログラムが格納されたファイルを創り出すように構成しても、第１パス名を持つ所期のファイルを生成することができる。
【００１０】
このように構成変更プログラムに基づいて、情報処理装置を上記各手段として機能させれば、旧版プログラムが起動プログラムに置き換えられる。そのため、情報処理装置が旧版起動イベントの発生を検出した際に起動プログラムが起動される構成に変更されることになり、最新版プログラムが起動可能な場合には、起動プログラムから最新版プログラムが起動される。したがって、旧版起動イベントの発生を検出した場合に第１パス名を持つファイルに格納されたプログラムを起動する仕組み自体には何ら手を加えることなく、情報処理装置の構成を旧版プログラムを起動する構成から最新版プログラムを起動する構成に変更することができる。
【００１１】
しかも、最新版プログラムを起動する構成に変更した後、再び旧版プログラムを起動する構成に戻す際には、単に最新版プログラムを検出不能とする（例えば削除する）だけで、第１パス名を持つファイルに格納された起動プログラムについてはそのまま残せばよい。したがって、第２パス名に変更されたファイルのパス名も変更前のパス名である第１パス名に戻さなくてもよいので、面倒な手間をかけることなく旧版プログラムを起動する構成に戻すことができる。
【００１２】
ところで、本発明の構成変更プログラムにおいて、前記旧版検出手段は、前記旧版プログラムを前記情報処理装置に組み込んだときに前記情報処理装置が備える管理用記憶領域に登録される旧版プログラムの格納フォルダに関する情報が、前記管理用記憶領域内に存在する場合に、前記管理用記憶領域内の情報に基づいて、前記情報処理装置に組み込まれた前記旧版プログラムを検出するとよい。
【００１３】
このように構成された構成変更プログラムに基づいて、情報処理装置を上記各手段として機能させれば、管理用記憶領域内の情報に基づいて、情報処理装置に組み込まれた旧版プログラムを適切に検出することができる。
【００１４】
また、本発明の構成変更プログラムにおいて、前記旧版検出手段は、前記第１のパス名を持つファイルに格納されたプログラムが前記起動プログラムではない場合に、前記第１のパス名を持つファイルに格納されたプログラムを前記旧版プログラムとして検出するとよい。
【００１５】
このように構成された構成変更プログラムに基づいて、情報処理装置を上記各手段として機能させれば、第１のパス名を持つファイルが存在する場合でも、そのファイルが起動プログラムファイル生成手段によって生成されたファイルであれば、あらためてファイルを生成することはないので、情報処理装置に無駄な負荷がかかってしまうのを未然に防止できる。
【００１６】
また、本発明の構成変更プログラムは、前記情報処理装置を、さらに、前記旧版プログラムが既に起動済みか否かを判定する旧版起動状態判定手段と、前記旧版起動状態判定手段によって前記旧版プログラムが既に起動済みであると判定された場合に、起動済みの前記旧版プログラムを終了させる終了制御手段として機能させるように構成されているとよい。
【００１７】
このように構成された構成変更プログラムに基づいて、情報処理装置を上記各手段として機能させれば、旧版プログラムが起動している場合でも、旧版プログラムを終了させることができるので、パス名変更手段によるパス名の変更などを適切に実施できる。
【００１８】
また、本発明の構成変更プログラムは、前記情報処理装置を、さらに、前記情報処理装置に組み込まれた前記最新版プログラムを検出する最新版検出手段と、前記最新版検出手段によって前記最新版プログラムが検出された場合に、検出された前記最新版プログラムを起動する最新版プログラム起動手段と、前記最新版検出手段によって前記最新版プログラムが検出されなかった場合に、前記第２パス名を持つファイルに格納された前記旧版プログラムを起動する旧版プログラム起動手段として機能させる構成を備えることにより、前記起動プログラムとして構成されているとよい。
【００１９】
このように構成された構成変更プログラムであれば、起動プログラムとして構成されているので、起動プログラムに従った処理を実行する機会があれば、構成変更プログラムに従った処理も実行される。
【００２０】
また、本発明の構成変更プログラムは、前記情報処理装置を、さらに、前記情報処理装置に前記最新版プログラムを組み込むための処理を実行する最新版インストール手段として機能させる構成を備えることにより、最新版インストールプログラムとして構成されていてもよい。
【００２１】
このように構成された構成変更プログラムであれば、最新版インストールプログラムとして構成されているので、最新版インストール手段によって最新版プログラムが組み込まれた場合に、直ちに構成変更プログラムに従った処理も実行され、旧版起動イベントの発生を検出した際に新版プログラムを起動する構成にすることができる。
【００２２】
次に、本発明の情報処理装置は、同じソフトウェアの旧版プログラムと最新版プログラムが組み込まれ、所定の旧版起動イベントの発生を検出した際に前記旧版プログラムを起動する構成から、前記旧版起動イベントの発生を検出した際に前記最新版プログラムを起動する構成に変更する処理を実行する情報処理装置であり、前記情報処理装置に組み込まれた前記旧版プログラムを検出する旧版検出手段と、前記旧版検出手段によって前記旧版プログラムが検出された場合に、前記旧版プログラムが格納されたファイルのパス名を、第１パス名から第２パス名に変更するパス名変更手段と、前記情報処理装置に組み込まれた前記最新版プログラムを検出できた場合には、前記最新版プログラムを起動する一方、前記最新版プログラムを検出できなかった場合には、前記第２パス名を持つファイルに格納された前記旧版プログラムを起動する処理を、前記情報処理装置に実行させるための起動プログラムが格納されたファイルを、前記パス名変更手段によるパス名の変更後に、前記第１パス名を持つファイルとして生成する起動プログラムファイル生成手段を備えることを特徴とする。
【００２３】
このように構成された情報処理装置は、請求項１に記載の構成変更プログラムが情報処理装置上で機能させる各手段に相当する構成を備えている。したがって、請求項１に記載の発明と同様の作用、効果を奏するものとなる。
【００２４】
なお、本発明の情報処理装置は、請求項２〜請求項６の各請求項に記載の構成変更プログラムに基づいて情報処理装置上で機能することになる各手段と等価な構成を備えていていてもよく、その場合、請求項２〜請求項６の各請求項に記載の発明と同様の作用、効果を奏するものとなる。
【発明を実施するための最良の形態】
【００２５】
次に、本発明の実施形態について一例を挙げて説明する。
（１）第１実施形態
［ＰＣおよび複合機の構成］
図１は、本発明でいう情報処理装置の一例に相当するパーソナルコンピュータ１（以下、ＰＣ１という）と、ＰＣ１に接続された複合機３の概略構成を示したブロック図である。
【００２６】
図１に示した機器の内、ＰＣ１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ハードディスク装置１５（以下、ＨＤＤ１５という）、操作部１６、表示部１７、ＵＳＢインターフェース１８（以下、ＵＳＢ  Ｉ／Ｆ１８という）などを備えている。
【００２７】
ＣＰＵ１１は、ＲＯＭ１２やＲＡＭ１３に記憶されたプログラムに従って、ＰＣ１各部に対する制御および各種演算を実行する装置で、後述するＯＳ（Operating System）としての処理、インストーラとしての処理、およびアプリケーションとしての処理などは、それぞれＣＰＵ１１によって実行される。
【００２８】
ＲＯＭ１２は、ＰＣ１の電源スイッチを切っても記憶内容を保持可能な記憶装置で、ＢＩＯＳ（Basic Input Output System）や通常であれば更新されない読み出し用のデータ等を記憶している。
【００２９】
ＲＡＭ１３は、ＣＰＵ１１から直接アクセスされるメインメモリ等として利用される記憶装置である。このＲＡＭ１３には、ＯＳ（Operating System）や各種アプリケーションなどのソフトウェアがＨＤＤ１５から読み込まれ、また、ＣＰＵ１１による各種演算の結果やＨＤＤ１５から読み込まれたデータもＲＡＭ１３に記憶されるようになっている。後述するＯＳ、インストーラ、およびアプリケーションとしての各処理をＣＰＵ１１が実行する際には、各処理をＣＰＵ１１に実行させるためのプログラムがＨＤＤ１５からＲＡＭ１３に読み込まれ、ＲＡＭ１３に記憶されたプログラムに従って、ＣＰＵ１１が各処理を実行することになる。
【００３０】
ＨＤＤ１５は、各種プログラムおよび各種データファイルを保存しておくための装置で、上記ＯＳ、インストーラ、およびアプリケーションを機能させるためのプログラムもＨＤＤ１５に保存されている。
【００３１】
操作部１６は、利用者からの各種指示を入力するための入力装置であり、例えば、キーボードや各種ポインティングデバイス（例えば、マウス）等によって構成される。
表示部１７（本発明でいう表示装置の一例に相当）は、各種情報を利用者に提示するための出力装置であり、例えば、カラー画像を表示可能な液晶ディスプレイ等によって構成される。
【００３２】
ＵＳＢ  Ｉ／Ｆ１８は、ＵＳＢ（Universal Serial Bus）規格準拠のシリアルインターフェースである。このＵＳＢ  Ｉ／Ｆ１８には、様々なデバイス（例えば、プリンタ、キーボード、マウス、スキャナ、スピーカー、各種ストレージデバイスなど）を接続することができるが、本実施形態においては、複合機３が接続されている。
【００３３】
また、ＰＣ１には、上記のようなハードウェア群を制御するためのＯＳとして、マルチタスク機能を備えたＯＳが搭載されている。このＯＳのマルチタスク機能により、ＰＣ１は、複数のソフトウェアに基づく処理を時分割で並列に実行することができ、これにより、後述するインストーラやアプリケーションが、ＰＣ１上で機能するようになっている。このようなマルチタスク機能を備えたＯＳとしては、例えば、ＭａｃＯＳ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）などを挙げることができる。なお、マルチタスク機能など、ＯＳによって提供される各種機能そのものは公知なので、ここでの詳細な説明は省略するが、以下の説明においては、ＰＣ１がＷｉｎｄｏｗｓ（登録商標）によって提供される各種機能を有するとの前提で説明を続ける。
【００３４】
一方、複合機３は、本実施形態においては、後述する処理の中でスキャナとして利用されるデバイスであるが、イメージスキャナ機能の他に、プリンタ機能、コピー機能、ファクシミリ機能、および電話機能等を兼ね備えている。
【００３５】
この複合機３は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ハードディスク装置３５（以下、ＨＤＤ３５という）、操作部３６、表示部３７、ＵＳＢ  Ｉ／Ｆ３８、印刷部４１、読取部４２、およびモデム４３などを備えている。
【００３６】
ＣＰＵ３１は、ＲＯＭ３２に記憶されている制御プログラムに従って複合機３各部の制御および各種演算を実行する装置である。
ＲＯＭ３２は、複合機３の電源スイッチを切っても記憶内容を保持可能な記憶装置で、上記制御プログラムの他、通常であれば更新されない読み出し用の各種データを記憶している。
【００３７】
ＲＡＭ３３は、ＣＰＵ３１から直接アクセスされるメインメモリ等として利用される記憶装置で、ＣＰＵ３１が処理中に算出する各種データなどが一時的にＲＡＭ３３に記憶されるようになっている。
【００３８】
ＨＤＤ３５は、ファクシミリ機能により送受信する画像、イメージスキャナ機能により読み取った画像、プリンタ機能により印刷する画像など、比較的サイズが大きい画像データを記憶する装置である。
【００３９】
操作部３６は、利用者がマニュアル操作で複合機３に対して指令を与える場合に操作する入力装置である。
表示部３７は、小型液晶ディスプレイによって構成された装置で、複合機３の設定や状態などの情報を表示できるようになっている。
【００４０】
ＵＳＢ  Ｉ／Ｆ３８は、ＵＳＢ規格準拠のシリアルインターフェースで、このＵＳＢ  Ｉ／Ｆ３８を利用して、ＰＣ１との間でデータ通信を実行できるようになっている。
印刷部４１は、シート状の媒体（例えば記録用紙）に対する印刷を実行可能な装置で、プリンタ機能による印刷データの印刷、ファクシミリ機能による受信画像の印刷、コピー機能によるコピー画像の印刷等を行う際に作動する。
【００４１】
読取部４２は、自動原稿送り装置（図示略）にセットされた原稿またはフラットベッドのコンタクトガラス上に置かれた原稿から画像を読み取り可能な装置で、イメージスキャナ機能による画像の読み取り、ファクシミリ機能による送信画像の読み取り等を行う際に作動する。
【００４２】
モデム４３は、複合機３側で作成されたディジタルデータを音声信号に変換して公衆回線側に送信したり、公衆回線側から受信した音声信号をディジタルデータに変換して複合機３側で処理できるようにするための装置で、ファクシミリ機能による画像の送受信、電話機能による通話を行う際に作動する。
【００４３】
［インストーラおよびアプリケーションの概要］
次に、ＰＣ１上で機能するインストーラと、このインストーラによってインストールされるソフトウェアについて説明する。
【００４４】
インストーラは、ＰＣ１から複合機３のスキャナ機構を利用する際に必要となるソフトウェアを、ＰＣ１に導入するためのソフトウェアである。ＰＣ１で初めて複合機３のスキャナ機構を利用する際には、複合機３のスキャナ機構の利用に先だって少なくとも１度はインストーラによる処理（以下、インストール処理という）を実行する必要があり、これにより、ＰＣ１において複合機３のスキャナ機構を利用するために必要な設定等が行われる。インストール処理の具体的な内容については後述する。
【００４５】
インストーラのプログラムは、例えば、複合機３の付属品として添付されたリムーバブルメディア（ＣＤ−ＲＯＭ等）に格納されて提供される。この場合、ＰＣ１において、プログラムをリムーバブルメディアからＲＡＭ１３に読み込むことにより、インストーラを機能させることができる。ＰＣ１側およびリムーバブルメディア側の設定によっては、リムーバブルメディアをＰＣ１が備えるドライブ装置にマウントするだけで、自動的にプログラムをＲＡＭ１３に読み込ませるように構成することもできる。また、インストーラのプログラムは、インターネットなどのネットワークを介してサーバーから提供されることもある。この場合は、ＰＣ１において、ネットワークを介してダウンロードしたプログラムをＨＤＤ１５等に一旦格納し、ＨＤＤ１５等からＲＡＭ１３にプログラムを読み込むことにより、インストーラを機能させることができる。
【００４６】
また、このインストーラにより、ＰＣ１には、スキャナドライバやアプリケーションなどのソフトウェアがインストールされる。これらのソフトウェアの内、アプリケーションは、複合機３の各種機能を制御するためのメインプログラムと、複合機３側で所定の操作が行われたことをＯＳが検出した際、ＯＳによって起動され、上述のメインプログラム等を起動する起動プログラムなどがインストールされる。
【００４７】
ところで、インストーラによってインストールされるアプリケーションには、バージョンが異なるプログラムがいくつかあり、インストーラは、アプリケーションの最新版プログラムをＰＣ１にインストールする。一方、ＰＣ１には、アプリケーションの旧版プログラムに相当するものが既にインストールされている。
【００４８】
アプリケーションの旧版プログラムは、新版プログラム同様、複合機３の各種機能を制御するためのプログラムであり、この旧版プログラムのみがインストールされたＰＣ１は、複合機３側で所定の操作が行われた際に旧版プログラムを起動する構成になっている。しかし、インストーラによってアプリケーションの最新版プログラムをインストールした場合、以降、ＰＣ１は、複合機３側で所定の操作が行われた際に、最新版プログラムを起動する構成に変更されることになる。
【００４９】
なお、旧版プログラムには、最新版プログラムの一つ前の版に相当するプログラム、二つ前の版に相当するプログラムなど、版が異なる２以上のプログラムが存在する可能性があるが、本実施形態においては、同じソフトウェアの最新版プログラム以外のものであれば、いずれも旧版プログラムと称することにする。また、これら版が異なる２以上の旧版プログラムは、択一的にＰＣ１にインストールされるとは限らず、ＰＣ１上で共存している可能性もあるが、この場合、共存している２以上のプログラムすべてが旧版プログラムに該当する。
【００５０】
［インストール処理］
次に、ＰＣ１上で機能するインストーラが実行するインストール処理について、図２に基づいて説明する。
【００５１】
ＰＣ１においてインストール処理が開始されると、ＰＣ１は、まず、スキャナドライバをインストールする（Ｓ１０１）。このＳ１０１の処理では、スキャナドライバのプログラムファイルやスキャナドライバが利用する設定ファイルなどが、あらかじめ決められたフォルダ（例えば、ＯＳのシステムフォルダ等）に生成される。より具体的には、例えば、ＣＤ−ＲＯＭのようなリムーバブルメディアからのインストールを行っている場合、リムーバブルメディア内に圧縮ファイルとして格納されたプログラムファイルや設定ファイルがＲＡＭ１３上で展開（解凍）され、展開された内容があらかじめ決められたフォルダ内のファイルとして書き出されることにより、所期のファイルが生成される。また、圧縮ファイルを利用するか否かは任意であり、圧縮されていない通常のファイルを、あらかじめ決められたフォルダ内に単にコピーするようにしても、所期のファイルを生成することができる。
【００５２】
こうしてスキャナドライバのインストールを終えたら、続いて、ＰＣ１は、アプリケーションプログラムをインストールする（Ｓ１０３）。Ｓ１０３の処理でも、上記Ｓ１０１の処理の場合と同様の手法で、アプリケーションプログラムのプログラムファイルや各種設定ファイル等が、あらかじめ決められたフォルダに生成される。より具体的には、本実施形態では、Ｓ１０３の処理により、アプリケーションプログラムのプログラムファイルや各種設定ファイル等が、アプリケーションの最新バージョン格納フォルダである「C:\Program Files\Br\Apri3.0」内に生成され、アプリケーションのプログラムファイルとしては、Apri.exeおよびApri2.exeが生成される。Apri.exeは、先に説明した起動プログラムが格納されたファイルであり、Apri2.exeは先に説明したメインプログラムが格納されたファイルである。
【００５３】
これら各ファイルのインストールを終えたら、続いて、ＰＣ１は、アプリケーションプログラムのバージョン情報とインストールフォルダをレジストリに書き込む（Ｓ１０５）。レジストリは、ＯＳが各種プログラムを管理する上で必要となる情報を記憶するための管理用記憶領域であり、Ｓ１０５の処理により、レジストリには、図３（ａ）に示すような情報が登録されることになる。なお、本実施形態において、ＰＣ１には、アプリケーションの旧版プログラムがインストール済みになっているため、図３（ａ）に示したレジストリには、旧版プログラムの情報（図３（ａ）中に「２．０」という情報が付属している情報）が既に登録された状態になっている。Ｓ１０５の処理が実行された場合、レジストリ内にある旧版プログラムの情報はそのまま残され、最新版プログラムの情報（図３（ａ）中に「３．０」という情報が付属している情報）が追加登録されることになる。
【００５４】
続いて、ＰＣ１は、アプリケーションプログラムをＲＵＮレジストリに登録する（Ｓ１０７）。ＲＵＮレジストリは、ＯＳの起動時に起動すべきアプリケーションに関する情報を記憶するための管理用記憶領域であり、Ｓ１０７の処理により、レジストリには、図３（ｂ）に示すような情報が登録されることになる。なお、本実施形態において、ＰＣ１には、アプリケーションの旧版プログラムがインストール済みになっているため、図３（ｂ）に示したＲＵＮレジストリには、旧版プログラムの情報（図３（ｂ）中に「Ａｐｒｉ２．０」という情報が付属している情報）が既に登録された状態になっている。Ｓ１０７の処理が実行された場合、レジストリ内にある旧版プログラムの情報はそのまま残され、最新版プログラムの情報（図３（ｂ）中に「Ａｐｒｉ３．０」という情報が付属している情報）が追加登録されることになる。
【００５５】
続いて、ＰＣ１は、アプリケーションプログラムをスタートメニューに登録する（Ｓ１０９）。スタートメニューは、Ｗｉｎｄｏｗｓ（登録商標）において、利用者がアプリケーションを起動するために利用する標準的なユーザーインターフェースとなるメニューである。Ｓ１０９の処理によって、アプリケーションプログラムをスタートメニューに登録すると、以降は、利用者はスタートメニューを使ってアプリケーションを起動できるようになる。具体的には、例えば、利用者がマウス等のポインティングデバイスを使って、表示部１７に表示されたタスクバー５１（図３（ｃ）参照）の端にあるスタートボタン５３をクリックし、階層構造を持つメニュー５５を表示させると、このメニュー５５内にアプリケーションプログラムへのショートカット５７，５９が表示される。ここで、利用者がショートカット５７，５９のいずれかを選択すれば、アプリケーションを起動することができる。なお、ショートカット５７は、旧版プログラムのインストール時に作成されたものであり、ショートカット５９は、上記Ｓ１０９の処理により作成されたものであるが、本実施形態においては、後述する処理により、ショートカット５７，５９のいずれを選択しても、最新版プログラムが起動されるようにＰＣ１の構成が変更される。この点については、後から詳しく説明する。
【００５６】
さて、Ｓ１０９の処理を終えたら、ＰＣ１は、スキャナドライバにアプリケーションプログラムを関連付ける（Ｓ１１１）。具体的には、レジストリ内にあるスキャナドライバ用の記憶領域内に、図３（ｄ）に示すような情報を登録する。なお、本実施形態において、ＰＣ１には、アプリケーションの旧版プログラムがインストール済みになっているため、図３（ｄ）に示したレジストリには、旧版プログラムの情報（図３（ｄ）中に「ＯｌｄＤｅｖｉｃｅ」という情報が付属している情報）が既に登録された状態になっている。Ｓ１１１の処理が実行された場合、レジストリ内にある旧版プログラムの情報はそのまま残され、最新版プログラムの情報（図３（ｄ）中に「ＮｅｗＤｅｖｉｃｅ」という情報が付属している情報）が追加登録されることになる。
【００５７】
ちなみに、図３（ｄ）に示した情報は、関連づけが行われたスキャナのプロパティを見ることにより確認することができる。例えば、図４（ａ）に示すように、旧版プログラムが関連付けられたスキャナのプロパティを表示すると、ダイアログボックス６１には、Eventsタブを持つサブページ６３が表示され、その中にあるイベント選択欄６５、プログラム選択欄６７が表示される。このEvent選択欄６５、プログラム選択欄６７に表示される内容が、図３（ｄ）に示した情報中にある「ＯｌｄＤｅｖｉｃｅ」に対応する内容となる。また、図４（ｂ）に示すように、最新版プログラムが関連付けられたスキャナ（本実施形態の場合は、複合機３）のプロパティを表示すると、ダイアログボックス７１には、Eventsタブを持つサブページ７３が表示され、その中にあるイベント選択欄７５、プログラム選択欄７７が表示される。このEvent選択欄７５、プログラム選択欄７７に表示される内容が、図３（ｄ）に示した情報中にある「ＮｅｗＤｅｖｉｃｅ」に対応する内容となる。
【００５８】
こうしてＳ１１１の処理を終えたら、ＰＣ１は、インストール処理を終了する。なお、本実施形態においては、インストール処理を終了した場合、必ずＯＳの再起動を要求する。そして、ＯＳが再起動された場合には、上記Ｓ１０７の処理によってＲＵＮレジストリに登録された情報に基づいて、アプリケーションが起動されることになる。
【００５９】
［リクエスト監視処理］
次に、ＯＳおよびスキャナドライバが協働して実行するリクエスト監視処理について、図５に基づいて説明する。このリクエスト監視処理は、複合機３において所定の操作が行われた場合に、複合機３から送信されてくる信号を検出して、アプリケーションを起動する処理である。
【００６０】
リクエスト監視処理を開始すると、ＰＣ１は、スキャナデバイス（本実施形態の場合は、複合機３）からのリクエストを監視し（Ｓ２０１）、リクエストを受信したか否かを判断する（Ｓ２０３）。ここで、リクエストを受信していなければ（Ｓ２０３：ＮＯ）、複合機３において所定の操作が行われていないことになるので、Ｓ２０１の処理へと戻ることにより、リクエストの監視を継続する状態になる。
【００６１】
一方、Ｓ２０３の処理において、リクエストを受信したと判断した場合は（Ｓ２０３：ＹＥＳ）、関連付けられたアプリケーションを起動する（Ｓ２０５）。Ｓ２０５の処理では、上記Ｓ１１１の処理によってレジストリに登録された情報が参照され、アプリケーションが起動されることになる。なお、Ｓ２０５の処理を終えた後は、Ｓ２０１の処理へと戻ることにより、再びリクエストの監視を継続する状態になる。
【００６２】
［アプリケーション処理］
次に、アプリケーションが実行するアプリケーション処理について、図６に基づいて説明する。なお、既に説明した通り、本実施形態において、アプリケーションは、先に説明したメインプログラムおよび起動プログラムによって構成されている。ただし、本発明の実施形態に相当する構成変更処理は、起動プログラム中に含まれているので、図６には起動プログラムのフローチャートを示し、この起動プログラムに基づく処理の中で起動されるメインプログラムのフローチャートについては、図示を省略する。
【００６３】
アプリケーション処理を開始すると、ＰＣ１は、レジストリから最新バージョン格納フォルダを取得できたか否かを判断する（Ｓ３０１）。このＳ３０１の処理においては、バージョンの情報がレジストリ（図３（ａ）のVersion）に記憶される仕様になっている（Ver3.0以降の）バージョンのみがインストールされている場合、およびバージョンの情報がレジストリ（図３（ａ）のVersion）に記憶される仕様になっている（Ver3.0以降の）バージョンとバージョンの情報がレジストリに記憶される仕様になっていない（Ver2.0以前の）旧バージョンの双方がインストールされている場合に、レジストリに記憶されているバージョン情報のうち最新のバージョンが取得できるので、最新バージョン格納フォルダを取得できたとの肯定判断がなされる。一方、旧バージョンのみがインストールされている場合には、最新バージョン格納フォルダを取得できないとの否定判断がなされる。
【００６４】
Ｓ３０１の処理で肯定判断がなされた場合（Ｓ３０１：ＹＥＳ）、ＰＣ１は、最新バージョン格納フォルダのApri2.exeを実行する（Ｓ３０３）。Apri2.exeは、アプリケーションのメインプログラムの最新バージョンが格納されたファイルで、本実施形態においては、最新バージョン格納フォルダである「C:\Program Files\Br\Apri3.0」内に、Apri2.exeが格納されているので、Ｓ３０３の処理では、「C:\Program Files\Br\Apri3.0\Apri2.exe」を起動することになる。
【００６５】
次に、ＰＣ１は、最新バージョンのメインプログラムよりも旧い、旧バージョンのメインプログラムが起動しているか否かを判断する（Ｓ３０５）。ここで、旧バージョンのメインプログラムが起動している場合（Ｓ３０５：ＹＥＳ）、ＰＣ１は、旧バージョンのメインプログラムを終了させる（Ｓ３０７）。一方、旧バージョンのメインプログラムが起動していない場合は（Ｓ３０５：ＮＯ）、Ｓ３０７の処理をスキップする。
【００６６】
続いて、ＰＣ１は、レジストリの中から旧バージョンのメインプログラムを格納する旧バージョン格納フォルダを検索する（Ｓ３０９）。ここで、最新バージョンと旧バージョンの双方がインストールされている場合、および旧バージョンのみがインストールされている場合には、Ｓ３０９の処理では、旧バージョン格納フォルダが検出されることになる。一方、最新バージョンのみがインストールされている場合には、旧バージョン格納フォルダが検出されないことになる。
【００６７】
そこで、ＰＣ１は、旧バージョン格納フォルダを見つけたか否かを判断し（Ｓ３１１）、旧バージョン格納フォルダを見つけた場合は（Ｓ３１１：ＹＥＳ）、旧バージョン格納フォルダに新バージョンの（すなわち、レジストリ（図３（ａ）のVersion）に記憶されているバージョン情報から最新バージョンであると判別されるメインプログラムを起動する仕様となっている）起動プログラムであるApri.exeが組み込まれているか否かを判断する（Ｓ３１３）。この判断は、Apri.exeが旧バージョンのメインプログラムでないか否かの判断でもある。
【００６８】
Ｓ３１３の処理で、旧バージョン格納フォルダに新バージョンのApri.exeが組み込まれていないと判断された場合（Ｓ３１３：ＮＯ）、ＰＣ１は、旧バージョンのApri.exeをApri2.exeにリネームし（Ｓ３１５）、新バージョンのApri.exeを旧バージョン格納フォルダに書き込む（Ｓ３１７）。これらＳ３１５およびＳ３１７の処理により、旧バージョン格納フォルダに新バージョンのApri.exeが組み込まれることになる。なお、Ｓ３１５の処理を実行する前の段階で、旧バージョン格納フォルダである「C:\Program Files\Br\Apri2.0」の内容を表示すると、図７（ａ）に示すように、旧バージョンのApri.exeが存在しているが、Ｓ３１５の処理を実行した直後は、図７（ｂ）に示すように、旧バージョンのApri.exeがApri2.exeにリネームされた状態になる。そして、さらにＳ３１７の処理を実行した後は、図７（ｃ）に示すように、新バージョンのApri.exeが旧バージョン格納フォルダに書き込まれ、旧バージョン格納フォルダ内には、新バージョンのApri.exeと旧バージョンのApri.exeに相当するプログラムが格納されたApri2.exeが存在する状態になる。
【００６９】
一方、過去にＳ３１５およびＳ３１７の処理（または、Ｓ３１５およびＳ３１７と同等な処理）が実行されている場合、既に旧バージョン格納フォルダに新バージョンのApri.exeが組み込み済みとなっている。そのため、この場合は、Ｓ３１３の処理で、旧バージョン格納フォルダに新バージョンのApri.exeが組み込まれていると判断され（Ｓ３１３：ＹＥＳ）、Ｓ３１５およびＳ３１７の処理はスキップされる。
【００７０】
また、Ｓ３１１の処理において、旧バージョン格納フォルダが見つからないと判断された場合も（Ｓ３１１：ＮＯ）、Ｓ３１５およびＳ３１７の処理はスキップされる。
こうしてＳ３１５およびＳ３１７の処理を実行するかスキップしたら、ＰＣ１は、この起動プログラムに基づく処理を終了する。以降は、Ｓ３０３の処理で起動されたメインプログラムのプロセスが、アプリケーションとして機能することになる。
【００７１】
さて、以上がＳ３０１の処理で肯定判断がなされた場合の処理となるが、Ｓ３０１の処理では否定判断がなされることもある。このような否定判断がなされるケースは、例えば、過去に最新バージョンのアプリケーションが実行され、その結果、上記Ｓ３１７の処理により、新バージョンのApri.exeが旧バージョン格納フォルダに書き込まれ、その後、最新バージョンのアプリケーションがアンインストールされたような環境下で発生する。すなわち、このような環境下で、上記旧バージョン格納フォルダに書き込まれたApri.exe（＝このアプリケーション処理を実行するプログラム）が実行されると、旧バージョン格納フォルダに書き込まれたApri.exeが実行されるものの、最新バージョンの情報はアンインストールに伴ってレジストリから消されているため、Ｓ３０１の処理で否定判断がなされることになる。
【００７２】
Ｓ３０１の処理で否定判断がなされた場合（Ｓ３０１：ＮＯ）、ＰＣ１は、本アプリケーション処理を実行しているApri.exeが格納されているフォルダにある旧バージョンのApri2.exeを実行する（Ｓ３２１）。ここで、Ｓ３２１の処理によって起動されるApri2.exeは、Ｓ３０３の処理で起動されるApri2.exeとは相違するものであり、Ｓ３１５の処理によってリネームされたものに相当する。すなわち、Ｓ３０３の処理で起動されるApri2.exeは、アプリケーションの旧バージョンのメインプログラムファイルで、本実施形態においては、旧バージョン格納フォルダである「C:\Program Files\Br\Apri2.0」内に、リネームされたApri2.exeが格納されているので、Ｓ３２１の処理では、「C:\Program Files\Br\Apri2.0\Apri2.exe」を起動することになる。
【００７３】
なお、Ｓ３２１の処理を終えた後は、Ｓ３０９の処理へと進むが、Ｓ３０９以降の処理については既に説明したので、重ねての説明は省略する。
［第１実施形態の効果］
以上説明したＰＣ１によれば、旧バージョン格納フォルダである「C:\Program Files\Br\Apri2.0」内にある旧版プログラムであるApri.exeが、最新バージョンのアプリケーションを起動するための起動プログラムであるApri.exeに置き換えられる。そのため、ＰＣ１が、旧版プログラムを起動すべきイベントの発生を検出した際に、旧バージョン格納フォルダ内にあるApri.exeを起動する仕組み自体には何ら手を加えることなく、ＰＣ１の構成を旧版プログラムであるApri.exeを起動する構成から、最新バージョンのアプリケーションを起動するための起動プログラムApri.exeを起動し、Ｓ３０３の処理によって最新版プログラムを起動する構成に変更することができる。
【００７４】
しかも、このような最新版プログラムを起動する構成に変更した後、再び旧版プログラムを起動する構成に戻す際には、単に最新版プログラムを検出不能とする（例えば、レジストリ内の情報を削除する、あるいは、最新版プログラムを格納したファイルを削除する）だけで、Ｓ３０１の処理で否定判断がなされ、Ｓ３２１の処理により、旧版プログラムを起動できる。したがって、Ｓ３１５の処理でリネームされたパス名を元に戻したり、Ｓ３１７の処理で書き込んだファイルを削除したりする必要はないので、面倒な手間をかけることなく旧版プログラムを起動する構成に簡単に戻すことができる。
【００７５】
また、Ｓ３１３の処理では、旧バージョン格納フォルダ内にあるApri.exeが、既に新バージョンのApri.exeと置き換わっていれば、Ｓ３１５，Ｓ３１７をスキップすることにより、あらためてApri.exeファイルを生成しないように制御するので、ＰＣ１に無駄な負荷がかかってしまうのを未然に防止できる。
【００７６】
また、Ｓ３０５〜Ｓ３０７の処理では、旧版プログラムが起動している場合でも、旧版プログラムを終了させることができるので、Ｓ３１５の処理によるパス名の変更を適切に実施できる。
【００７７】
また、第１実施形態においては、Ｓ３１１〜Ｓ３１７の構成変更処理を、ＯＳの起動に連動して起動されるアプリケーションの起動プログラムに組み込んだので、ＯＳを起動する機会があれば、Ｓ３１１〜Ｓ３１７の構成変更処理も実行される。したがって、例えば、最新版のアプリケーションをインストールした後に、何らかの事情で再び旧版のアプリケーションがインストールされたような場合でも、ＯＳの再起動等に伴って最新版のアプリケーションが一度でも実行されれば、再びインストールされた旧版のアプリケーションを最新版に戻すことができる。
（２）第２実施形態
次に、上記第１実施形態とは別の実施形態について説明する。ただし、以下に説明する実施形態は、第１実施形態と一部のみが異なる実施形態となるので、第１実施形態と相違する部分についてのみ詳述し、第１実施形態と相違しない部分についての説明は省略する。
【００７８】
第２実施形態においては、インストーラによるインストール処理が第１実施形態とは相違し、具体的には、図８および図９に示すように、インストーラが、Ｓ１０１〜Ｓ１１１の処理を実行した後、引き続いて、Ｓ３０７〜Ｓ３１７の処理を実行するように構成されている。
【００７９】
Ｓ１０１〜Ｓ１１１の処理は、第１実施形態においてもインストーラが実行していた処理であるが、Ｓ３０７〜Ｓ３１７の処理は、第１実施形態ではアプリケーションの起動プログラム内に組み込まれていた処理に相当する。なお、Ｓ１０１〜Ｓ１１１の処理、およびＳ３０７〜Ｓ３１７の処理自体は、それぞれ第１実施形態で説明した各処理と同様なので、ここでの説明は省略する。
【００８０】
以上のように構成されたインストーラによれば、インストーラによってＰＣ１に最新版プログラムが組み込まれた場合に、直ちにＳ３１１〜Ｓ３１７に従った処理も実行される。したがって、旧バージョン格納フォルダ内にあるApri.exeを起動する仕組み自体には何ら手を加えることなく、ＰＣ１の構成を旧版プログラムであるApri.exeを起動する構成から、最新バージョンのアプリケーションを起動するための起動プログラムApri.exeを起動する構成に変更できる。
（３）第３実施形態
第３実施形態は、第１実施形態で示した起動プログラムの機能とメインプログラムの機能を統合した単一のプログラムを、最新バージョンのアプリケーションとして使用する例である。すなわち、第３実施形態は、最新バージョンのアプリケーションを、起動プログラムとメインプログラムに分けない点で、第１実施形態とは相違する。より具体的には、第３実施形態のアプリケーションは、自身が備える処理を実行した場合に、最新バージョンのアプリケーションとして機能するものであり、この点では、第１実施形態で示したメインプログラム相当の機能を備えている。また、第３実施形態のアプリケーションは、旧バージョンのアプリケーションを起動する機能を備えており、この点では、第１実施形態で示した起動プログラム相当の機能を備えている。
【００８１】
以下、第３実施形態としてのアプリケーション処理について、図１０および図１１に基づいて説明する。
アプリケーション処理を開始すると、ＰＣ１は、レジストリから最新バージョン格納フォルダを取得できたか否かを判断する（Ｓ４０１）。このＳ４０１の処理においては、最新バージョンのみがインストールされている場合、および最新バージョンと旧バージョンの双方がインストールされている場合に、最新バージョン格納フォルダを取得できたとの肯定判断がなされる。一方、旧バージョンのみがインストールされている場合には、最新バージョン格納フォルダを取得できないとの否定判断がなされる。
【００８２】
Ｓ４０１の処理で肯定判断がなされた場合（Ｓ４０１：ＹＥＳ）、ＰＣ１は、レジストリから取得した最新バージョン格納フォルダは本アプリケーション処理を実行しているApri.exeが格納されているフォルダか否かを判断する（Ｓ４０３）。このＳ４０１の処理においては、最新バージョン格納フォルダに格納されたApri.exeが起動されている場合には、レジストリから取得した最新バージョン格納フォルダは本アプリケーション処理を実行しているApri.exeが格納されているフォルダであるとの肯定判断がなされる。一方、後述するＳ４３１の処理により、旧バージョン格納フォルダに格納されたApri.exeが起動されている場合には、レジストリから取得した最新バージョン格納フォルダは本アプリケーション処理を実行しているApri.exeが格納されているフォルダではないとの否定判断がなされる。
【００８３】
Ｓ４０３の処理で肯定判断がなされた場合（Ｓ４０３：ＹＥＳ）、ＰＣ１は、本アプリケーション処理を実行しているApri.exeが格納されているフォルダにApri2.exeがあるか否かを判断する（Ｓ４０５）。ここで、本アプリケーション処理を実行しているApri.exeが格納されているフォルダにApri2.exeがない場合は（Ｓ４０５：ＮＯ）、本アプリケーション処理を実行しているApri.exeがアプリケーションの最新版プログラムに該当することを意味するので、この場合は、本アプリケーション処理を実行しているApri.exeが備える処理を実行することにより、最新版のアプリケーションとして機能する（Ｓ４０７）。なお、Ｓ４０７の処理は、最新版のアプリケーションとしての機能を、別スレッドで起動する処理となるが、この別スレッド内での具体的な処理自体は、本発明の要部ではないので詳細な説明については省略する。
【００８４】
一方、Ｓ４０３の処理で否定判断がなされた場合（Ｓ４０３：ＹＥＳ）、ＰＣ１は、最新バージョン格納フォルダのApri.exeを実行する（Ｓ４０９）。
こうしてＳ４０７またはＳ４０９の処理が実行された場合は、どちらの場合とも、最新バージョン格納フォルダに格納された最新版のアプリケーションが機能することになる。そこで、ＰＣ１は、旧バージョンが起動しているか否かを判断し（Ｓ４１１）、旧バージョンが起動している場合は（Ｓ４１１：ＹＥＳ）、旧バージョンを終了させ（Ｓ４１３）、一方、旧バージョンが起動していない場合は（Ｓ４１１：ＮＯ）、Ｓ４１３の処理をスキップする。
【００８５】
さて、Ｓ４０１の処理では、旧バージョンのみがインストールされている場合に、最新バージョン格納フォルダを取得できないとの否定判断がなされることがある（Ｓ４０１：ＮＯ）。このような否定判断は、例えば、過去に最新バージョンのアプリケーションが実行され、その結果、後述するＳ４２９の処理により、旧バージョンのApri.exeがApri2.exeにリネームされ、Ｓ４３１の処理により、新バージョンのApri.exeが旧バージョン格納フォルダに書き込まれ、その後、最新バージョンのアプリケーションがアンインストールされ、かつ、アンインストールされていないバージョンのアプリケーションがバージョンの情報をレジストリ（図３（ａ）のVersion）に記憶される仕様になっていない（旧バージョンのアプリケーションの設計時にはバージョンの管理を考慮に入れていなかったり、アプリケーションの大きなバージョンアップがあったときにバージョンの管理方法を設計変更することはままある）ような環境下で発生する。すなわち、このような環境下で、上記旧バージョン格納フォルダに書き込まれたApri.exe（＝このアプリケーション処理を実行するプログラム）が実行されると、旧バージョン格納フォルダに書き込まれたApri.exeが実行されるものの、最新バージョンの情報はアンインストールに伴ってレジストリから消されている。そのため、Ｓ４０１の処理で否定判断がなされることになり、この場合、最新バージョンと認識すべきプログラムは、本アプリケーション処理を実行しているApri.exeが格納されているフォルダにあるApri2.exeとなる。
【００８６】
また、Ｓ４０５の処理では、本アプリケーション処理を実行しているApri.exeが格納されているフォルダにApri2.exeがあるとの肯定判断がなされることがある（Ｓ４０５：ＹＥＳ）。このような肯定判断は、例えば、過去に最新バージョンのアプリケーションが実行され、その結果、後述するＳ４２９の処理により、旧バージョンのApri.exeがApri2.exeにリネームされ、Ｓ４３１の処理により、新バージョンのApri.exeが旧バージョンフォルダに書き込まれ、その後、最新バージョンのアプリケーションがアンインストールされ、かつ、アンインストールされていないバージョンのアプリケーションがバージョンの情報をレジストリに記憶される仕様であるような環境下で発生する。すなわち、このような環境下で、上記旧バージョン格納フォルダに書き込まれたApri.exe（＝このアプリケーション処理を実行するプログラム）が実行されると、旧バージョン格納フォルダに書き込まれたApri.exeが実行されるものの、自身より新しいバージョンの情報はアンインストールに伴ってレジストリから消され、自身が最新バージョンとして機能する状態になる。そのため、Ｓ４０１およびＳ４０３の処理でそれぞれ肯定判断がなされることになる。この場合、Apri.exe最新バージョンと認識すべきプログラムは、本アプリケーション処理を実行しているApri.exeが格納されているフォルダにあるApri2.exeとなる。
【００８７】
そこで、Ｓ４０１の処理で否定判断がなされた場合（Ｓ４０１：ＮＯ）、あるいはＳ４０５の処理で肯定判断がなされた場合（Ｓ４０５：ＹＥＳ）、ＰＣ１は、本アプリケーション処理を実行しているApri.exeが格納されているフォルダにあるApri2.exeを実行する（Ｓ４１５）。なお、Ｓ４１５の処理を実行した場合は、最新バージョンが新たにインストールされた直後ではないため、Ｓ４１１およびＳ４１３の処理は実行されない。
【００８８】
以上のようにしてＳ４０１〜Ｓ４１５の処理を終えたら、続いて、ＰＣ１は、レジストリの中から旧バージョンを格納フォルダを検索する（Ｓ４２１）。ここで、最新バージョンと旧バージョンの双方がインストールされている場合、および旧バージョンのみがインストールされている場合には、Ｓ４２１の処理では、旧バージョンを格納フォルダが検出されることになる。一方、最新バージョンのみがインストールされている場合には、旧バージョンを格納フォルダが検出されないことになる。
【００８９】
そこで、ＰＣ１は、旧バージョン格納フォルダを見つけたか否かを判断し（Ｓ４２３）、旧バージョン格納フォルダを見つけた場合は（Ｓ４２３：ＹＥＳ）、本アプリケーション処理を実行しているApri.exeが備える処理を実行することにより、最新版のアプリケーションとして機能しているか（すなわち、Ｓ４０７が実施されているか）を確認する（Ｓ４２４）。本アプリケーション処理を実行しているApri.exeが備える処理を実行することにより、最新版のアプリケーションとして機能している（Ｓ４２４：ＹＥＳ）ならば、旧バージョン格納フォルダに本アプリケーション処理を実行しているApri.exeが組み込まれているか否かを判断する（Ｓ４２５）。この判断は、Apri.exeが本アプリケーション処理を備えていない旧バージョンのメインプログラムや、最新版でないアプリケーションのメインプログラムでないか否かの判断でもある。
【００９０】
Ｓ４２５の処理で、旧バージョン格納フォルダに本アプリケーション処理を実行しているApri.exeが組み込まれていないと判断された場合（Ｓ４２５：ＮＯ）、ＰＣ１は、さらに、旧バージョン格納フォルダにApri2.exeがあるか否かを判断する（Ｓ４２７）。ここで、旧バージョン格納フォルダにApri2.exeがない場合は（Ｓ４２７：ＮＯ）、後述するＳ４２９の処理が過去に実行されていない場合に相当するので、旧バージョンのApri.exeをApri2.exeにリネームし（Ｓ４２９）、新バージョンのApri.exeを旧バージョン格納フォルダに書き込む（Ｓ４３１）。これらＳ４２９およびＳ４３１の処理により、旧バージョン格納フォルダに新バージョンのApri.exeが組み込まれることになる。Ｓ４２７の判断があることで、旧バージョンをインストールしたときにフォルダに格納された（オリジナルの）Apri.exeがＳ４２９の処理でApri2.exeにリネームされ、Ｓ４３１の処理で新しいバージョンのApri.exeがフォルダに格納された後、さらに新しいバージョンのアプリケーションがインストールされても、Apri2.exeにリネームされていた（オリジナルの）Apri.exeが失われずに済む。
【００９１】
なお、旧バージョン格納フォルダが見つからなかった場合（Ｓ４２３：ＮＯ）、本アプリケーション処理を実行しているApri.exeが備える処理を実行せず、本アプリケーション処理を実行しているApri.exeは最新版のアプリケーションとして機能していない場合（Ｓ４２４：ＮＯ）、旧バージョン格納フォルダに本アプリケーション処理を実行しているApri.exeが組み込まれていると判断された場合（Ｓ４２５：ＹＥＳ）、旧バージョン格納フォルダにApri2.exeがあると判断された場合は（Ｓ４２７：ＹＥＳ）、いずれの場合とも、Ｓ４２９およびＳ４３１の処理はスキップされる。
【００９２】
こうしてＳ４２９およびＳ４３１の処理を実行するかスキップしたら、ＰＣ１は、このプログラムに基づく処理を終了する。以降は、Ｓ４０７の処理で別スレッドで実行されたアプリケーションとしての機能、もしくは、Ｓ４０９またはＳ４１５の処理により、別プロセスとして起動されたアプリケーションとしての機能が、ＰＣ１上において機能し続けることになる。
（４）その他の実施形態
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【００９３】
例えば、上記第１，３実施形態では、アプリケーションの起動プログラムの中に本発明の構成変更プログラムを組み込んだ例を示し、上記第２実施形態では、インストールプログラムの中に本発明の構成変更プログラムを組み込んだ例を示したが、これらはいずれか一方を択一的に採用するだけでなく、両方を採用する構成にしてもよい。
【図面の簡単な説明】
【００９４】
【図１】情報処理装置の一例に相当するＰＣと、ＰＣに接続された複合機の概略構成を示したブロック図。
【図２】第１実施形態におけるインストール処理のフローチャート。
【図３】（ａ）はアプリケーションプログラムのバージョン情報とインストールフォルダを示す説明図、（ｂ）はＯＳの起動時に起動すべきアプリケーションに関する情報を示す説明図、（ｃ）はスタートメニューに登録されたアプリケーションへのショートカットを示す説明図、（ｄ）はスキャナドライバとアプリケーションプログラムとを関連付けるための情報を示す説明図。
【図４】（ａ）は旧版プログラムが関連付けられたスキャナのプロパティを表示するためのダイアログボックスを示す説明図、（ｂ）は最新版プログラムが関連付けられたスキャナのプロパティを表示するためのダイアログボックスを示す説明図。
【図５】リクエスト監視処理のフローチャート。
【図６】第１実施形態におけるアプリケーション処理のフローチャート。
【図７】旧バージョン格納フォルダ内にあるファイルの変遷を示すための説明図。
【図８】第２実施形態におけるインストール処理（その１）のフローチャート。
【図９】第２実施形態におけるインストール処理（その２）のフローチャート。
【図１０】第３実施形態におけるアプリケーション処理（その１）のフローチャート。
【図１１】第３実施形態におけるアプリケーション処理（その２）のフローチャート。
【符号の説明】
【００９５】
１・・・パーソナルコンピュータ（ＰＣ）、３・・・複合機、１１，３１・・・ＣＰＵ、１２，３２・・・ＲＯＭ、１３，３３・・・ＲＡＭ、１５，３５・・・ハードディスク装置（ＨＤＤ）、１６，３６・・・操作部、１７，３７・・・表示部、１８，３８・・・ＵＳＢインターフェース（ＵＳＢ  Ｉ／Ｆ）、４１・・・印刷部、４２・・・読取部、４３・・・モデム、５１・・・タスクバー、５３・・・スタートボタン、５５・・・メニュー、５７，５９・・・ショートカット、６１，７１・・・ダイアログボックス、６３，７３・・・サブページ、６５，７５・・・イベント選択欄、６７，７７・・・プログラム選択欄。
【図１】
2007280274.tif 000003
【図２】
2007280274.tif 000004
【図３】
2007280274.tif 000005
【図４】
2007280274.tif 000006
【図５】
2007280274.tif 000007
【図６】
2007280274.tif 000008
【図７】
2007280274.tif 000009
【図８】
2007280274.tif 000010
【図９】
2007280274.tif 000011
【図１０】
2007280274.tif 000012
【図１１】
2007280274.tif 000013