(57)【要約】【課題】手作業によるインストール／アンインストール時に依存ファイルを検証して依存ファイル管理情報に登録、更新する処理を行って、人手による依存ファイル削除による他のアプリケーションへの影響を防ぐ。【解決手段】機能ブロックとして、アプリケーションインストール後にアプリケーションが起動されたか否かを判定するための処理を行うアプリケーション起動時実行ファイル検出部１と、アプリケーション起動時にその実行ファイルから依存ファイルの情報を取得する処理を行う依存ファイル情報抽出部２と、依存ファイル情報抽出部２で取得された依存ファイルの情報を後述する依存ファイル情報管理テーブル４に登録する処理を行う依存ファイル情報登録部３と、依存ファイル情報抽出部２で取得された依存ファイルの情報が登録される依存ファイル情報管理テーブル４とを備えて構成されている。【選択図】図１
2009175847.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム上で実行されるアプリケーションプログラムのインストール処理及びアンインストール処理を管理するアプリケーションプログラムのアンインストール管理システムに関し、
オペレーティングシステムの基本情報及びソフトウェアの拡張情報が保存されるレジストリ上の依存ファイル情報を事前に登録して成る依存ファイル情報管理テーブルと、
前記アプリケーションプログラムのインストール後に、アプリケーションプログラムが起動されたか否かを判定するための処理を行うアプリケーションプログラム起動時実行ファイル検出手段と、
前記アプリケーションプログラムの起動時に、前記アプリケーションプログラムの実行ファイルから、依存ファイルの情報を取得する処理を行う依存ファイル情報検出手段と、
前記依存ファイル情報検出手段で取得された依存ファイルの情報を前記依存ファイル情報管理テーブルに登録する処理を行う依存ファイル情報登録手段と、
を備えたことを特徴とするアプリケーションプログラムのアンインストール管理システム。
【請求項２】
インストール時及びアンインストール時の両方で起動されて、前記コンピュータシステム上の依存ファイル情報との同期処理を行う手段をさらに備えたことを特徴とする請求項１記載のアプリケーションプログラムのアンインストール管理システム。
【請求項３】
前記レジストリ上の前記依存ファイル情報として示される所定領域を、前記依存ファイルとの関係を有するアプリケーションプログラムのインストール及びアンインストールの履歴情報を管理するための領域としたことを特徴とする請求項１または請求項２記載のアプリケーションプログラムのアンインストール管理システム。
【請求項４】
前記所定領域の値として、関係する前記アプリケーションプログラムが未だ１つもインストールされていない場合において前記アプリケーションプログラムの１つがインストールされた時に１を設定し、以後、他の前記アプリケーションプログラムの１つがインストールされる毎に、前記所定領域の値を１だけ増分し、かつ前記アプリケーションプログラムの１つがアンインストールされる毎に前記所定領域の値を１だけ減少させることを特徴とする請求項３記載のアプリケーションプログラムのアンインストール管理システム。
【請求項５】
前記依存ファイル情報の更新時に、前記所定領域の値から、前記依存ファイルを参照する実行ファイルがすべて削除されていると判定される場合は、当該依存ファイルを削除するか否かの回答をユーザに要求することを特徴とする請求項４記載のアプリケーションプログラムのアンインストール管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムのアンインストール管理システムに関し、特に、参照関係等の依存関係を有するファイルを自動的に管理するアプリケーションプログラムのアンインストール管理システムに関する。
【背景技術】
【０００２】
近年、アプリケーション製品の普及率が飛躍的に向上している。即ち、企業等においては様々なアプリケーションソフトをコンピュータ上にインストールして使用し、業務の効率化を図る試みが増えている。また、個人にあっても、生活や趣味の分野でアプリケーション製品を使用する機会が多くなっている。
【０００３】
このように、アプリケーションプログラム（以下、単に「アプリケーション」と呼称する）をコンピュータ上にインストールする機会が増えてきた反面、インストールとアンインストールを繰り返すことによってコンピュータに何らかの不具合が生じるというトラブルも発生してきている。例えば、このようなトラブルの１つとして、或る１つのアプリケーションをアンインストールすることで、他の、既にインストールされているアプリケーションに何らかの異常が発生し、正常に動作しなくなるという問題点がある。その主な原因としては、既にインストールされているアプリケーションと依存関係にあるファイル（以下、「依存ファイル」と呼称する）が誤って削除されることが挙げられる。
【０００４】
アプリケーション製品の多くは、オペレーティングシステムを動作させるために必要なシステムファイル等を参照するものが多い。通常、アプリケーションをインストールする際には、このアプリケーションが必要とするシステムファイル等が、既にインストールされている他のアプリケーションにより参照されていないことを確認した上で、その確認情報を、インストール中、若しくはアンインストール中に、システム上で更新する処理が自動的に行われる。
【０００５】
一般に、依存ファイルが存在するか否かは、当該依存ファイルを参照するコンポーネントの数をレジストリ等のシステム上に記録し、その数から依存ファイルの有無を判定する手法が用いられている。例えば、或るアプリケーションをインストールする際に、１つの依存ファイルを２つのコンポーネントが参照することが確認された場合、当該依存ファイルが新しく発見された依存ファイルであれば、この依存ファイルが配置されているパスの情報と、この依存ファイルを参照するコンポーネントの数（この場合は即ち２）とがコンピュータ上に登録される。予め登録されている依存ファイルであれば、この参照するコンポーネントの数のみを更新するという手法が用いられている。しかし、アプリケーションをインストールする時に登録した依存ファイルの情報が、アンインストール時に何らかのエラーが発生したために更新されなかった場合、その依存ファイルが誤って削除される場合もあり得るが、このような場合には、当該削除された依存ファイルを参照している他のアプリケーションの実行に影響を与えてしまうという問題が生じる。
【０００６】
そこで、上記のような依存ファイルの管理に関する問題を解決するために、特開２００５−０６３２５９号公報では、依存ファイルを有する複数のアプリケーションにおいて、依存ファイルの存在を示すための情報と、依存ファイルを使用しているアプリケーションの存在を示すための情報とを管理することで、不要となったファイルを確実に削除し、安全なアンインストレーションを実現する方法を提案している（特許文献１参照。）。
【０００７】
また、特表２００３−５０３７９３号公報では、システムファイルが無効なファイルで上書きされないよう監視し、ファイルが無効であると判断された場合はオリジナルファイルを復元する機能を提供することで、アプリケーションのインストール中や更新中、もしくはユーザの行為により、依存ファイルが不適切に変更されないように保護をする方法を提案している（特許文献２参照。）。
【０００８】
また、特開平１０−１０５３８３号公報では、アプリケーションプログラムのインストール後に別のアプリケーションによってシステムファイルが変更された場合でも、当該別のアプリケーションに必要な情報を有効に存続させつつ、システムファイルを完全に復元することのできるアンインストール方法を提案している（特許文献３参照。）。
【０００９】
さらに、特開平９−１７９７２７号公報では、アンインストール時にファイルの削除判断をユーザに委ねることなく、簡単かつ確実にアンインストールできる方法を提案している（特許文献４参照。）。
【００１０】
上記の各公知技術を用いて依存ファイルを正確に管理することで、アプリケーションのインストール、アンインストールを、他のアプリケーションに影響を与えることなく安全に行えるようにしている。
【特許文献１】特開２００５−０６３２５９号公報
【特許文献２】特表２００３−５０３７９３号公報
【特許文献３】特開平１０−１０５３８３号公報
【特許文献４】特開平９−１７９７２７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記背景技術で述べた従来のアプリケーションのアンインストール管理システムにあっては、例えば、前述の特許文献で開示されているように、インストーラが自動で登録、更新、削除処理を行うので、ユーザが依存ファイルを意識することなくアプリケーションを利用できることになる。近年、アプリケーションを配布する際には、インストーラも併せて提供することで、インストール処理、アンインストール処理を自動的に行わせることが多くなっている。しかし、依然として、手作業によるインストールが必要なアプリケーションも数多く存在していることが今日の現状である。
【００１２】
ところで、手作業によるインストール、アンインストールが必要なアプリケーションが１つでもコンピュータ上に含まれている場合、たとえ依存ファイルが存在していたとしても、この依存ファイルを依存ファイルとして認識することはできないという問題点がある。
【００１３】
より具体的には、依存ファイルが正確に管理されない場合、依存ファイルを参照する他のアプリケーションへの影響がある。即ち、同一の依存ファイルを参照するアプリケーションが複数インストールされている場合、この依存ファイルの管理が正確にできていないと、いずれかのアプリケーションをアンインストールした際に誤って依存ファイルを削除してしまうこととなり、残されたアプリケーションが正常に機能しなくなる可能性がある。さらに、依存ファイルが削除されたために、残されたアプリケーションがアンインストールできないという事態を招く可能性もある。
【００１４】
このため、手作業によるインストール、アンインストールが必要なアプリケーションに関しては、依存ファイルの情報を管理するための作業が新たに必要となってくる。しかし、依存ファイルの情報を管理するためには煩雑な作業が必要となるため、人的ミスを招く危険性も高くなる。
本発明は、上記従来の問題点に鑑みてなされたものであって、手作業によるインストール時、及びアンインストール時に依存ファイルを検証して依存ファイル管理情報に登録、更新する処理を自動的に行うことを可能として、人手による依存ファイル削除による他のアプリケーションへの影響を防ぐと共に、ユーザが依存ファイルを意識することなくアプリケーションを利用することができるアプリケーションのアンインストール管理システムを提供することを目的としている。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、本発明に係るアプリケーションプログラムのアンインストール管理システムは、コンピュータシステム上で実行されるアプリケーションプログラムのインストール処理及びアンインストール処理を管理するアプリケーションプログラムのアンインストール管理システムに関し、オペレーティングシステムの基本情報及びソフトウェアの拡張情報が保存されるレジストリ上の依存ファイル情報を事前に登録して成る依存ファイル情報管理テーブルと、前記アプリケーションプログラムのインストール後に、アプリケーションプログラムが起動されたか否かを判定するための処理を行うアプリケーションプログラム起動時実行ファイル検出手段と、前記アプリケーションプログラムの起動時に、前記アプリケーションプログラムの実行ファイルから、依存ファイルの情報を取得する処理を行う依存ファイル情報検出手段と、前記依存ファイル情報検出手段で取得された依存ファイルの情報を前記依存ファイル情報管理テーブルに登録する処理を行う依存ファイル情報登録手段と、を備えたことを特徴とするアプリケーションプログラムのアンインストール管理システムを提供するものである。
【００１６】
また、前記アンインストール管理システムにおいて、インストール時及びアンインストール時の両方で起動されて、前記コンピュータシステム上の依存ファイル情報との同期処理を行う手段をさらに備えたことを特徴とする。
【００１７】
また、前記アンインストール管理システムにおいて、前記レジストリ上の前記依存ファイル情報として示される所定領域を、前記依存ファイルとの関係を有するアプリケーションプログラムのインストール及びアンインストールの履歴情報を管理するための領域としたことを特徴とする。
【００１８】
また、前記アンインストール管理システムにおいて、関係する前記アプリケーションプログラムが未だ１つもインストールされていない場合において前記アプリケーションプログラムの１つがインストールされた時に前記所定領域の値として１を設定し、以後、他の前記アプリケーションプログラムの１つがインストールされる毎に、前記所定領域の値を１だけ増分し、かつ前記アプリケーションプログラムの１つがアンインストールされる毎に前記所定領域の値を１だけ減少させることを特徴とする。
【００１９】
さらに、前記アンインストール管理システムにおいて、前記依存ファイル情報の更新時に、前記所定領域の値から、前記依存ファイルを参照する実行ファイルがすべて削除されていると判定される場合は、当該依存ファイルを削除するか否かの回答をユーザに要求することを特徴とする請求項４記載のアプリケーションプログラムのアンインストール管理システム。
【００２０】
以上のような特徴を備える本発明に係るアプリケーションプログラムのアンインストール管理システムは、手作業によるインストール、アンインストールを実施した場合においても、依存ファイル管理情報の整合性が崩れないような仕組みを下記のように構成している。
（１）  インストールされたアプリケーションの実行ファイルが起動された時、依存ファイルの情報を取得し、その情報を依存ファイル情報管理テーブルへ登録することで、コンピュータシステムの全体を管理するオペレーティングシステム上の、レジストリ等に保持される依存ファイル情報とは別個に、依存ファイルに関する情報を保持する。
（２）  アプリケーションがアンインストールされた時、依存ファイル情報管理テーブルへ登録済みの内容を更新する。
（３）  依存ファイル情報の更新時に、依存ファイルを参照する実行ファイルがすべて削除された場合は、その依存ファイルを削除するか否かをユーザに要求する。
（４）  前記別個に保持する依存ファイルに関する情報と、コンピュータシステム上で管理されている依存ファイル情報との整合性を保つために、依存ファイル情報管理テーブルが更新される度に両者の同期処理を行う。
【発明の効果】
【００２１】
以上説明したように、本発明のアプリケーションプログラムのアンインストール管理システムによれば、手作業によるインストール、アンインストールと、インストーラによるインストール、アンインストールとが必要なアプリケーションが混在する環境であっても、依存ファイルの情報を正確に管理することができるので、依存関係にあるファイルを誤って削除してしまう危険性を回避することができるアプリケーションプログラムのアンインストール管理システムを提供することができる効果がある。
【００２２】
また手作業によるインストール時とアンインストール時の人的ミスを軽減し、依存関係にあるファイルを意識することなくアプリケーションを利用することが可能なアプリケーションプログラムのアンインストール管理システムを提供することができる効果がある。
【発明を実施するための最良の形態】
【００２３】
以下、本発明のサブタイトルの最良の実施形態について、図面を参照して詳細に説明する。
【００２４】
図１は、本発明の実施形態に係るアプリケーションプログラムのアンインストール管理システムの全体構成を示す構成図である。
同図に示すアプリケーションのアンインストール管理システムは、インストール時に起動される機能ブロックとして、アプリケーションインストール後にアプリケーションが起動されたか否か（つまり実行ファイルが起動されたか否か）を判定するための処理を行うアプリケーション起動時実行ファイル検出部１と、アプリケーションが起動された際に、その実行ファイルから依存ファイルの情報を取得する処理を行う依存ファイル情報抽出部２と、依存ファイル情報抽出部２で取得された依存ファイルの情報を後述する依存ファイル情報管理テーブル４に登録する処理を行う依存ファイル情報登録部３と、依存ファイル情報抽出部２で取得された依存ファイルの情報が登録される依存ファイル情報管理テーブル４（図４参照）と、を備える。
【００２５】
また、図１に示すアプリケーションのアンインストール管理システムは、アンインストール時に起動される機能ブロックとして、実行ファイルが削除されたか否かを判定するための処理を行う実行ファイル削除時実行ファイル検出部５と、実行ファイル削除時実行ファイル検出部５で実行ファイルが削除された場合に依存ファイル情報管理テーブルへの更新作業を行う依存ファイル情報更新部６と、を備える。
【００２６】
さらに、図１に示すアプリケーションのアンインストール管理システムは、インストール時及びアンインストール時の両方で起動される機能ブロックとして、コンピュータシステム上の依存ファイル情報との同期部７を備える。
前記同期部７では、依存ファイル情報管理テーブル４に登録されている内容と、コンピュータシステム上で管理されている依存ファイル情報との整合性を保つため、依存ファイル情報管理テーブル４に新たな依存ファイル情報が登録された場合、若しくは依存ファイル情報管理テーブル４が更新された場合には、コンピュータシステム上で管理されている依存ファイル情報との同期処理を行う。
【００２７】
ここで、インストール時に起動される依存ファイル情報抽出部２及び依存ファイル情報登録部３の処理は、アプリケーションの初回起動時にのみ行われるものとする。この場合、初回起動時であるか否かの判定は、実行ファイルを実行した時に、この実行ファイルの情報が依存ファイル情報管理テーブルに登録されているか否かを検証することで行うものとする。以下、図２に示すフローチャート図を使用して、インストール時における依存ファイル情報管理テーブルの更新処理について、より具体的に説明する。
【００２８】
図２は、インストール時に依存ファイル情報管理テーブルを更新する際の処理を示すフローチャート図である。
【００２９】
（ステップＳ１）
ステップＳ１では、まず、アプリケーション起動時実行ファイル検出部１が、実行ファイルを起動する。
【００３０】
（ステップＳ２）
ステップＳ２では、依存ファイル情報抽出部２が、依存ファイル情報管理テーブル４を参照する。
【００３１】
（ステップＳ３）
ステップＳ３では、依存ファイル情報抽出部２が、参照した依存ファイル情報管理テーブル４に、前記の実行ファイルに関する情報が登録されているか否かを検証し、当該テーブルに実行ファイルの情報が登録されていなければ初回起動時であると判定してステップＳ４に進み、さもなくて、当該テーブルに実行ファイルの情報が既に登録されている場合は２回目以降の起動であったと見なし、処理を終了する（この場合、依存ファイル情報管理テーブルへの登録処理は行われない）。
【００３２】
（ステップＳ４）
ステップＳ４では、依存ファイル情報登録部３が、依存ファイル情報管理テーブル４への登録処理を行う。
【００３３】
（ステップＳ５）
ステップＳ５では、コンピュータシステム上の依存ファイル情報との同期部７が、コンピュータシステム上の依存ファイル情報との同期処理を行って、処理を終了する。
【００３４】
実行ファイル削除時実行ファイル検出部５では、実行ファイルが削除されたか否かを判定するための処理が行われる。但し、インストーラを用いてアンインストールが行われた場合には、実行ファイルが削除されたか否かを判定するための処理は、全てのアンインストール処理が終了した段階で行うものとする。以下、図３に示すフローチャート図を使用して、アンインストール時における依存ファイル情報管理テーブルの更新処理について、より具体的に説明する。
【００３５】
図３は、アンインストール時に依存ファイル情報管理テーブルを更新する際の処理を示すフローチャート図である。
【００３６】
（ステップＳ６）
ステップＳ６では、まず、実行ファイル削除時実行ファイル検出部５が、起動している実行ファイルを削除する。
【００３７】
（ステップＳ７）
ステップＳ７では、依存ファイル情報更新部６が、依存ファイル情報管理テーブル４を参照する。
【００３８】
（ステップＳ８）
ステップＳ８では、依存ファイル情報更新部６が、更新した依存ファイル情報管理テーブル４に、前記の実行ファイルに関する情報が登録されているか否かを検証し、当該テーブルに実行ファイルの情報が登録されていれば２回目以降の起動であったと見なし、ステップＳ９に進み、さもなくて、当該テーブルに実行ファイルの情報が未登録の場合は処理を終了する（この場合、依存ファイル情報管理テーブルへの更新処理は行われない）。
【００３９】
（ステップＳ９）
ステップＳ９では、依存ファイル情報更新部６が、依存ファイル情報管理テーブル４の更新処理を行う。
【００４０】
（ステップＳ１０）
ステップＳ１０では、コンピュータシステム上の依存ファイル情報との同期部７が、コンピュータシステム上の依存ファイル情報との同期処理を行って、処理を終了する。
【００４１】
図４は、依存ファイル管理情報が登録されるテーブルの構成を示し、図５、６は、このテーブルに登録される値の具体例を示している。
図４に示すように、依存ファイル情報管理テーブル４には、下記の２種類の情報が登録される。
【００４２】
（１）依存ファイルの位置を示すパス８（即ち、参照する依存ファイルがどこに配置されていて、実体が存在するかどうかを検証するための情報である）。
【００４３】
（２）実行ファイルの位置を示すパス９（即ち、（１）の依存ファイルを参照する実効ファイルがどこに配置されていて、実体が存在するか否かを検証するための情報）。
【００４４】
以下、図２、３に示す処理のフローチャート図を参照しながら、インストール、アンインストールの各処理例を示す。
ここでは、Windows（登録商標）オペレーティングシステム上での処理例を示す。また、以下の各例では、本発明のシステムがコンピュータ上に導入された段階で、レジストリ（Windows（登録商標）オペレーティングシステムの基本情報や、ソフトウェアの拡張情報などが保存される場所）上の依存ファイル情報を参照し、その情報を依存ファイル情報管理テーブル４に登録する処理を行うものとする。
【００４５】
まず、インストール、アンインストールするアプリケーションを表４に示す４つとする。
【表１】
2009175847.tif 000003
【００４６】
次に、依存ファイルが正しく管理できているか否かは、表２に示す６条件で検証するものとする。
【表２】
2009175847.tif 000004
【００４７】
なお、表２に示す各条件について、ここでは、インストールされるアプリケーションは、依存ファイル情報管理テーブルに登録されていないものとする。但し、既に登録されている場合は２回目以降のアプリケーション起動と見なし、ステップＳ４，Ｓ５の処理は行わない。また、アンインストールする際には、ここでは、そのアプリケーションの実行ファイル情報は登録済であるものとする。但し、何らかのエラーで実行ファイル登録情報が削除されていた場合、ステップＳ９，Ｓ１０の処理は行わずに終了するものとする。
【００４８】
以下、表２に示す条件１〜６について、その詳細を説明する。
【００４９】
（条件１）
（１）  アプリケーションAPP1をインストールする場合
実行ファイルの\Program\Application1\App1.exe（表１参照）を起動させた場合（ステップＳ１）、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。その後、ステップＳ３にて、この実行ファイルは未登録と判定されるので、依存ファイル情報管理テーブル４へ、当該実行ファイルに関する依存ファイル情報を登録し（ステップＳ４）、さらに、レジストリ上の依存ファイル情報の\System\Sys1.dllに値：１を登録する（ステップＳ５）。この時、依存ファイル情報管理テーブル４への登録内容は図５に示すとおりとなる。
【００５０】
（２）  アプリケーションAPP2をインストールする場合
実行ファイルの\Program\Application2\App2.exe（表１参照）を起動させた場合（ステップＳ１）、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。その後、ステップＳ３にて、当該実行ファイルは未登録と判定されるので、依存ファイル情報管理テーブル４へ、当該実行ファイルに関する依存ファイル情報を登録し（ステップＳ４）、さらに、レジストリ上の依存ファイル情報の\System\Sys1.dllの値を１だけ増分する（ステップＳ５）。この時、依存ファイル情報管理テーブル４の登録内容は図６に示すとおりとなる。
【００５１】
（３）  アプリケーションAPP1をアンインストールする場合
実行ファイルの\Program\Application1\App1.exeを削除した場合（ステップＳ６）、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。その後、ステップＳ８にて、この実行ファイルは登録済と判定されるので、依存ファイル情報管理テーブル４が更新され（ステップＳ９）、さらに、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が１だけ減少される（ステップＳ１０）。この時、依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００５２】
（４）  アプリケーションAPP2をアンインストールする場合
実行ファイルの\Program\Application2\App2.exeを削除した場合（ステップＳ６）、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。その後、ステップＳ８にて、実行ファイルの\Program\Application1\App1.exeは登録済と判定されるので、依存ファイル情報管理テーブル４が更新され（ステップＳ９）、さらに、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が１だけ減少される（ステップＳ１０）。この時、依存ファイル情報管理テーブル４の登録内容、及びレジストリ上の登録内容には、依存ファイル情報の\System\Sys1.dllを参照しているアプリケーションが存在しないことになるので、依存ファイル情報の\System\Sys1.dllが実際に存在すれば、この情報を削除するか否かの回答をユーザに要求する。
【００５３】
（条件２）
（１）  アプリケーションAPP1をインストールする場合
アプリケーションAPP1をインストールした後、その実行ファイルの\Program\Application1\App1.exeを起動させる場合（ステップＳ１）には、依存ファイル情報管理テーブルを参照する（ステップＳ２）。その後、ステップＳ３にて、この実行ファイルのは未登録と判定するので、依存ファイル情報管理テーブル４へ登録し（ステップＳ４）、さらに、レジストリ上の依存ファイル情報に、\System\Sys1.dll（値：1）を登録する（ステップＳ５）。この時、依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００５４】
（２）  アプリケーションAPP３をインストールする場合
アプリケーションAPP３をインストールする時（ステップＳ１）には、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が1だけ増分される。その実行ファイルの\Program\Application1\App3.exeを起動させた場合（ステップＳ１）には、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。その後、ステップＳ３にて、この実行ファイルは未登録と判定するので、依存ファイル情報管理テーブル４へ登録し（ステップＳ４）、さらにレジストリ上の前記依存ファイル情報と整合性が保たれていることを確認する（ステップＳ５）。この時、依存ファイル情報管理テーブル４の登録内容は図６に示すとおりとなる。
【００５５】
（３）  アプリケーションAPP1をアンインストールする場合
実行ファイルの\Program\Application1\App1.exeを削除した後（ステップＳ６）、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。その後、ステップＳ８にて、この実行ファイルは登録済と判定するので、依存ファイル情報管理テーブル４を更新し（ステップＳ９）、さらに、レジストリ上の依存ファイル情報の\System\Sys1.dllの値を1だけ減少させる（ステップＳ１０）。この時、依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００５６】
（４）  アプリケーションAPP3をアンインストールする場合
実行ファイルの\Program\Application3\App3.exeをアンインストール時、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が1だけ減少される。また、依存ファイル情報の\System\Sys1.dllの値が0であれば、この\System\Sys1.dllの情報は自動的に削除される。このアプリケーションAPP3をアンインストールした後（ステップＳ６）、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。その後、ステップＳ８にて、前記実行ファイルは登録済と判定するので、依存ファイル情報管理テーブル４が更新され（ステップＳ９）、さらに、レジストリ上の前記依存ファイル情報との整合性が保たれていることを確認する（ステップＳ１０）。この時、依存ファイル情報管理テーブル４の登録内容、及びレジストリ上の登録内容には、依存ファイル情報の\System\Sys1.dllを参照しているアプリケーションが存在しないことになるので、この\System\Sys1.dllが実際に存在すれば、削除するか否かの回答をユーザに要求する。
【００５７】
（条件３）
（１）  アプリケーションAPP1をインストールする場合
アプリケーションAPP1をインストールした後、その実行ファイルの\Program\Application1\App1.exeを起動させた場合（ステップＳ１）には、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。その後、ステップＳ３にて、この実行ファイルは未登録と判定するので、依存ファイル情報管理テーブル４へ登録し（ステップＳ４）、さらにレジストリ上の依存ファイル情報に、\System\Sys1.dll（値：1）を登録する（ステップＳ５）。このとき依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００５８】
（２）  アプリケーションAPP3をインストールする場合
アプリケーションAPP3をインストールした後、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が1だけ増分される。その実行ファイルの\Program\Application3\App3.exeを起動させた場合（ステップＳ１）には、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。その後、ステップＳ３にて、この実行ファイルは未登録と判定するので、依存ファイル情報管理テーブル４へ登録し（ステップＳ４）、さらに、レジストリ上の依存ファイル情報と整合性が保たれていることを確認する（ステップＳ５）。この時、依存ファイル情報管理テーブル４の登録内容は図６に示すとおりとなる。
【００５９】
（３）  アプリケーションAPP3をアンインストールする場合
アプリケーションAPP3をアンインストールする時、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が1だけ減少される。アプリケーションAPP3をアンインストールした後（ステップＳ６）、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。その後、ステップＳ８にて、その実行ファイルの\Program\Application3\App3.exeは登録済と判定するので、依存ファイル情報管理テーブル４が更新され（ステップＳ９）、さらに、レジストリ上の前記依存ファイル情報と整合性が保たれていることを確認する（ステップＳ１０）。この時、依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００６０】
（４）  APP1をアンインストールする場合
実行ファイルの\Program\Application1\App1.exeのファイルが削除された場合（ステップＳ６）には、依存ファイル情報管理テーブルを参照する（ステップＳ７）。その後、ステップＳ８にて、この実行ファイルは登録済と判定するので、依存ファイル情報管理テーブル４を更新し（ステップＳ９）、さらに、レジストリ上の依存ファイル情報の\System\Sys1.dllの値を1だけ減少させる（S5）。この時、依存ファイル情報管理テーブル４の登録内容、及びレジストリ上の登録内容には、依存ファイル情報の\System\Sys1.dllを参照しているアプリケーションが存在しないことになるので、依存ファイル情報の\System\Sys1.dllが実際に存在すれば、削除するか否かの回答をユーザに要求する。
【００６１】
（条件４）
（１）  アプリケーションAPP3のインストール
アプリケーションAPP3のインストール時、レジストリ上の依存ファイル情報の\System\Sys1.dll（値：1）が登録される。その実行ファイル\Program\Application3\App3.exeを起動させたとき（ステップＳ１）、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。その後、ステップＳ３にて、この実行ファイルは未登録と判定するので、依存ファイル情報管理テーブル４へ登録し（ステップＳ４）、さらに、レジストリ上の前記依存ファイル情報との整合性が保たれていることを確認する（ステップＳ５）。この時、依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００６２】
（２）  アプリケーションAPP1のインストール
アプリケーションAPP1をインストールＤした後、その実行ファイルの\Program\Application1\App1.exeを起動させた場合（ステップＳ１）には、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。その後、ステップＳ３にて、この実行ファイルは未登録と判定するので、依存ファイル情報管理テーブル４へ登録し（ステップＳ４）、さらに、レジストリ上の依存ファイル情報の\System\Sys1.dllの値を1だけ増分する（ステップＳ５）。この時、依存ファイル情報管理テーブル４の登録内容は図６に示すとおりとなる。
【００６３】
（３）  アプリケーションAPP1のアンインストール
実行ファイルの\Program\Application1\App1.exeが削除された場合（ステップＳ６）には、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。その後、ステップＳ８にて、この実行ファイルは登録済と判定するので、依存ファイル情報管理テーブルを４を更新し（ステップＳ９）、さらに、レジストリ上の依存ファイル情報の\System\Sys1.dllの値を1だけ減少させる（ステップＳ１０）。この時、依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００６４】
（４）  アプリケーションAPP3のアンインストール
アプリケーションAPP3のアンインストール時、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が1だけ減少される。また、\System\Sys1.dllの値が0であれば、\System\Sys1.dllの情報は自動的に削除される。アプリケーションAPP3がアンインストールされた後（ステップＳ６）、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。その後、ステップＳ８にて、その実行ファイルの\Program\Application3\App3.exeは登録済と判定するので、依存ファイル情報管理テーブル４が更新され（ステップＳ９）、さらに、レジストリ上の前記依存ファイル情報との整合性が保たれていることを確認する（ステップＳ１０）。この時、依存ファイル情報管理テーブル４の登録内容、及び前記レジストリ上の登録内容には、この\System\Sys1.dllを参照しているアプリケーションが存在しないことになるので、この\System\Sys1.dllが実際に存在すれば、削除するか否かの回答をユーザに要求する。
【００６５】
（条件５）
（１）  アプリケーションAPP3のインストール
アプリケーションAPP3のインストール時、レジストリ上の依存ファイル情報の\System\Sys1.dll（値：1）が登録される。その実行ファイルの\Program\Application3\App3.exeを起動させたとき（ステップＳ１）、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。その後、ステップＳ３にて、この実行ファイルは未登録と判定するので、依存ファイル情報管理テーブル４へ登録し（ステップＳ４）、さらに、レジストリ上の前記依存ファイル情報との整合性が保たれていることを確認する（ステップＳ５）。この時、依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００６６】
（２）  アプリケーションAPP1のインストール
アプリケーションAPP1をインストールした後、実行ファイルの\Program\Application1\App1.exeを起動させた場合（ステップＳ１）には、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。その後、ステップＳ３にて、この実行ファイルは未登録と判定するので、依存ファイル情報管理テーブル４へ登録し（ステップＳ４）、さらに、レジストリ上の依存ファイル情報の\System\Sys1.dllの値を1だけ増分する（ステップＳ５）。この時、依存ファイル情報管理テーブル４の登録内容は図６に示すとおりとなる。
【００６７】
（３）  アプリケーションAPP3のアンインストール
アプリケーションAPP3のアンインストール時、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が1だけ減少される。この実行ファイルの\Program\Application3\App3.exeを削除した後（ステップＳ６）、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。その後、ステップＳ８にて、この実行ファイルは登録済と判定するので、依存ファイル情報管理テーブル４が更新され（ステップＳ９）、さらに、レジストリ上の前記依存ファイル情報との整合性が保たれていることを確認する（ステップＳ１０）。この時、依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００６８】
（４）  アプリケーションAPP1のアンインストール
実行ファイルの\Program\Application1\App1.exe削除された場合（ステップＳ６）、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。この後、ステップＳ８にて、この実行ファイルは登録済と判定するので、依存ファイル情報管理テーブル４を更新し（ステップＳ９）、さらに、レジストリ上の依存ファイル情報の\System\Sys1.dllの値を1だけ減少させる（ステップＳ５）。この時、依存ファイル情報管理テーブル４の登録内容、及びレジストリ上の登録内容には、\System\Sys1.dllを参照しているアプリケーションが存在しないことになるので、\System\Sys1.dllが実際に存在すれば、削除するか否かの回答をユーザに要求する。
【００６９】
（条件６）
（１）  アプリケーションAPP3のインストール
アプリケーションAPP3のインストール時、レジストリ上の依存ファイル情報の\System\Sys1.dll（値：1）が登録される。この実行ファイルの\Program\Application3\App3.exeを起動させたとき（ステップＳ１）、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。この後、ステップＳ３にて、この実行ファイルeは未登録と判定するので、依存ファイル情報管理テーブル４へ登録し（ステップＳ４）、さらに、レジストリ上の前記依存ファイル情報との整合性が保たれていることを確認する（ステップＳ５）。この時、依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００７０】
（２）  アプリケーションAPP4のインストール
アプリケーションAPP4のインストール時、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が1だけ増分される。この実行ファイル\Program\Application4\App4.exeを起動させた場合（ステップＳ１）、依存ファイル情報管理テーブル４を参照する（ステップＳ２）。この後、ステップＳ３にて、この実行ファイルは未登録と判定するので、依存ファイル情報管理テーブル４へ登録し（ステップＳ４）、さらに、レジストリ上の前記依存ファイル情報との整合性が保たれていることを確認する（ステップ５）。この時、依存ファイル情報管理テーブル４の登録内容は図６に示すとおりとなる。
【００７１】
（３）  アプリケーションAPP3のアンインストール
アプリケーションAPP3のアンインストール時、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が1だけ減少される。この実行ファイルの\Program\Application3\App3.exeを削除した（ステップＳ６）、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。この後、ステップＳ８にて、この実行ファイルは登録済と判定するので、依存ファイル情報管理テーブル４が更新され（ステップＳ９）、さらに、レジストリ上の前記依存ファイル情報との整合性が保たれていることを確認する（ステップＳ１０）。この時、依存ファイル情報管理テーブル４の登録内容は図５に示すとおりとなる。
【００７２】
（４）  アプリケーションAPP4のアンインストール
アプリケーションAPP４のアンインストール時、レジストリ上の依存ファイル情報の\System\Sys1.dllの値が1だけ減少される。また、\System\Sys1.dllの値が0であれば、\System\Sys1.dllの情報は自動的に削除される。この実行ファイルの\Program\Application4\App4.exeを削除した後（ステップＳ６）、依存ファイル情報管理テーブル４を参照する（ステップＳ７）。この後、ステップＳ８にて、この実行ファイルは登録済と判定するので、依存ファイル情報管理テーブル４を更新し（ステップＳ９）、さらに、レジストリ上の前記依存ファイル情報との整合性が保たれていることを確認する（ステップＳ１０）。この時、依存ファイル情報管理テーブル４の登録内容、及びレジストリ上の登録内容には、\System\Sys1.dllを参照しているアプリケーションが存在しないことになるので、\System\Sys1.dllが実際に存在すれば、削除するか否かの回答をユーザに要求する。
【００７３】
依存ファイルを参照しないアプリケーションをインストールしたときは、図４に示す依存ファイルの位置を示すパス８は登録されずに、実行ファイルの位置を示すパス９のみが登録される。それ以外はすべて図２，３に示す処理フローと同様の処理フローで処理するものとする。
【００７４】
なお、本発明に係るアプリケーションプログラムのアンインストール管理システムの各構成要素の処理の少なくとも一部をコンピュータ制御により実行するものとし、かつ、上記処理を、図２，３のフローチャートで示した手順によりコンピュータに実行せしめるプログラムは、半導体メモリを始め、ＣＤ−ＲＯＭや磁気テープなどのコンピュータ読み取り可能な記録媒体に格納して配付してもよい。そして、少なくともマイクロコンピュータ，パーソナルコンピュータ，汎用コンピュータを範疇に含むコンピュータが、上記の記録媒体から上記プログラムを読み出して、実行するものとしてもよい。
【産業上の利用可能性】
【００７５】
本発明は、アプリケーションプログラムのインストール、アンインストールにおいて、ファイルコピーや設定作業が手動で必要な、インストーラが提供されていないアプリケーションを扱うコンピュータシステムに適用することが可能であり、アプリケーションの実行管理に多大な効果がある。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施形態に係るアプリケーションプログラムのアンインストール管理システムの全体構成を示す構成図である
【図２】インストール時に依存ファイル情報管理テーブルを更新する際の処理を示すフローチャート図である。
【図３】アンインストール時に依存ファイル情報管理テーブルを更新する際の処理を示すフローチャート図である。
【図４】依存ファイル管理情報が登録されるテーブルの構成を示し、図５、６は、このテーブルに登録される値の具体例を示している。
【図５】依存ファイル管理情報が登録されるテーブルに登録される値の具体例を示す説明図である。
【図６】依存ファイル管理情報が登録されるテーブルに登録される値の他の具体例を示す説明図である。
【符号の説明】
【００７７】
１  アプリケーション起動時実行ファイル検出部
２  依存ファイル情報抽出部
３  依存ファイル情報登録部
４  依存ファイル情報管理テーブ
５  実行ファイル削除時実行ファイル検出部
６  依存ファイル情報更新部
７  コンピュータシステム上との依存ファイル情報と同期処理部
８  依存ファイルの位置を示すパス
９  実行ファイルの位置を示すパス
【図１】
2009175847.tif 000005
【図２】
2009175847.tif 000006
【図３】
2009175847.tif 000007
【図４】
2009175847.tif 000008
【図５】
2009175847.tif 000009
【図６】
2009175847.tif 000010