(57)【特許請求の範囲】
【請求項１】
ショートカットから起動可能なアプリケーションプログラムを記憶する記憶部を有する情報処理装置のコンピュータが実行可能な情報処理プログラムであって、
前記ショートカットにおける起動情報を前記記憶部に記憶させる起動情報記憶手段と、
前記アプリケーションプログラムが起動される毎に、当該アプリケーションプログラムを起動したショートカットに対し、前記記憶部に記憶されている前記起動情報を更新する更新手段と、
ショートカットが削除されたかを判断するショートカット削除判断手段と、
前記ショートカット削除判断手段によりショートカットが削除されたと判断された場合、前記アプリケーションプログラムを起動可能な他のショートカットがあるか否かを判断するショートカット判断手段と、
前記ショートカット判断手段により前記他のショートカットがあると判断された場合、削除されたショートカットから起動されたアプリケーションプログラムの他のショートカットに対し前記記憶部に記憶されている前記起動情報に基づいて、前記アプリケーションプログラムを前記記憶部から削除するか否かを判断するアプリケーション削除判断手段と、
前記アプリケーション削除判断手段により前記アプリケーションプログラムを前記記憶部から削除すると判断された場合、前記他のショートカットの削除を実行し、前記記憶部から前記アプリケーションプログラムの削除、又は、アプリケーションプログラムを削除可能な削除プログラムに対する前記アプリケーションプログラムの削除指示の出力を実行するアプリケーション削除手段として、
前記コンピュータを機能させることを特徴とする、情報処理プログラム。
【請求項２】
前記起動情報は、対応するショートカットが前記アプリケーションプログラムを起動させた起動回数を示す情報を含み、
前記アプリケーション削除判断手段は、前記記憶部に記憶される前記起動情報に基づいて、前記他のショートカット各々に対応する前記起動回数が所定回数より少ない場合に、前記アプリケーションプログラムを前記記憶部から削除すると判断することを特徴とする、請求項１記載の情報処理プログラム。
【請求項３】
前記ショートカット判断手段により前記他のショートカットがあると判断された場合、当該他のショートカットに対し前記記憶部に記憶されている前記起動回数が前記所定回数以下の第２所定回数より少ない前記他のショートカットがあれば、当該他のショートカットを削除するショートカット削除手段として、
前記コンピュータを機能させることを特徴とする、請求項２記載の情報処理プログラム。
【請求項４】
前記起動情報は、対応するショートカットが前記アプリケーションプログラムを最後に起動させた時間を示す情報を含み、
前記アプリケーション削除判断手段は、前記記憶部に記憶される前記起動情報に基づいて、前記他のショートカット各々に対応する最後に前記アプリケーションプログラムを起動させた時間からの経過時間が所定時間以上経過している場合に、前記アプリケーションプログラムを前記記憶部から削除すると判断することを特徴とする、請求項１から３のいずれかに記載の情報処理プログラム。
【請求項５】
前記アプリケーション削除判断手段は、前記ショートカット判断手段により前記他のショートカットがないと判断されたことに基づき、前記アプリケーションプログラムを前記記憶部から削除すると判断することを特徴とする、請求項１から４のいずれかに記載の情報処理プログラム。
【請求項６】
前記ショートカット判断手段により前記他のショートカットがないと判断された場合、前記情報処理装置内を検索して、前記他のショートカットがあるか否かを判断する第２ショートカット判断手段として、
前記コンピュータを機能させ、
前記アプリケーション削除判断手段は、前記第２ショートカット判断手段により前記他のショートカットがないと判断された場合に、前記アプリケーションプログラムを前記記憶部から削除すると判断することを特徴とする、請求項５記載の情報処理プログラム。
【請求項７】
前記第２ショートカット判断手段は、前記記憶部に前記起動情報が記憶されるショートカットを対象として、前記他のショートカットがあるか否かを判断し、
前記起動情報記憶手段は、前記第２ショートカット判断手段により前記他のショートカットがあると判断された場合に、当該他のショートカットの起動情報と、当該他のショートカットに対するファイル情報に含まれる当該他のショートカットが格納されるフォルダを示すフォルダ情報とを対応付けて前記記憶部に記憶させることを特徴とする、請求項６記載の情報処理プログラム。
【請求項８】
前記第２ショートカット判断手段により前記他のショートカットがあると判断された場合に、当該他のショートカットに対するファイル情報を変更するファイル情報変更手段として、
前記コンピュータを機能させることを特徴とする、請求項７記載の情報処理プログラム。
【請求項９】
前記起動情報記憶手段は、前記起動情報と、当該起動情報に対応するショートカットが格納されるフォルダを示すフォルダ情報とを対応付けて前記記憶部に記憶させ、
ショートカットから前記アプリケーションプログラムが起動された場合、当該ショートカットに対するファイル情報に基づいて、前記フォルダ情報を取得するフォルダ情報取得手段として、
前記コンピュータを機能させ、
前記ショートカット削除判断手段は、前記記憶部に記憶されているフォルダ情報が示すフォルダ内を所定時間毎に監視し、当該フォルダ情報に対応するショートカットが削除されたかを判断することを特徴とする、請求項１から８のいずれかに記載の情報処理プログラム。
【請求項１０】
前記起動情報記憶手段は、前記フォルダ情報取得手段により取得されたフォルダ情報が前記記憶部に記憶されていない場合、当該ショートカットの起動情報と、前記フォルダ情報取得手段により取得されたフォルダ情報とを対応付けて前記記憶部に記憶させることを特徴とする、請求項９記載の情報処理プログラム。
【請求項１１】
前記フォルダ情報取得手段により取得されたフォルダ情報が前記記憶部に記憶されていない場合に、当該フォルダ情報が示すフォルダ内を検索して、前記アプリケーションプログラムを起動したショートカットがあるか否かを判断する第３ショートカット判断手段と、
前記第３ショートカット判断手段により前記ショートカットがないと判断された場合に、前記情報処理装置内を検索して、前記ショートカットがあるか否かを判断する第４ショートカット判断手段として、
前記コンピュータを機能させることを特徴とする、請求項１０に記載の情報処理プログラム。
【請求項１２】
前記第３ショートカット判断手段又は前記第４ショートカット判断手段により前記ショートカットがあると判断された場合、当該ショートカットに対するファイル情報を変更する第２ファイル情報変更手段として、
前記コンピュータを機能させることを特徴とする、請求項１１記載の情報処理プログラム。
【請求項１３】
前記アプリケーションプログラムは、前記情報処理装置と通信可能な外部装置に設定されたショートカットから起動可能であり、
前記起動情報記憶手段は、前記起動情報と、当該起動情報に対応するショートカットが格納されるフォルダを示すフォルダ情報と、当該起動情報に対応するショートカットが設定された装置を特定する装置情報とを対応付けて前記記憶部に記憶し、
前記ショートカット削除判断手段は、前記記憶部に記憶されている装置情報により特定される装置について、当該装置情報に対応付けられているフォルダ情報が示すフォルダ内を所定時間毎に監視し、当該フォルダ情報に対応するショートカットが削除されたかを判断することを特徴とする、請求項１から１２のいずれかに記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、クライアントコンピュータにおいてショートカットの削除が検知された場合に、予め設定された削除同期設定が、バックアップサーバにおいて前記削除されたショートカットにリンクするバックアップファイルを削除する設定であれば、対応するバックアップファイルを削除するプログラムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１７６２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載されるプログラムでは、削除同期設定を予め設定する必要があり、利便性が悪い。また、１のファイルに複数のショートカットをリンクさせた場合、ショートカット毎に削除同期設定を行ったことにより、削除同期設定が異なる事態が生じ、それによって不都合が生じる虞がある。例えば、複数のショートカットのうちの１つのショートカットに対し、そのショートカットの削除に伴いファイルを削除するという削除同期設定を、ユーザが誤って設定した場合、このショートカットが削除されると、ユーザが本来意図しないファイルの削除が実行される。このような不都合を抑制するためには、各ショートカットに対する削除同期設定を設定する際に、同一のファイルにリンクされた他のショートカットの削除同期設定を考慮する必要があるので、利便性はさらに悪くなる。
【０００５】
なお、特許文献１に記載されるプログラムは、サーバに記憶されたアプリケーションにリンクされたショートカットにも適用可能である、かかる場合においても、上述したバックアップファイルにリンクされたショートカットと同様の問題が生じ得る。例えば、ショートカットの削除に応じて、当該ショートカットのリンク先であるアプリケーションをアンインストールする場合においても、削除同期設定をショートカット毎に予め設定する操作は、ユーザにとって煩わしいものである。
【０００６】
本発明は、上述した事情を鑑みてなされたものであり、アプリケーションプログラムの削除（アンインストール）における利便性が向上された情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
この目的を達成するために、本発明の第１態様の情報処理プログラムは、ショートカットから起動可能なアプリケーションプログラムを記憶する記憶部を有する情報処理装置のコンピュータが実行可能なプログラムであって、前記ショートカットにおける起動情報を前記記憶部に記憶させる起動情報記憶手段と、前記アプリケーションプログラムが起動される毎に、当該アプリケーションプログラムを起動したショートカットに対し、前記記憶部に記憶されている前記起動情報を更新する更新手段と、ショートカットが削除されたかを判断するショートカット削除判断手段と、前記ショートカット削除判断手段によりショートカットが削除されたと判断された場合、前記アプリケーションプログラムを起動可能な他のショートカットがあるか否かを判断するショートカット判断手段と、前記ショートカット判断手段により前記他のショートカットがあると判断された場合、削除されたショートカットから起動されたアプリケーションプログラムの他のショートカットに対し前記記憶部に記憶されている前記起動情報に基づいて、前記アプリケーションプログラムを前記記憶部から削除するか否かを判断するアプリケーション削除判断手段と、前記アプリケーション削除判断手段により前記アプリケーションプログラムを前記記憶部から削除すると判断された場合、前記他のショートカットの削除を実行し、前記記憶部から前記アプリケーションプログラムの削除、又は、アプリケーションプログラムを削除可能な削除プログラムに対する前記アプリケーションプログラムの削除指示の出力を実行するアプリケーション削除手段として、前記コンピュータを機能させる。
【０００８】
本発明の第２態様の情報処理プログラムは、ショートカットから起動可能なアプリケーションプログラムを記憶する記憶部を有する情報処理装置のコンピュータが実行可能なプログラムであって、前記アプリケーションプログラムにおける起動情報を前記記憶部に記憶させる起動情報記憶手段と、前記アプリケーションプログラムが起動される毎に、前記記憶部に記憶されている前記起動情報を更新する更新手段と、ショートカットが削除されたかを判断するショートカット削除判断手段と、前記ショートカット削除判断手段によりショートカットが削除されたと判断された場合、削除されたショートカットから起動されたアプリケーションプログラムに対し前記記憶部に記憶されている前記起動情報に基づいて、前記アプリケーションプログラムを前記記憶部から削除するか否かを判断するアプリケーション削除判断手段と、前記アプリケーション削除判断手段により前記アプリケーションプログラムを前記記憶部から削除すると判断された場合、前記記憶部から前記アプリケーションプログラムの削除、又は、アプリケーションプログラムを削除可能な削除プログラムに対する前記アプリケーションプログラムの削除指示の出力を実行するアプリケーション削除手段として、前記コンピュータを機能させる。
【０００９】
なお、本発明は、情報処理装置、情報処理装置を制御する制御装置、情報処理システム、情報処理方法、情報処理プログラムを記録する記録媒体等の種々の態様で構成することができる。
【発明の効果】
【００１０】
請求項１記載の情報処理プログラムによれば、ショートカット削除判断手段が、ショートカットが削除されたと判断し、かつ、ショートカット判断手段が、他のショートカットがあると判断した場合、アプリケーション削除判断手段が、当該他のショートカットに対する起動情報に基づいて、当該アプリケーションプログラムを削除するか否かの判断を行うように、情報処理装置を機能させる。よって、他のショートカット、すなわち、削除されたショートカット以外のショートカットを考慮してアプリケーションプログラムを削除するか否かが判断されるので、１のアプリケーションプログラムに対し複数のショートカットがある場合でも、意図しないアプリケーションプログラムの削除を防止できる。また、他のショートカットの起動情報に基づいて、アプリケーションプログラムを削除するか否かが判断されるので、設定を予め行う必要がない。従って、アプリケーションプログラムの削除における利便性を向上できる。
【００１１】
請求項２記載の情報処理プログラムによれば、請求項１が奏する効果に加え、次の効果を奏する。他のショートカット各々に対応する起動回数が所定回数より少ない場合に、アプリケーションプログラムが削除されるように、情報処理装置を機能させる。所定回数より起動回数が少ないショートカットは今後もアプリケーションプログラムを起動させる可能性は低い。よって、所望でないアプリケーションプログラムの削除を防止できる。
【００１２】
請求項３記載の情報処理プログラムによれば、請求項２が奏する効果に加え、次の効果を奏する。起動回数が第２所定回数より少ない他のショートカットがあれば、当該他のショートカットを削除するように、情報処理装置を機能させる。よって、使用頻度の低いショートカットを、ユーザがショートカットを削除したタイミングで随時削除できるので、管理すべきショートカットの数を随時減らすことができ、管理を容易化できる。
【００１３】
請求項４記載の情報処理プログラムによれば、請求項１から３のいずれかが奏する効果に加え、次の効果を奏する。他のショートカット各々に対応する最後にアプリケーションプログラムを起動させた時間からの経過時間が所定時間以上経過している場合に、アプリケーションプログラムが削除されるように、情報処理装置を機能させる。アプリケーションプログラムを最近起動させていないショートカットは今後もアプリケーションプログラムを起動させる可能性は低いので、所望でないアプリケーションプログラムの削除を防止できる。
【００１４】
請求項５記載の情報処理プログラムによれば、請求項１から４のいずれかが奏する効果に加え、他のショートカットがないと判断されたことに基づき、アプリケーションプログラムを削除すると判断するように、情報処理装置を機能させるので、アプリケーションプログラムを容易に削除できる。
【００１５】
請求項６記載の情報処理プログラムによれば、請求項５が奏する効果に加え、次の効果を奏する。ショートカット判断手段が他のショートカットがないと判断した場合に、第２ショートカット判断手段が情報処理装置内を検索して他のショートカットの有無を判断するように、情報処理装置を機能させる。よって、アプリケーションプログラムを削除するか否かの判断をより高精度に行なうことができるので、意図しないアプリケーションプログラムの削除を防止できる。
【００１６】
請求項７記載の情報処理プログラムによれば、請求項６が奏する効果に加え、次の効果を奏する。第２ショートカット判断手段により他のショートカットがあると判断された場合、当該他のショートカットの起動情報と、当該他のショートカットが格納されるフォルダを示すフォルダ情報とが、起動情報記憶手段により互いに対応付けられて記憶されるので、その後は情報処理装置内を検索する必要がなく、処理負荷の抑制に貢献する。
【００１７】
請求項８記載の情報処理プログラムによれば、請求項７が奏する効果に加え、第２ショートカット判断手段が他のショートカットがあると判断した場合、ファイル情報変更手段が当該他のショートカットに対するファイル情報を変更するように、情報処理装置を機能させるので、管理に適したファイル情報に変更することが可能であり、ショートカットから起動可能なアプリケーションプログラムの削除を行うための管理を容易化できる。
【００１８】
請求項９記載の情報処理プログラムによれば、請求項１から８のいずれかが奏する効果に加え、次の効果を奏する。ショートカット判断手段が、記憶部に記憶されているフォルダ情報が示すフォルダ内を所定時間毎に監視し、当該フォルダ情報に対応するショートカットが削除されたかを判断するように、情報処理装置を機能させるので、ショートカットが削除されたか否かの判断を、情報処理装置内を検索することなく行うことができ、処理負荷を抑制できる。
【００１９】
請求項１０記載の情報処理プログラムによれば、請求項９が奏する効果に加え、次の効果を奏する。フォルダ情報取得手段が取得したフォルダ情報が記憶部に記憶されていない場合には、当該ショートカットの起動情報と、取得されたフォルダ情報とが対応付けて記憶するように、情報処理装置を機能させるので、その後は当該ショートカットの状態を容易に監視できる。
【００２０】
請求項１１記載の情報処理プログラムによれば、請求項１０が奏する効果に加え、次の効果を奏する。フォルダ情報取得手段が取得したフォルダ情報が記憶部に記憶されていない場合には、第４ショートカット判断手段が情報処理装置内を検索する前に、第３ショートカット判断手段が、フォルダ情報取得手段により取得されたフォルダ情報が示すフォルダ内を検索して、アプリケーションプログラムを起動したショートカットがあるか否かを判断するように、情報処理装置を機能させる。よって、アプリケーションプログラムを起動したショートカットを特定するための検索範囲を必要最小限に止めることができ、処理負荷の抑制に貢献する。
【００２１】
請求項１２記載の情報処理プログラムによれば、請求項１１が奏する効果に加え、次の効果を奏する。第３又は第４ショートカット判断手段が、ショートカットがあると判断した場合には、第２ファイル情報変更手段が当該ショートカットに対するファイル情報が変更するように、情報処理装置を機能させる。よって、管理に適したファイル情報に変更することが可能であり、ショートカットから起動可能なアプリケーションプログラムの削除を行うための管理を容易化できる。
【００２２】
請求項１３記載の情報処理プログラムによれば、請求項１から１４のいずれかが奏する効果に加え、次の効果を奏する。起動情報及びフォルダ情報に加えて、起動情報に対応するショートカットが設定された装置を特定する装置情報が記憶部に記憶されるように、情報処理装置を機能させるので、当該情報処理装置は、記憶部の内容に基づいて、アプリケーションプログラムに対応する各ショートカットを管理できる。よって、情報処理装置と通信可能な外部装置のショートカットが、情報処理装置に記憶されているアプリケーションプログラムを起動できる場合であっても、アプリケーションプログラムの削除における利便性を向上させることができる。
【００２３】
請求項１４記載の情報処理プログラムによれば、ショートカット削除判断手段が、ショートカットが削除されたと判断した場合、アプリケーション削除判断手段が、削除されたショートカットから起動されたアプリケーションプログラムに対する起動情報に基づいて、当該アプリケーションプログラムを削除するか否かを判断するように、情報処理装置を機能させる。よって、上述した請求項１の情報処理プログラムと同様、アプリケーションプログラムの削除における利便性を向上させることができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１実施形態の構成を示すブロック図である。
【図２】（ａ）及び（ｂ）は、それぞれ、ショートカットの構成の一例、及びショートカットのプロパティ画面の一例を示す模式図である。
【図３】監視対象テーブルの記憶内容の一例を示す模式図である。
【図４】起動時監視処理を示すフローチャートである。
【図５】（ａ）及び（ｂ）は、それぞれ、定期監視処理及び他ショートカット状態確認処理を示すフローチャートである。
【図６】本発明の第２実施形態の構成を示すブロック図である。
【図７】第２実施形態の監視対象テーブルの記憶内容の一例を示す模式図である。
【発明を実施するための形態】
【００２５】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。まず、図１〜図５を参照して、本発明の第１実施形態を説明する。図１は、本発明の情報処理プログラムの一実施形態である情報処理プログラム１３ｃがインストールされたパーソナルコンピュータ（以下「ＰＣ」と称す）１の構成を示すブロック図である。ＰＣ１は、情報処理プログラム１３ｃに従う処理をＣＰＵ１０が実行することにより、ユーザがアプリケーションプログラム１３ｂを起動可能なショートカット１３ｅを削除した場合に、所定の条件を満たせば、アプリケーションプログラム１３ｂをアンインストール（削除）することができる。かかるアンインストールは、ユーザによる設定が不要であるので、アプリケーションプログラムの削除における利便性を向上させることができる。なお、以下の説明では、「ショートカット１３ｅの削除」は、ショートカット１３ｅを所謂「ゴミ箱」に移動させることを指すものとする。
【００２６】
ＰＣ１には、ＣＰＵ１０と、ＲＯＭ１１と、ＲＡＭ１２と、ハードディスクドライブ（以下「ＨＤＤ」と称す）１３と、キーボードやマウスなどの入力装置１４と、ＬＣＤ１５と、ＰＣ１を図示しないネットワークなどに接続するためのインターフェイスであるネットワークインターフェイス（ネットワーク＿Ｉ／Ｆ）１６とが設けられている。これらの各部は、バスライン１７を介して互いに接続されている。
【００２７】
ＣＰＵ１０は、ＲＯＭ１１やＨＤＤ１３に記憶される固定値やプログラム、ＲＡＭ１２に記憶されているデータに従って、ＰＣ１が有している各部の制御を行う。ＲＯＭ１１は、ＰＣ１の動作を制御するためのプログラムなどが格納された書換不能な不揮発性のメモリである。ＲＡＭ１２は、ＣＰＵ１０の処理に必要な情報を一時的に記憶する書換可能な揮発性のメモリである。ＨＤＤ１３は、書換可能な不揮発性の記憶装置である。ＨＤＤ１３には、オペレーションシステム（以下「ＯＳ」と称す）１３ａと、アプリケーションプログラム１３ｂと、情報処理プログラム１３ｃと、アンインストーラ１３ｄと、ショートカット１３ｅと、監視対象テーブル１３ｆとが格納される。なお、本明細書では、情報処理プログラムやオペレーティングシステムなどの各プログラムを実行するＣＰＵ（ＣＰＵ１０）のことを単にプログラム名で記載する場合もある。例えば「情報処理プログラム」という記載が「情報処理プログラムを実行するＣＰＵ」を意味する場合もある。
【００２８】
ＯＳ１３ａは、ＰＣ１にインストールされたアプリケーションプログラム１３ｂや情報処理プログラム１３ｃなどの各種プログラムと協同してＰＣ１の各種機能を実現させるための基本ソフトウェアである。本実施形態では、ＯＳ１３ａとして、Ｗｉｎｄｏｗｓ（登録商標）系のＯＳがインストールされているものとする。
【００２９】
アプリケーションプログラム１３ｂ（以下、単に「アプリ１３ｂ」と称する場合がある）は、ある特定の処理をＣＰＵ１０に実行させるためのプログラムである。アプリ１３ｂとしては、例えば、文書作成用のアプリケーションプログラム、表計算用のアプリケーションプログラム、グラフィックデザイン用のアプリケーションプログラム、デバイスを制御するデバイス制御アプリケーションプログラムなどが例示される。アプリ１３ｂは、ユーザが、コンパクトディクスなどの各種記録媒体やネットワーク上のサーバなどから適宜取得し、ＰＣ１に適宜インストールされる。図１では、アプリ１３ｂを１つのみ図示しているが、複数種類のアプリ１３ｂがＰＣ１にインストールされていてもよい。
【００３０】
アプリ１３ｂは、ユーザが所定操作を行うことによって起動される。アプリ１３ｂを起動させるための所定操作としては、例えば、ＯＳ１３ａの機能によってＬＣＤ１５に表示されたアイコンに対するダブルクリックなどの操作や、アプリ１３ｂ本体のパスの直接入力などがある。アプリ１３ｂ本体のパスの直接入力としては、例えば、ＯＳ１３ａによるファイルなどの管理ツール（例えば、所謂「エクスプローラ」と呼ばれるツール）やブラウザに、アプリ１３ｂ本体のパスまたはＵＲＬを入力する方法がある。アプリ１３ｂを起動させるアイコンには、アプリ１３ｂ本体に対応するアイコンと、後述するショートカット１３ｅに対応して表示されるアイコンとがある。以下の説明では、前者を「本体アイコン」と称し、後者を「ショートカットアイコン」と称す。
【００３１】
情報処理プログラム１３ｃは、ショートカット１３ｅを管理するプログラムである。本実施形態では、情報処理プログラム１３ｃは、アプリ１３ｂの一部として構成され、アプリ１３ｂのインストールに伴い、ＰＣ１にインストールされる。また、情報処理プログラム１３ｃは、アプリ１３ｂの一部として構成されるので、アプリ１３ｂが起動された場合に、その起動に伴って起動する。詳細は後述するが、情報処理プログラム１３ｃは、アプリ１３ｂがショートカットアイコンに対する操作によって起動した場合に、後述する監視対象テーブル１３ｆの内容を更新する。また、情報処理プログラム１３ｃは、１のショートカット１３ｅが削除された場合に、所定の条件を満たせば、アンインストーラ１３ｄを起動させ、アプリ１３ｂのアンインストール（削除）を実行させる。なお、後述する図４および図５のフローチャートに示す各処理は、情報処理プログラム１３ｃに従ってＣＰＵ１０により実行される。
【００３２】
アンインストーラ１３ｄは、ＰＣ１にインストールされたアプリ１３ｂをアンインストールさせるためのプログラムである。アンインストーラ１３ｄは、例えば、１のアプリ１３ｂのインストール時にＨＤＤ１３に格納される。本実施形態では、アンインストーラ１３ｄは、情報処理プログラム１３ｃがアンインストールの実行指示を出力した場合に実行されるように構成される。アンインストーラ１３ｄが実行されると、対応するアプリ１３ｂがアンインストールされる。なお、アプリ１３ｂがアンインストールされると、そのアプリ１３ｂの一部である情報処理プログラム１３ｃもアンインストールされる。図１では、アンインストーラ１３ｄを１つのみ図示しているが、アンインストーラ１３ｄは、少なくともインストールされたアプリ１３ｂの数だけ格納されている。なお、１のアプリ１３ｂをアンインストール可能なアンインストーラ１３ｄは、２つ以上あってもよい。各アプリ１３ｂに対する１又は複数のアンインストーラ１３ｄは、アプリ１３ｂのインストール時に作成されるアンインストーラ情報テーブル（図示せず）により管理される。
【００３３】
ショートカット１３ｅは、アプリ１３ｂ本体へのリンクに関する情報を含むファイルであり、ショートカットアイコンに対応する。ショートカット１３ｅに対応してＬＣＤ１５に表示されるショートカットアイコンに対し、ユーザがダブルクリックなどの所定の操作を行うと、ショートカット１３ｅにリンクされているアプリ１３ｂが起動する。ショートカット１３ｅは、アプリ１３ｂのインストール時又はインストール後に、ユーザの必要に応じて作成される。ショートカット１３ｅの構成については、図２（ａ）を参照して後述する。
【００３４】
監視対象テーブル１３ｆは、ショートカット１３ｅの状態を管理するテーブルである。監視対象テーブル１３ｆは、アプリ１３ｂのインストール時に、そのアプリ１３ｂに含まれる情報処理プログラム１３ｂが実行する処理により作成される。すなわち、監視対象テーブル１３ｆは、アプリ１３ｂ毎に設けられる。アプリ１３ｂのインストール時に１又は複数のショートカット１３ｅが作成された場合には、作成された各ショートカット１３ｅについての監視情報１３ｆ２（図３参照）が、監視対象テーブル１３ｆに格納される。また、詳細は後述するが、アプリ１３ｂの起動時または定期的な監視タイミングにおいて、監視対象テーブル１３ｆに監視情報１３ｆ２が格納されていないショートカット１３ｅの存在が検知された場合、そのショートカット１３ｅについての監視情報１３ｆ２が追加される。監視対象テーブル１３ｆの記憶内容については、図３（ｂ）を参照して後述する。
【００３５】
図２（ａ）は、ショートカット１３ｅの構成の一例を示す模式図である。図２（ａ）に示すように、ショートカット１３ｅには、規定所有情報１３ｅ１として、名称、日時、リンク先情報、及びカレントディレクトリ情報が記憶される。なお、以下の説明では、カレントディレクトリを「ＣＤ」と称することがある。名称としては、例えば、ショートカット１３ｅ（ショートカットアイコン）の表示名およびファイルパスが記憶される。ファイルパスは、ショートカット１３ｅのあるディレクトリ（フォルダ）である。日時としては、例えば、ショートカット１３ｅの作成日時、更新日時、及びアクセス日時が記憶される。リンク先情報としては、リンク先のパス、すなわち、当該ショートカット１３ｅにより起動可能なアプリ１３ｂ本体のパスが記憶される。リンク先のパスは、アプリ１３ｂ本体のあるディレクトリと、アプリ１３ｂ本体のファイル名とから構成される。また、リンク先情報としては、アプリ１３ｂの起動時に読み込まれる起動引数も記憶される。ＣＤ情報としては、例えば、アプリ１３ｂを実行するディレクトリ（以下「作業フォルダ」と称す）のパスが記憶される。なお、ＣＤ情報は空白であってもよい。ＣＤ情報が空白である場合、所定のディレクトリが自動的に作業フォルダとして割り当てられる。例えば、ＯＳ１３ａがＷｉｎｄｏｗｓ（登録商標）である場合、ＣＤ情報を空白にすると、ショートカット１３ｅのあるディレクトリが作業フォルダとして割り当てられる。
【００３６】
図２（ｂ）は、ショートカット１３ｅのプロパティ画面３１の一例を示す模式図である。プロパティ画面３１は、１のショートカット１３ｅのプロパティが表示される画面であり、ユーザが所定の操作を行うことによりＬＣＤ１５に表示される。ショートカット１３ｅの情報は、プロパティ画面３１に表示される。例えば、図２（ｂ）に示すように、プロパティ画面３１におけるショートカットタブ３１ａの画面には、表示名４１が表示される。また、リンク先を表示するボックス３１ｂには、ショートカット１３ｅに含まれるリンク先のパス４２と、起動引数４３とが表示される。図２（ｂ）に示す例では、作業フォルダを表示するボックス３１ｃ内には何も表示されていない。これは、ショートカット１３ｅにおけるＣＤ情報が空白であることを示す。よって、ＯＳ１３ａがＷｉｎｄｏｗｓ（登録商標）である本実施形態の場合、ショートカット１３ｅのあるディレクトリが作業フォルダとされる。なお、詳細は図示しないが、プロパティ画面３１における全般タブ３１ｄの画面には、ショートカット１３ｅにおける日時およびファイルパスが表示される。
【００３７】
図３は、監視対象テーブル１３ｆの記憶内容の一例を示す模式図である。監視対象テーブル１３ｆには、ショートカット１３ｅ毎に、内部管理用に割り当てられた識別番号であるＩＤ１３ｆ１と、監視情報１３ｆ２とが格納される。監視情報１３ｆ２は、ディレクトリ名（フォルダ名）１３ｆ２ａと、ファイル名１３ｆ２ｂと、起動情報１３ｆ２ｃとが格納される。ディレクトリ名１３ｆ２ａには、ショートカット１３ｅのファイルパス、すなわち、ショートカット１３ｅのあるディレクトリ名またはフォルダ名が格納される。ファイル名１３ｆ２ｂには、ショートカット１３ｅのファイル名が格納される。起動情報１３ｆ２ｃには、対応するショートカット１３ｅによるアプリ１３ｂの最終起動日と起動回数とが格納される。起動情報１３ｆ２ｃは、ショートカット１３ｅがアプリ１３ｂを起動する毎に更新される。
【００３８】
図４は、情報処理プログラム１３ｃに従ってＣＰＵ１０が実行する起動時監視処理を示すフローチャートである。本処理は、アプリ１３ｂが起動される毎に開始される。また、ＣＰＵ１０は、本処理を、起動されたアプリ１３ｂに従いＣＰＵ１０が実行する主要な処理（図示せず）と並行して実行する。まず、ステップＳ４０１（以下、ステップを省略）において、ＣＰＵ１０は、カレントディレクトリ（ＣＤ）情報を取得する（Ｓ４０１）。取得したＣＤ情報がアプリ１３ｂ本体のあるディレクトリを示す場合、すなわち、起動元が本体アイコンであることを示す場合（Ｓ４０２：Ｙｅｓ）、ＣＰＵ１０は、本処理を終了する。なお、アプリ１３ｂ本体のあるディレクトリとは、ショートカット１３ｅのリンク先を示すディレクトリである。
【００３９】
一方、取得したＣＤ情報が示すディレクトリが、監視対象テーブル１３ｆにディレクトリ名１３ｆ２ａとして格納されている場合、すなわち、起動元が、監視対象テーブル１３ｆによる監視対象のショートカット１３ｅである場合（Ｓ４０２：Ｎｏ，Ｓ４０３：Ｙｅｓ）、ＣＰＵ１０は、監視対象テーブル１３ｆに格納される監視情報１３ｆ２のうち、該当する監視情報１３ｆ２、すなわち、起動元のショートカット１３ｅに対応する起動情報１３ｆ２ｃを更新し（Ｓ４０４）、本処理を終了する。具体的に、Ｓ４０４において、ＣＰＵ１０は、起動元のショートカット１３ｅに対応する起動情報１３ｆ２ｃの最終起動日時を、ＰＣ１が有するリアルタイムクロック（図示せず；以下「ＲＴＣ」と称す）が示す日時に書き換え、起動回数に１を加算する。
【００４０】
また、取得したＣＤ情報が示すディレクトリが、監視対象テーブル１３ｆにディレクトリ名１３ｆ２ａとして格納されていない場合、すなわち、起動元が、監視対象テーブル１３ｆによる監視対象のショートカット１３ｅでない場合（Ｓ４０２：Ｎｏ，Ｓ４０３：Ｎｏ）、ＣＰＵ１０は、取得したＣＤ情報が示すディレクトリ、すなわち、カレントディレクトリ内にて、自身のアプリ１３ｂ（自身の情報処理プログラム１３ｃ）を起動可能なショートカット１３ｅを検索する（Ｓ４０５）。検索の結果、該当するショートカット１３ｅ、すなわち、起動元のショートカット１３ｅがある場合（Ｓ４０６；Ｙｅｓ）、ＣＰＵ１０は、処理をＳ４０７に移行する。なお、ＣＰＵ１０がＳ４０３の判断を否定（Ｎｏ）する場合のうち、Ｓ４０５での検索の結果、該当するショートカット１３ｅが検知される場合としては、例えば、アプリ１３ｂのインストール後に、アプリ１３ｂ本体を別フォルダにコピーした場合や、ショートカット１３ｅを別フォルダにコピー又は移動した場合がある。
【００４１】
Ｓ４０７において、ＣＰＵ１０は、該当するショートカット１３ｅを、情報処理プログラム１３ｃが管理し易い規定のフォーマットに差し替える（Ｓ４０７）。規定のフォーマットとしては、例えば、ＣＤ情報を空白にすることや、アプリ１３ｂがショートカット１３ｅを管理し易い所定の起動引数の付加などが例示される。例えば、Ｓ４０７において、ＣＤ情報を空白にした場合、情報処理プログラム１３ｂが、ショートカット１３ｅをＣＤ情報（作業フォルダのパス）から容易に検知できるので、ショートカット１３ｅの情報を管理し易い。次に、ＣＰＵ１０は、監視対象テーブル１３ｆに、対象となるショートカット１３ｅに対する新規のレコードを追加し（Ｓ４０８）、本処理を終了する。具体的に、Ｓ４０８において、ＣＰＵ１０は、対象となるショートカット１３ｅに対しＩＤ１３ｆ１を割り当て、対象となるショートカット１３ｅについての監視対象情報１３ｆ２を、割り当てたＩＤ１３ｆ１に対応づけて格納する。なお、ＣＰＵ１０は、起動情報１３ｆ２ｃの最終起動日には、ＲＴＣが示す日時を格納し、起動回数にはゼロを格納する。
【００４２】
一方、Ｓ４０６において、該当するショートカット１３ｅがない場合（Ｓ４０６；Ｎｏ）、ＣＰＵ１０は、ＰＣ１内を全検索する（Ｓ４０９）。ＰＣ１内を全検索した結果、該当するショートカット１３ｅがある場合（Ｓ４１０；Ｙｅｓ）、ＣＰＵ１０は、処理をＳ４０７に移行する。なお、ＣＰＵ１０がＳ４０３の判断を否定（Ｎｏ）する場合のうち、Ｓ４０９での検索の結果、該当するショートカット１３ｅが検知される場合としては、例えば、アプリ１３ｂのインストール後に、コピー又は移動によってショートカット１３ｅを作成したときに、ＯＳ１３ａがショートカット１３ｅのあるディレクトリ（フォルダ）とは異なる所定フォルダ、例えば、マイドキュメントなどをカレントディレクトリとして自動的に設定した場合や、ユーザ自身がデータを入力してショートカット１３ｅを作成したときに、ショートカット１３ｅのディレクトリとは異なるディレクトリをカレントディレクトリ（作業フォルダ）とした場合がある。
【００４３】
一方、Ｓ４１０において、ＰＣ１内を全検索しても該当するショートカット１３ｅがない場合（Ｓ４１０；Ｎｏ）、ユーザがアプリ１３ｂ本体のパス又はＵＲＬを直接入力したことによってアプリ１３ｂが起動されたことを示す。つまり、かかる場合には、起動元となるショートカット１３ｅは存在しない。そこで、かかる場合、ＣＰＵ１０は、ＣＤ内に新規のショートカット１３+ｅを作成する（Ｓ４１１）。次に、ＣＰＵ１０は、監視対象テーブル１３ｆに、Ｓ４１１において新規に作成したショートカット１３ｅを対象として、対象となるショートカット１３ｅに対する新規のレコードを追加し（Ｓ４０８）、本処理を終了する。Ｓ４１１においてショートカット１３ｅが作成された場合、その作成時と同じ状況でアプリ１３ｂが起動された場合に、当該ショートカット１３ｅが起動元であるとみなし、対応する起動情報１３ｆ２ｃを更新すればよい。
【００４４】
上述した起動時監視処理によれば、Ｓ４０１において取得したＣＤ情報に基づき、起動元のショートカット１３ｅが、監視対象テーブル１３ｆによる監視対象でなければ、監視対象テーブル１３ｆにレコードが追加される。よって、インストール後のコピーや移動などによって新たに作成されたショートカット１３ｅを、監視対象テーブル１３ｆによる監視下に置くことができる。また、Ｓ４０１において取得したＣＤ情報が、監視対象テーブル１３ｆにディレクトリ名１３ｆ２ａとして格納されていない場合、ＰＣ１内の全検索を行う前に、Ｓ４０５において、ＣＤ情報が示すカレントディレクトリ内を対象として起動元のショートカット１３ｅが検索されるので、ＰＣ１内の全検索を行う可能性を低減できるので、処理負荷の増大を抑制できる。
【００４５】
図５（ａ）は、情報処理プログラム１３ｃに従ってＣＰＵ１０が実行する定期監視処理を示すフローチャートである。本処理は、アプリ１３ｂが起動されているか否かにかわらず、所定時間毎、例えば、５分毎に開始される。まず、ＣＰＵ１０は、監視対象のショートカット１３ｅの状態を監視する（Ｓ５０１）。Ｓ５０１において、ＣＰＵ１０は、監視対象テーブル１３ｆに格納されるディレクトリ名１３ｆ２ａが示すフォルダ内を検索し、そのフォルダ内に自身を起動可能なショートカット１３ｅがなければ、ショートカット１３ｅが削除されたとＣＰＵ１０は判断する。つまり、この定期監視処理によれば、ショートカット１３ｅが削除されたか否かが定期的に判断される。かかる判断は、監視対象テーブル１３ｆに格納されるディレクトリ名１３ｆ２ａが示すフォルダ内の検索によって行うので、ＰＣ１の全検索を行う必要がなく、当該判断に要する処理負荷を抑制できる。
【００４６】
Ｓ５０２において、ショートカット１３ｅが削除されていないとＣＰＵ１０が判断した場合（Ｓ５０２：Ｎｏ）、ＣＰＵ１０は、処理を終了する。一方、Ｓ５０２において、ショートカット１３ｅが削除されたとＣＰＵ１０が判断した場合（Ｓ５０２：Ｙｅｓ）、ＣＰＵ１０は、他ショートカット状態確認処理を実行する（Ｓ５０３）。他ショートカット状態確認処理（Ｓ５０３）は、所定条件を満たすショートカット１３ｅを監視対象から外す処理であり、詳細は図５（ｂ）を参照して後述する。次に、ＣＰＵ１０は、アクティブな他のショートカット１３ｅがあるか否かを判断する。なお、「アクティブな他のショートカット１３ｅ」とは、監視対象テーブル１３ｆに監視対象として残存する他のショートカット１３ｅを示す。また、「他のショートカット１３ｅ」は、アプリ１３ｂを起動可能なショートカット１３ｅのうち、削除されたショートカット１３ｅを除くショートカット１３ｅを示す。
【００４７】
Ｓ５０４において、アクティブな他のショートカット１３ｅがあるとＣＰＵ１０が判断した場合（Ｓ５０４：Ｙｅｓ）、ＣＰＵ１０は、削除されたショートカット１３ｅのレコードを監視対象テーブル１３ｆから削除し（Ｓ５０５）、本処理を終了する。一方、Ｓ５０４において、アクティブな他のショートカット１３ｅがないとＣＰＵ１０が判断した場合（Ｓ５０４：Ｎｏ）、ＣＰＵ１０は、ＰＣ１内にて、自身のアプリ１３ｂを起動可能なショートカット１３ｅを全検索する（Ｓ５０７）。ユーザがショートカット１３ｅを別フォルダに移動させた場合、移動元のショートカット１３ｅは消失するので、ＣＰＵ１０は、Ｓ５０２において、ショートカット１３ｅが削除されたと判断するが、移動先に新たに作成されたショートカット１３ｅが監視対象から外れた状態で残存している可能性がある。よって、監視対象から外れているショートカット１３ｅの有無を確認するために、ＣＰＵ１０は、Ｓ５０７の処理を実行する。
【００４８】
Ｓ５０７での検索の結果、自身のアプリ１３ｂを起動可能なショートカット１３ｅがある場合（Ｓ５０８；Ｙｅｓ）、ＣＰＵ１０は、Ｓ４０７と同様に、検索されたショートカット１３ｅを、情報処理プログラム１３ｃが管理し易い規定のフォーマットに差し替える（Ｓ５０９）。次に、ＣＰＵ１０は、Ｓ４０８と同様に、監視対象テーブル１３ｆに、対象となるショートカット１３ｅに対する新規のレコードを追加し（Ｓ５１０）、本処理を終了する。よって、移動によって作成されたショートカット１３ｅを確実に監視対象とすることができる。また、移動によって作成されたショートカット１３ｅを情報処理プログラム１３ｃが管理し易い規定のフォーマットに差し替えるので、当該ショートカット１３ｅの情報の管理が容易となる。
【００４９】
一方、Ｓ５０７での検索の結果、該当するショートカット１３ｅ、すなわち、自身のアプリ１３ｂを起動可能なショートカット１３ｅがない場合（Ｓ５０８；Ｎｏ）、ＣＰＵ１０は、アンインストーラ１３ｄに対しアンインストールの実行指示を出力して、アンインストーラ１３ｄにアンインストールを実行させ（Ｓ５１１）、本処理を終了する。よって、ショートカット１３ｅが削除されたとＣＰＵ１０が判断した場合には、アクティブな他のショートカット１３ｅが存在せず、かつ、ＰＣ１内に他のショートカット１３ｅが存在しないことを条件として、当該アプリ１３ｂがアンインストールされる。
【００５０】
図５（ｂ）は、上述した他ショートカット状態確認処理（Ｓ５０３）を示すフローチャートである。まず、監視対象とされる他のショートカット１３ｅがない場合（Ｓ５２１：Ｎｏ）、本処理を終了する。よって、かかる場合、ＣＰＵ１０は、Ｓ５０４においてＮｏと判断されるので、ＰＣ１内を全検索しても他のショートカット１３ｅがない場合には、当該アプリ１３ｂがアンインストールされる。
【００５１】
一方、監視対象とされる他のショートカット１３ｅがある場合（Ｓ５２１：Ｙｅｓ）、ＣＰＵ１０は、１の他のショートカット１３ｅを選択する（Ｓ５２２）。次に、選択されたショートカット１３ｅ対応する起動情報１３ｆ２ｃについて、起動回数が、所定回数未満、例えば、５００回未満である場合（Ｓ５２３：Ｙｅｓ）、ＣＰＵ１０は、該当するショートカット１３ｅ、すなわち、選択中のショートカット１３ｅのレコードを監視対象テーブル１３ｆから削除し（Ｓ５２５）、処理をＳ５２６に移行する。選択されたショートカット１３ｅ対応する起動情報１３ｆ２ｃについて、最終起動日時が、所定時間以上前、例えば、１年以上前である場合もまた（Ｓ５２３：Ｎｏ，Ｓ５２４：Ｙｅｓ）、ＣＰＵ１０は、処理をＳ５２５に移行する。
【００５２】
つまり、Ｓ５２３〜Ｓ５２５の処理によれば、監視対象テーブル１３ｆにより監視される１又は複数の他のショートカット１３ｅのうち、所定の条件を満たすショートカット１３ｅについては、レコードを削除することによって監視対象から外す。具体的に、起動回数が所定回数未満であり使用頻度の少ないショートカット１３ｅ、又は、最終起動日時が所定時間以上前であり最近使用していないショートカット１３ｅは、今後も使用する可能性は低いとみなし、監視対象から外す。例えば、Ｓ５２３において、ＣＰＵ１０が、起動回数が５００回未満であるか否かを判断し、Ｓ５０５において、ＣＰＵ１０が、２０１２年２月２５日において１年以上前であるか否かを判断する場合、図３に示す監視対象テーブル１３ｆに格納されている情報のうち、ＩＤ１３ｆ１が「２」に対応するショートカット１３ｅのレコードを残し、他のショートカット１３ｅのレコードが削除され、監視対象から外される。
【００５３】
一方、選択されたショートカット１３ｅに対応する起動情報１３ｆ２ｃについて、起動回数が所定回数未満でなく、かつ、最終起動日時が所定時間以上前でもない場合（Ｓ５２３：Ｎｏ，Ｓ５２４：Ｎｏ）、ＣＰＵ１０は、Ｓ５２５をスキップして、処理をＳ５２６に移行する。次に、未処理の他のショートカット１３ｅがあれば（Ｓ５２６：Ｙｅｓ）、ＣＰＵ１０は、次の他のショートカット１３ｅを選択し（Ｓ５２７）、処理をＳ５２２に移行する。一方、未処理の他のショートカット１３ｅがなければ（Ｓ５２６：Ｎｏ）、ＣＰＵ１０は、本処理を終了する。
【００５４】
上述した定期監視処理によれば、ショートカット１３ｅが削除されたとＣＰＵ１０が判断したときに、監視対象の他のショートカット１３ｅがあれば、各ショートカット１３ｅの起動情報１３ｆ２ｃに基づいて、アプリ１３ｂをアンインストールするか否かの判断を行なう。具体的に、起動回数が所定回数未満であるか、又は、最終起動日時が所定時間以上前であるショートカット１３ｅを監視対象から外し、結果として、アクティブな他のショートカット１３ｅが存在しなくなった場合に、ユーザがアプリ１３ｂのアンインストールを所望しているとみなし、アプリ１３ｂをアンインストールすると判断する。ただし、本実施形態では、さらに、ＰＣ１内に他のショートカット１３ｅが存在しないことを条件として、アプリ１３ｂのアンインストールを実行する。よって、アプリ１３ｂのアンインストールをユーザの意図に応じて実行できる。換言すれば、他のショートカットプログラム１３ｅからアプリ１３ｂを起動する可能性があるにもかかわらず、当該アプリ１３ｂがアンインストールされることを防ぐことができる。そして、アプリ１３ｂを削除するか否かの判断を、当該アプリ１３ｂが起動される毎に更新される起動情報１３ｆ２に基づいて行うので、ショートカット１３ｅの削除とアプリ１３ｂのアンインストールとを関連付ける設定をショートカット１３ｅ毎に予め行う必要がなく、利便性に優れる。
【００５５】
次に、図６及び図７を参照して、本発明の第２実施形態について説明する。上述した第１実施形態では、同一のＰＣ１にアプリ１３ｂとショートカット１３ｅとが存在する場合について説明した。これに換えて、第２実施形態では、外部サーバ１００内にインストールされているアプリ１３ｂを、ネットワーク２００を介して当該外部サーバ１００に接続されるＰＣ２に作成されたショートカット１３ｅから起動できる場合について説明する。なお、第２実施形態において、上述した第１実施形態と同一の部分については、同一の符号を付し、その説明は省略する。ただし、第１実施形態の説明における「ＰＣ１」を「外部サーバ１００」または「ＰＣ２」と読み替えるものとする。
【００５６】
図６は、第２実施形態の構成を示すブロック図である。図６に示すように、外部サーバ１００には、ＰＣ１と同様に、ＣＰＵ１０と、ＲＯＭ１１と、ＲＡＭ１２と、ＨＤＤ１３と、入力装置１４と、ＬＣＤ１５と、ネットワーク＿Ｉ／Ｆ２２１６とが設けられている。これらの各部は、バスライン１７を介して互いに接続されている。外部サーバ１００のＨＤＤ１３には、ＯＳ１３ａと、アプリケーションプログラム（アプリ）１３ｂと、情報処理プログラム１３ｃと、アンインストーラ１３ｄと、監視対象テーブル１３ｆが格納される。一方、第２実施形態のＰＣ２は、ＨＤＤ１３に、アプリ１３ｂと、情報処理プログラム１３ｃと、アンインストーラ１３ｄと、監視対象テーブル１３ｆが格納されていないこと以外、上述した第１実施形態のＰＣ１と同様である。即ち、第２実施形態のＰＣ２のＨＤＤ１３には、ＯＳ１３ａと、ショートカット１３ｅとが格納される。外部サーバ１００のネットワークＩ／Ｆ１６と、ＰＣ２のネットワークＩ／Ｆ１６とが、ネットワーク２００を介して接続される。なお、図６に示す例では、１つの外部サーバ１００に対し、３つのＰＣ２が接続されているが、接続されるＰＣ２の数は、３つに限定されるものではない。図６に示す例では、３つのＰＣ２に対し、各々、「ａｂｃ」、「ｅｆｇ」、「ｘｙｚ」というＰＣ名が付けられているものとする。
【００５７】
図７は、第２実施形態の監視対象テーブル１３ｆの記憶内容の一例を示す模式図である。第２実施形態の監視対象テーブル１３ｆには、監視情報１３ｆ２として、ディレクトリ名１３ｆ２ａと、ファイル名１３ｆ２ｂと、起動情報１３ｆ２ｃとに加え、ＰＣ名１３ｆ２ｄが格納される。具体的に、図７に示す監視対象テーブル１３ｆによれば、ＩＤ１３ｆ１として「１」及び「２」が割り当てられたショートカット１３ｅは、いずれも、ＰＣ名１３ｆ２ｄが「ｘｙｚ」であるＰＣ２のショートカットであることを示す。同様に、ＩＤ１３ｆ１として「３」が割り当てられたショートカット１３ｅは、ＰＣ名１３ｆ２ｄが「ａｂｃ」であるＰＣ２のショートカットであり、ＩＤ１３ｆ１として「４」が割り当てられたショートカット１３ｅは、ＰＣ名１３ｆ２ｄが「ｅｆｇ」であるＰＣ２のショートカットであることを示す。
【００５８】
第２実施形態において、外部サーバ１００のＣＰＵ１０が情報処理プログラム１３ｃに従って実行する起動時監視処理は、以下の点以外は、第１実施形態と同様である。第１に、Ｓ４０１において、ＣＤ情報に加えて、アプリ１３ｂを起動させたＰＣ２のＰＣ名を取得する。第２に、ＣＰＵ１０がＳ４０３の判断を否定（Ｎｏ）した場合、ＣＰＵ１０は、取得したＰＣ名のＰＣ２におけるＣＤ内を検索し（Ｓ４０５）、該当するショートカット１３ｅがなければ（Ｓ４０６：Ｎｏ）、取得したＰＣ名のＰＣ２内を全検索する（Ｓ４０９）。第３に、Ｓ４０８では、ＣＰＵ１０は、ディレクトリ名１３ｆ２ａと、ファイル名１３ｆ２ｂと、起動情報１３ｆ２ｃとに、取得したＰＣ名をＰＣ名１３ｆ２ｄとして加えた監視対象情報１３ｆ２ｄを監視対象テーブル１３ｆに追加する。
【００５９】
また、第２実施形態において、外部サーバ１００のＣＰＵ１０が情報処理プログラム１３ｃに従って実行する定期監視処理は、以下の点以外は、第１実施形態と同様である。第１に、Ｓ５０１において、ＣＰＵ１０は、監視対象となる各ＰＣ２のショートカット１３ｅの状態を監視する。第２に、Ｓ５０２において、ショートカット１３ｅが削除されたＰＣ２があるとＣＰＵ１０が判断した場合には、ＣＰＵ１０は、ショートカット１３ｅが削除されたＰＣ２について、それぞれ、他ショートカット状態確認処理を実行する（Ｓ５０３）。第３に、ＣＰＵ１０は、Ｓ５０４においてアクティブな他ショートカットがあると判断したＰＣ２について、Ｓ５０７において、当該ＰＣ２内にて、自身のアプリ１３ｂを起動可能なショートカット１３ｅを検索する。第４に、Ｓ５１０では、ＣＰＵ１０は、ディレクトリ名１３ｆ２ａと、ファイル名１３ｆ２ｂと、起動情報１３ｆ２ｃとに、取得したＰＣ名をＰＣ名１３ｆ２ｄとして加えた監視対象情報１３ｆ２ｄを監視対象テーブル１３ｆに追加する。
【００６０】
この第２実施形態においても、上述した第１実施形態と同様、ＰＣ２におけるショートカット１３ｅの削除と、外部サーバ１００におけるアプリ１３ｂのアンインストールとを関連付ける設定を予め行う必要がなく、利便性に優れる。
【００６１】
上記実施形態において、情報処理プログラム１３ｃが、情報処理プログラムの一例である。ショートカット１３ｅが、ショートカットの一例である。アプリ（アプリケーションプログラム）１３ｂが、アプリケーションプログラムの一例である。ＨＤＤ１３が、記憶部の一例である。アンインストーラ１３ｄが、削除プログラムの一例である。第１実施形態のＰＣ１，第２実施形態の外部サーバ１００が、情報処理装置の一例である。第２実施形態のＰＣ１が、外部装置の一例である。ＣＰＵ１０が、コンピュータの一例である。Ｓ４０８，Ｓ５１０の処理を実行するＣＰＵ１０が、起動情報記憶手段の一例である。Ｓ４０４の処理を実行するＣＰＵ１０が、更新手段の一例である。Ｓ５０２の処理を実行するＣＰＵ１０が、ショートカット削除判断手段の一例である。Ｓ５２１の処理を実行するＣＰＵ１０が、ショートカット判断手段の一例である。Ｓ５２２〜Ｓ５２７，Ｓ５０４の処理を実行するＣＰＵ１０が、アプリケーション判断手段の一例である。Ｓ５１１の処理を実行するＣＰＵ１０が、アプリケーション削除手段の一例である。Ｓ５０７，Ｓ５０８を実行するＣＰＵ１０が、第２ショートカット判断手段の一例である。ショートカット１３ｅが、ファイル情報の一例である。カレントディレクトリ（ＣＤ）情報が、フォルダ情報の一例である。Ｓ５０９の処理を実行するＣＰＵ１０が、ファイル情報変更手段の一例である。Ｓ４０１の処理を実行するＣＰＵ１０が、フォルダ情報取得手段の一例である。Ｓ４０５，Ｓ４０６の処理を実行するＣＰＵ１０が、第３ショートカット判断手段の一例である。Ｓ４０９，Ｓ４１０の処理を実行するＣＰＵ１０が、第４ショートカット判断手段の一例である。Ｓ４０７の処理を実行するＣＰＵ１０が、第２ファイル情報変更手段の一例である。
【００６２】
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
【００６３】
上記実施形態で挙げた数値は一例であり、他の数値を採用することは当然可能である。例えば、図５（ａ）の定期監視処理の実行間隔を５分としたが、かかる実行間隔は、例えば、１０ｍｓｅｃなどであってもよい。定期監視処理が短いほど、ショートカット１３ｅを削除してから、アプリ１３ｂがアンインストールされるまでにかかる時間を短くできるが、処理負荷を軽減させるという点において、実行間隔を長めにすることが好ましい。
【００６４】
上記実施形態では、アプリ１３ｂの一部である情報処理プログラム１３ｃが、アンインストーラ１３ｄに対しアンインストールの実行指示を出力する構成とした。すなわち、アプリ１３ｂ及び情報処理プログラム１３ｃと、アンインストーラ１３ｄとがそれぞれ別々のプログラムであったが、これに換えて、情報処理プログラム１３ｃを含むアプリ１３ｂがアンインストーラの機能を有していてもよい。かかる場合、Ｓ５１１において、ＣＰＵ１０は、削除されたショートカット１３ｅが起動可能なアプリ１３ｂにアンインストールを実行させる。
【００６５】
上記実施形態の定期監視処理では、Ｓ５０４においてアクティブな他のショートカット１３ｅがないと判断された場合には、さらにＰＣ１内の全検索をして、該当するショートカットがないことを確認してから、アプリ１３ｂのアンインストールを実行する構成とした。これに換えて、Ｓ５０４においてアクティブな他のショートカット１３ｅがないと判断された場合に、ＰＣ１内の全検索を行うことなく、アプリ１３ｂのアンインストールを実行する構成としてもよい。
【００６６】
上記実施形態の起動時監視処理では、Ｓ４０１において取得したカレントディレクトリ情報に基づいて、監視対象テーブル１３ｆの更新（起動情報１３ｆ２ｃの更新、レコードの追加）を行う構成としたが、カレントディレクトリ情報を使用せずに、アプリ１３ｂが起動される毎に、ＰＣ１内を検索して、監視対象テーブル１３ｆの更新を行う構成としてもよい。かかる場合、情報処理プログラム１３ｃをアンインストーラ１３ｄの一部としても、情報処理プログラム１３ｃをアプリ１３ｂの一部とした上記実施形態と同様に、定期監視処理（図５（ａ））による、アプリ１３ｂのアンインストールを実現できる。
【００６７】
上記実施形態では、Ｓ４０９やＳ５０７において、ＰＣ１又は外部サーバ１００内を全検索する構成としたが、ＰＣ１又は外部サーバ１００における特定のドライブ（例えば「Ｃドライブ」）内の検索を行う構成としてもよい。例えば、Ｓ４０１において取得したカレントディレクトリのあるドライブ内を検索してもよい。
【００６８】
上記実施形態では、Ｓ５２３〜Ｓ５２５において、起動回数が所定回数未満であるか、又は、最終起動日時が所定時間以上であるショートカット１３ｅのレコードを監視対象テーブル１３ｆから削除する構成としたが、かかる場合に、レコードだけでなく、ショートカット１３ｅを削除してもよい。このとき、ショートカット１３ｅを削除する閾値となる起動回数を、レコードを監視対象テーブル１３ｆから削除する閾値となる起動回数より少なくしてもよい。これにより、使用頻度が非常に低いショートカットを、ユーザがショートカットを削除したタイミングで随時削除できる。よって、管理すべきショートカットの数を随時減らすことができ、管理を容易化できる。例えば、ショートカット１３ｅを削除する閾値となる起動回数をゼロ回としてもよい。起動回数がゼロ回であるショートカット１３ｅは、ユーザが使用する可能性が極めて低いので、ショートカット１３ｅを削除しても、ユーザに不都合を与える可能性は非常に低い。
【００６９】
上記実施形態では、監視対象テーブル１３ｆにおいて、ショートカット１３ｅ毎に起動情報１３ｆ２ｃを格納する構成としたが、アプリ１３ｂ単位で起動情報１３ｆ２ｃを格納する構成としてもよい。かかる場合、アプリ１３ｂが起動される毎に、起動されたアプリ１３ｂに対応する起動情報１３ｆ２ｃを更新すればよい。そして、ショートカット１３ｅが削除された場合に、削除されたショートカット１３ｅが起動可能なアプリ１３ｂの起動情報１３ｆ２ｃに基づき、当該アプリ１３ｂを削除するか否かの判断を行なうようにすればよい。
【００７０】
上記実施形態におけるＩＤ１３ｆ１を、そのＩＤ１３ｆ１に対応するショートカット１３ｅのリンク先情報の起動引数として付加する構成としてもよい。かかる構成を採用した場合、ショートカット１３ｅによりアプリ１３ｂを起動した場合に、起動引数に基づき、起動元のショートカット１３ｅが監視対象であるか否かを判断できる。
【００７１】
上記実施形態では、Ｓ４１０においてＣＰＵ１０がＮｏと判断した場合に、ＣＰＵ１０は、Ｓ４１１において新規のショートカット１３ｅを作成し、Ｓ４０８において作成したショートカット１３ｅに対する新規のレコードを監視対象テーブル１３ｆに追加する構成としたが、ショートカットは作成せずに、新規のレコードのみ監視対象テーブル１３ｆに作成する構成としてもよい。
【００７２】
上記実施形態では、「ショートカット１３ｅの削除」を、ショートカット１３ｅを所謂「ゴミ箱」に移動させるものとして説明したが、当該「ゴミ箱」からショートカット１３ｅを削除する、すなわち、ショートカット１３ｅを完全削除する場合を「ショートカット１３ｅの削除」としてもよい。
ショートカット１３ｅを完全削除する場合を「ショートカット１３ｅの削除」とする場合には、Ｓ５０２において、ＣＰＵ１０は、ゴミ箱のフォルダ内からショートカット１３ｅが削除されたら、ショートカット１３ｅが削除されたと判断する。
【００７３】
上記実施形態では、ＯＳ１３ａとして、Ｗｉｎｄｏｗｓ（登録商標）を例示したが、他のＯＳ、例えば、Ｕｎｉｘ（登録商標）系のＯＳや、Ｌｉｎｕｘ（登録商標）系のＯＳなどでも適用可能である。
【符号の説明】
【００７４】
１              ＰＣ
１０            ＣＰＵ
１３ｃ          情報処理プログラム
１００          外部サーバ
【図１】
0005900074.tif 000002
【図２】
0005900074.tif 000003
【図３】
0005900074.tif 000004
【図４】
0005900074.tif 000005
【図５】
0005900074.tif 000006
【図６】
0005900074.tif 000007
【図７】
0005900074.tif 000008