(57)【要約】【課題】  複数のアプリケーションプログラムで使用する共用ファイルがある場合に、不要となった共用ファイルの確実なアンインストールを実現する。【解決手段】  共用ファイルを管理するためのテーブルを保持し、当該管理テーブル内に、共用ファイルの存在を示すための情報、共用ファイルを使用するアプリケーションの存在を示すための情報、を記録し、アプリケーションインストール時には、共用ファイルの存在情報とアプリケーション存在情報を登録し、アプリケーションアンインストール時に、アプリケーション存在情報を削除し、共用ファイルの存在情報は、当該共用ファイルに対応するアプリケーション存在情報が存在する場合は、当該存在情報を保持し、当該共用ファイルに対応するアプリケーション存在情報が存在しない場合は、当該存在情報を削除することを特徴とするアプリケーションの共用ファイル制御方法。【選択図】        図１
2005063259.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上に、存在する複数のアプリケーションプログラムと、当該アプリケーションの共用ファイルを登録、管理するための方法において、
共用ファイルを管理するためのテーブルを保持し、当該管理テーブル内に、
共用ファイルの存在を示すための情報、
共用ファイルを使用するアプリケーションの存在を示すための情報、
を記録し、
アプリケーションインストール時には、共用ファイルの存在情報とアプリケーション存在情報を登録し、
アプリケーションアンインストール時に、アプリケーション存在情報を削除し、共用ファイルの存在情報は、当該共用ファイルに対応するアプリケーション存在情報が存在する場合は、当該存在情報を保持し、
当該共用ファイルに対応するアプリケーション存在情報が存在しない場合は、当該存在情報を削除することを特徴とするアプリケーションの共用ファイル制御方法。
【請求項２】
共用ファイルの存在情報は、共用ファイルの位置を示す情報であることを特徴とする請求項１記載のアプリケーションの共用ファイル制御方法。
【請求項３】
共用ファイルを使用するアプリケーションの存在を示すための情報は、アプリケーションを代表するファイルの位置を示す情報であることを特徴とする請求項１記載のアプリケーションの共用ファイル制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアプリケーションの共用ファイル制御方法に関し、特に、複数のアプリケーションで共用するファイルが存在するときの、アプリケーションインストールとアンインストール時の共用ファイルの制御に関する。
【背景技術】
【０００２】
共用モジュールを持つ複数のアプリケーションをコンピュータにインストールする場合、共用ファイルについてのカウンタを持ち、インストールされたときは１カウントアップ、アンインストールするときは１カウントダウンし、０になったときは、コンピュータからモジュールそのものを削除する方法が知られている。
【０００３】
尚、プログラムモジュールの管理に関しては、例えば、下記特許文献１などに開示されている。
【特許文献１】特開２００２−０６３０４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、前記の方法では、インストール、アンインストールで何らかの問題が生じ、カウンタの加算減算が正しく行われなかった場合、削除してはいけないのに削除してしまったり、不要なのにモジュールが残ったりする問題が、簡単に発生するという課題があった。
【０００５】
例えば、アンインストールが途中で停止した場合、カウンタの減算が行われないことがあり、すべてのアプリケーションがアンインストールされても、共用ファイルが残ってしまうという課題がある。
【０００６】
本発明は、上述の問題点に着目して成されたものであって、共用ファイルを使用するアプリケーションを管理するテーブルを用意し、前記テーブルから、実際のアプリケーションの存在を確認した後に共用ファイルを削除するようにすることで、より確実な共用ファイル管理を実現する、アプリケーションの共用ファイル制御方法を提供するものである。
【課題を解決するための手段】
【０００７】
本発明では、前記課題を解決するため、以下（１）〜（３）の構成を備える。
【０００８】
（１）コンピュータ上に、存在する複数のアプリケーションプログラムと、当該アプリケーションの共用ファイルを登録、管理するための方法において、
共用ファイルを管理するためのテーブルを保持し、当該管理テーブル内に、
共用ファイルの存在を示すための情報、
共用ファイルを使用するアプリケーションの存在を示すための情報、
を記録し、
アプリケーションインストール時には、共用ファイルの存在情報とアプリケーション存在情報を登録し、
アプリケーションアンインストール時に、アプリケーション存在情報を削除し、共用ファイルの存在情報は、当該共用ファイルに対応するアプリケーション存在情報が存在する場合は、当該存在情報を保持し、
当該共用ファイルに対応するアプリケーション存在情報が存在しない場合は、当該存在情報を削除することを特徴とするアプリケーションの共用ファイル制御方法。
【０００９】
（２）共用ファイルの存在情報は、共用ファイルの位置を示す情報であることを特徴とする上記（１）記載のアプリケーションの共用ファイル制御方法。
【００１０】
（３）共用ファイルを使用するアプリケーションの存在を示すための情報は、アプリケーションを代表するファイルの位置を示す情報であることを特徴とする上記（１）記載のアプリケーションの共用ファイル制御方法。
【発明の効果】
【００１１】
以上のように、共用ファイルを使用するアプリケーションを管理するテーブルを用意し、前記テーブルから、実際のアプリケーションの存在を確認した後に共用ファイルを削除するようにすることで、より確実な共用ファイル管理を実現し、不要なファイルを残さないようにすることができる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明を実施するための最良の形態を、実施例に基づいて説明する。
【実施例】
【００１３】
以下、図面を用いて本発明の実施例について説明する。
【００１４】
図２は、本発明の一実施例のＰＣの構成を示すブロック図である。ＰＣ３００の詳細部は、表示装置３０１と、入力装置３０２と、中央処理装置３０３と、外部記憶装置３０４と、メモリ３０５から構成されている。
【００１５】
図１は本発明における、外部記憶装置３０４内の、複数アプリケーションと共用ファイルの関係を示すブロック図である。
【００１６】
外部記憶装置３０４内は、ディレクトリという概念で区分けされている。図１においては、ディレクトリＡ５０１、ディレクトリＢ５０２、ディレクトリＣ５０３と３つのディレクトリに別れている。
【００１７】
各々のディレクトリの外部記憶装置３０４内での位置は、ディレクトリ名という表記で示すことができる。図１においては、ディレクトリＡ５０１は￥Ｐｒｏｇｒａｍ￥Ａｐｐ１、ディレクトリＢ５０２は￥Ｐｒｏｇｒａｍ￥Ａｐｐ２、ディレクトリＣ５０３は￥Ｓｙｓｔｅｍというディレクトリ名で表わされる。
【００１８】
１００１はＡｐｐａという名前，１０１１はＡｐｐｂという名前，１０２１はＡｐｐｃという名前のそれぞれ別個のアプリケーション、１００２，１００３，１００４，１０１２，１０１３，１０１４，１０２２，１０２３，１０２４はそれぞれのアプリケーションを構成するモジュールを示す。
【００１９】
１０３２，１０３３は各アプリケーション１００１，１０１１，１０２１によって共用されるモジュールである。モジュール１０３２はアプリケーション１００１と１０１１によって、モジュール１０３３は、アプリケーション１００１，１０１１，１０２１によって共用されている。
【００２０】
これらモジュールには、各々ファイル名がついており、たとえば、モジュール１００２はＰｒｏａ．ｅｘｅというファイル名である。各モジュールの位置は、ディレクトリ名とファイル名を組み合わせた、パス名という表記で表わすことができる。たとえば、アプリケーションＡｐｐａ１００１のモジュールであるＰｒｏａ．ｅｘｅ１００２のパス名は、￥Ｐｒｏｇｒａｍ￥Ａｐｐ１￥Ａｐｐａ．ｅｘｅ、アプリケーションＡｐｐｃ１０２１のモジュールであるＰｒｏｃ２．ｄｌｌ１０２４のパス名は、￥Ｐｒｏｇｒａｍ￥Ａｐｐ２￥Ｐｒｏｃ２．ｄｌｌである。
【００２１】
図３は、図１の状態のＰＣ３００における、アプリケーションの共用ファイル管理テーブルであり、外部記憶装置３０４内に保存されている。一列目が共用モジュールのパス名であり、一列目に共用モジュールのパス名が登録されていた場合は、次行から、２列目に当該共用モジュールを使用するアプリケーションを代表するファイルのパス名が登録される。アプリケーションファイルのパスが登録されている行の１列目は空白である。図３の例では、共用ファイル￥Ｓｙｓｔｅｍ￥Ｓｙｓ１．ｄｌｌを使用するアプリケーションの代表ファイルが、￥Ｐｒｏｇｒａｍ￥Ａｐｐ１￥Ｐｒｏａ．ｅｘｅ、￥Ｐｒｏｇｒａｍ￥Ａｐｐ１￥Ｐｒｏｂ．ｅｘｅ、￥Ｐｒｏｇｒａｍ￥Ａｐｐ２￥Ｐｒｏｃ．ｅｘｅの３つ。また、共用ファイル￥Ｓｙｓｔｅｍ￥Ｓｙｓ２．ｄｌｌを使用するアプリケーションの代表ファイルが、￥Ｐｒｏｇｒａｍ￥Ａｐｐ１￥Ｐｒｏａ．ｅｘｅ、￥Ｐｒｏｇｒａｍ￥Ａｐｐ２￥Ｐｒｏｃ．ｅｘｅの２つであることを示している。
【００２２】
以下、本発明に係るインストール動作について説明する。
【００２３】
図４は、外部記憶装置３０４に、アプリケーションが１つもインストールされていない状態である。この時の共用ファイル管理テーブル５０４は空である。
【００２４】
この状態に対し、アプリケーションＡｐｐａ１００１をインストールする場合について、図５のフローチャートにしたがって説明する。
【００２５】
まず、ディレクトリＡ５０１へ、共用ではないファイルＰｒｏａ．ｅｘｅ１００２、ｐｒｏａ１．ｄｌｌ１００３、Ｐｒｏａ２．ｄｌｌ１００４を書き込む（Ｓ５０１）。
【００２６】
次に、アプリケーションＡｐｐａ１００１がインストールする共用ファイルがあるかどうか確認する（Ｓ５０２）。ない場合はインストール終了である。
【００２７】
共用ファイルがある場合、まず、最初の共用ファイルの実体が、外部記憶装置３０４に存在するかどうか確認する（Ｓ５０３）。Ａｐｐａ１００１の場合であれば、Ｓｙｓ１．ｄｌｌ１０３２が、ディレクトリＣ５０３に存在するかどうかを確認する。
【００２８】
今回は、Ｓｙｓ１．ｄｌｌは存在しないので、まず、Ｓｙｓ１．ｄｌｌをディレクトリＣ５０３に書き込む（Ｓ５２１）。
【００２９】
次に、共用ファイル管理テーブル５０４で最終行を探し、次の行に一行追加して、１列目にＳｙｓ１．ｄｌｌのパスを書き込む（Ｓ５２２）。
【００３０】
さらに、次行２列目に、インストールするアプリケーションの代表ファイルのパスを書き込む。この場合、￥Ｐｒｏｇｒａｍ￥Ａｐｐ１￥Ｐｒｏａ．ｅｘｅである。
【００３１】
この段階での、共用ファイル管理テーブル５０４の状態は、図６である。
【００３２】
１つの共用ファイルについての処理が終ったら、さらに別の共用ファイルをインストールするかどうか確認し、まだあるようなら、同様の処理を行う。Ａｐｐａ１００１の場合は、共用ファイルＳｙｓ２．ｄｌｌ１０３３があるので、ｓｙｓ２．ｄｌｌ１０３３についてＳ５０３からＳ５２３の処理を繰り返す。
【００３３】
終了後の共用ファイル管理テーブル５０４の状態は図７であり、外部記憶装置３０４の状態は、図８のようになる。
【００３４】
次に、図８の状態に対し、さらにＡｐｐｃ１０２１をインストールする場合について説明する。
【００３５】
まず、ディレクトリＢ５０２へ、共用ではないファイルＰｒｏｂ．ｅｘｅ１０１２、ｐｒｏｂ１．ｄｌｌ１０１３、Ｐｒｏｂ２．ｄｌｌ１０１４を書き込む（Ｓ５０１）。
【００３６】
次に、Ａｐｐｃ１０２１がインストールする共用ファイルがあるかどうか確認する（Ｓ５０２）。この場合共用ファイルがあるので、次へ進む。
【００３７】
最初の共用ファイルｓｙｓ１．ｄｌｌ１０３２の実体が、外部記憶装置３０４に存在するかどうか確認する（Ｓ５０３）。すでに存在するので、共用ファイル管理テーブル５０４内で、￥Ｓｙｓｔｅｍ￥ｓｙｓ１．ｄｌｌが１列目に登録されている部分を探す（Ｓ５０４）。
【００３８】
見つかったら、￥Ｓｙｓｔｅｍ￥ｓｙｓ１．ｄｌｌの登録以降で、１列目に登録情報がある行を探し（Ｓ５０５）、一行前に空白行を挿入する（Ｓ５０６）。これが図９の状態である。
【００３９】
挿入した行の２列目に、アプリケーション代表ファイルのバス、￥Ｐｒｏｇｒａｍ￥Ａｐｐ３￥Ｐｒｏｃ．ｅｘｅを書き込む（Ｓ５０７）。これが図１０の状態である。
【００４０】
Ｓ５０３からＳ５０７の手順をｓｙｓ２．ｄｌｌ１０３３についても繰り返すと、最終的に、共用ファイル管理テーブル５０４は図１１のようになり、外部記憶装置３０４内のアプリケーションの状態は、図１２のようになる。
【００４１】
次に、本発明に係る、アンインストール動作について、図１２の状態から、Ａｐｐａ１００１をアンインストールする場合について、図１３のフローチャートを用いて説明する。
【００４２】
まず、ディレクトリＡ５０１から、ファイルＰｒｏａ．ｅｘｅ１００２、ｐｒｏａ１．ｄｌｌ１００３、Ｐｒｏａ２．ｄｌｌ１００４を削除する（Ｓ１４０１）。
【００４３】
次に、アンインストール対象の共用ファイルがあるかどうか確認する（Ｓ１４０２）。Ａｐｐａ１００１の場合、ｓｙｓ１．ｄｌｌ１０３２、ｓｙｓ２．ｄｌｌ１０３３があるので、Ｓ１４０３へ進む。
【００４４】
次に、共用ファイル管理テーブル５０４で、￥Ｓｙｓｔｅｍ￥Ｓｙｓ１．ｄｌｌが１列目に登録されている行を探す（Ｓ１４０３）。
【００４５】
行が見つかったら、￥Ｓｙｓｔｅｍ￥ｓｙｓ１．ｄｌｌの登録以降で、１列目に登録情報がある行を探す（Ｓ１４０４）。
【００４６】
そして、Ｓ１４０４とＳ１４０５の行の間で、２列目にＡｐｐａの代表ファイル￥Ｐｒｏｇｒａｍ￥Ａｐｐ１￥Ｐｒｏａ．ｅｘｅが登録されている行を探す（Ｓ１４０５）。
【００４７】
見つかったら、当該代表パスのファイルの実体があるかどうか確認し（Ｓ１４０６、Ｓ１４０７）、実体がなければ、当該行を削除する（Ｓ１４０８）。
【００４８】
さらに、￥Ｓｙｓｔｅｍ￥ｓｙｓ１．ｄｌｌに関する、他の代表パス登録すべてについてファイルの実体があるかどうか確認する（Ｓ１４０９，Ｓ１４１０，Ｓ１４１１）。当実施例の場合、￥Ｐｒｏｇｒａｍ￥Ａｐｐ３￥Ｐｒｏｃ．ｅｘｅの登録が存在するが、これはファイルの実体が存在するので、Ｓ１４０９では実体ありになり、特に何もせず、Ｓ１４１１へ進む。
【００４９】
Ｓ１４１１では当該共用ファイルに対応するすべてのアプリケーション代表パスをチェックしたかを確認する。￥Ｓｙｓｔｅｍ￥ｓｙｓ１．ｄｌｌに関するアプリケーションパスの登録は￥Ｐｒｏｇｒａｍ￥Ａｐｐ３￥Ｐｒｏｃ．ｅｘｅ以外にないので、Ｓ１４１２へ進む。
【００５０】
Ｓ１４１２では、共用ファイルの対応するアプリケーションパスの登録が残っているかどうか確認する。￥Ｐｒｏｇｒａｍ￥Ａｐｐ３￥Ｐｒｏｃ．ｅｘｅの登録があるので、ｓｙｓ１．ｄｌｌ１０３２に関する操作を終了し、Ｓ１４０２へ戻る。
【００５１】
続けて、ｓｙｓ２．ｄｌｌ１０３３についての確認があるので（Ｓ１４０２）、Ｓ１４０３からＳ１４１２までの処理を同様に行う。
【００５２】
Ｓ１４０２へ戻ると、すべての共用ファイルに関する確認が終了したので、アンインストール処理は終了になる。
【００５３】
この結果、共用ファイル管理テーブル５０４は、図１５の状態になり、外部記憶装置３０４内のアプリケーションの状態は、図１４のようになる。
【００５４】
さて、Ａｐｐａ１００１とＡｐｐｃ１０２１が、外部記憶装置３０４に存在する状態から、Ａｐｐａ１００１をアンインストールしている最中に、たとえば、フローチャート１４０１のステップが終了した段階で、何らかの異常で停止した状況を考えてみる。
【００５５】
この状態では、外部記憶装置３０４は図１５の状態だが、共用ファイル管理テーブル５０４は図１２の状態である。
【００５６】
ここから、Ａｐｐｃ１０２１をアンインストールする場合、共用ファイルのアンインストール動作において、ｓｙｓ１．ｄｌｌ１０３２についてはＳ１４０８までは、前記動作と同様に進む。この段階で、共用ファイル管理テーブル５０４は、図１６のようになっている。
【００５７】
Ｓ１４０９で、￥Ｐｒｏｇｒａｍ￥Ａｐｐ１￥Ｐｒｏａ．ｅｘｅの実体を探しに行くが、実体が存在しないので、Ｓ１４１０で、￥Ｐｒｏｇｒａｍ￥Ａｐｐ１￥Ｐｒｏａ．ｅｘｅが登録されている行が削除される（図１７）。
【００５８】
この結果、￥Ｓｙｓｔｅｍ￥ｓｙｓ１．ｄｌｌに関するアプリケーションパス登録がなくなるため、Ｓ１４１２でＮｏの判断になり、Ｓ１４１３でｓｙｓ１．ｄｌｌ１０３２が削除され、Ｓ１４１４で共用ファイル管理テーブル５０４からも削除される（図１８）。
【００５９】
ｓｙｓ２．ｄｌｌ１０３３についても同様に処理されるため、最終的に共用ファイル管理テーブル５０４は空になる。
【００６０】
この結果、Ａｐｐａ１００１のアンインストールが完全に行われていなかったにも関わらず、Ａｐｐｃ１０２１のアンインストールにおいて、不要な共用ファイルが残ることもなく、完全にアンインストールすることができる。
【００６１】
図１９は、本発明の、他の実施例におけるアンインストール動作を示すフローチャートである。
【００６２】
この実施例は、アンインストール時に共用ファイルがあった場合、当該共用ファイルに関わるアプリケーションパスのファイル確認を、最初からすべて無条件に確認する。この方法では、アンインストール対象のアプリケーションパスを特別に探す必要がないため、処理が簡便になる。
【図面の簡単な説明】
【００６３】
【図１】複数アプリケーションと共用ファイルの関係を示すブロック図
【図２】ＰＣの構成を示すブロック図
【図３】アプリケーションの共用ファイル管理テーブルを示す図
【図４】アプリケーションが一つもインストールされていない外部記憶装置３０４の状態を示すブロック図
【図５】アプリケーションのインストール手順を示すフローチャート
【図６】Ａｐｐａインストール時の管理テーブル５０４の変化を示す図
【図７】Ａｐｐａインストール時の管理テーブル５０４の変化を示す図
【図８】Ａｐｐａインストール後の外部記憶装置３０４の状態を示すブロック図
【図９】Ａｐｐｃインストール時の管理テーブル５０４の変化を示す図
【図１０】Ａｐｐｃインストール時の管理テーブル５０４の変化を示す図
【図１１】Ａｐｐｃインストール時の管理テーブル５０４の変化を示す図
【図１２】Ａｐｐｃインストール後の外部記憶装置３０４の状態を示すブロック図
【図１３】アプリケーションのアンインストール手順を示すフローチャート
【図１４】Ａｐｐａアンインストール後の外部記憶装置３０４の状態を示すブロック図
【図１５】Ａｐｐａアンインストール後の管理テーブル５０４の状態を示す図
【図１６】完全にアンインストールされていないアプリケーションがあった場合の管理テーブル５０４の変化を示す図
【図１７】完全にアンインストールされていないアプリケーションがあった場合の管理テーブル５０４の変化を示す図
【図１８】完全にアンインストールされていないアプリケーションがあった場合の管理テーブル５０４の変化を示す図
【図１９】他の実施例のアプリケーションアンインストール手順を示すフローチャート
【符号の説明】
【００６４】
３００  ＰＣ
３０１  表示装置
３０２  入力装置
３０３  中央処理装置
３０５  メモリ
３０４  外部記憶装置
５０１  ディレクトリＡ
５０２  ディレクトリＢ
５０３  ディレクトリＣ
５０４  共用ファイル管理テーブル
１００１  アプリケーションＡｐｐａ
１０１１  アプリケーションＡｐｐｂ
１０２１  アプリケーションＡｐｐｃ
１０３２  共用ファイルｓｙｓ１．ｄｌｌ
１０３３  共用ファイルｓｙｓ２．ｄｌｌ
【図１】
2005063259.tif 000003
【図２】
2005063259.tif 000004
【図３】
2005063259.tif 000005
【図４】
2005063259.tif 000006
【図５】
2005063259.tif 000007
【図６】
2005063259.tif 000008
【図７】
2005063259.tif 000009
【図８】
2005063259.tif 000010
【図９】
2005063259.tif 000011
【図１０】
2005063259.tif 000012
【図１１】
2005063259.tif 000013
【図１２】
2005063259.tif 000014
【図１３】
2005063259.tif 000015
【図１４】
2005063259.tif 000016
【図１５】
2005063259.tif 000017
【図１６】
2005063259.tif 000018
【図１７】
2005063259.tif 000019
【図１８】
2005063259.tif 000020
【図１９】
2005063259.tif 000021