(57)【要約】【課題】  メモリカード等の記録媒体に格納されているプログラムに係る処理を簡便に行うこと。【解決手段】  記録媒体から入力したプログラム情報に関連付けたプログラムを記録媒体から読み出して、このプログラム情報と共に外部記憶装置１０６に格納するか否かを、このプログラム情報に基づいて判断し、格納すると判断した場合に、入力したプログラム情報に関連付けたプログラムを記録媒体から読み出し、入力したプログラム情報と共に外部記憶装置１０６に格納する。【選択図】    図１
2005346473.tif 000002
【特許請求の範囲】
【請求項１】
プログラム、及び当該プログラムに関するプログラム情報を関連付けて記録した記録媒体とのデータ通信が可能な情報処理装置であって、
前記記録媒体からプログラム情報を入力する入力手段と、
前記入力手段が入力したプログラム情報に関連付けられたプログラムを前記記録媒体から読み出して、前記入力手段が入力したプログラム情報と共に所定のメモリに格納するか否かを、前記入力手段が入力したプログラム情報に基づいて判断する第１の判断手段と、
前記第１の判断手段が格納すると判断した場合に、前記入力手段が入力したプログラム情報に関連付けられたプログラムを前記記録媒体から読み出し、前記入力手段が入力したプログラム情報と共に前記メモリに格納する格納制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１の判断手段は、プログラム情報中のフラグ値を参照し、当該フラグ値に応じて、当該プログラム情報、及び当該プログラム情報に関連付けられたプログラムを前記メモリに格納するか否かを判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
更に、
前記記録媒体とのデータ通信を終了する旨を検知した場合に、前記メモリに格納されているプログラム情報に基づいて、当該プログラム情報、及び当該プログラム情報に関連付けているプログラムを前記メモリから削除するか否かを判断する第２の判断手段と、
前記第２の判断手段が削除すると判断したプログラム、及び当該プログラムに関連付けられているプログラム情報を前記メモリから削除する削除手段と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記プログラム情報には当該プログラム情報に関連付けられているプログラムが使用された回数を示す回数情報が含まれており、
前記格納制御手段は、前記記録媒体から入力したプログラム、及び当該プログラムに関連付けられているプログラム情報を格納するだけの充分な容量が前記メモリにはない場合には、
前記メモリに格納されているそれぞれのプログラムに関連付けられているプログラム情報中の回数情報を参照し、最も少ない使用回数を示す回数情報を含むプログラム情報、及び当該プログラム情報に関連付けられているプログラムを削除する処理を少なくとも１回行うことで、前記メモリに前記充分な容量を確保し、
確保後、前記記録媒体から入力したプログラム、及び当該プログラムに関連付けられているプログラム情報を前記メモリに格納することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記プログラム情報には更に、当該プログラム情報に関連付けられているプログラムの使用上限回数を示す期限情報が含まれており、
前記格納制御手段は、前記入力手段が入力したプログラム情報中の前記回数情報が示す回数が前記使用上限回数に達している場合には、前記入力手段が入力したプログラム情報、及び当該プログラム情報に関連付けられているプログラムを前記メモリに格納しないことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記削除手段は、前記使用上限回数に達している回数を示す回数情報を含むプログラム情報、及び当該プログラム情報に関連付けられているプログラムを前記メモリから削除することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記プログラム情報には当該プログラム情報に関連付けられているプログラムが最後に使用された日時を示す最終日時情報が含まれており、
前記格納制御手段は、前記記録媒体から入力したプログラム、及び当該プログラムに関連付けられているプログラム情報を格納するだけの充分な容量が前記メモリにはない場合には、
前記メモリに格納されているそれぞれのプログラムに関連付けられているプログラム情報中の最終日時情報を参照し、最も古い日時を示す最終日時情報を含むプログラム情報、及び当該プログラム情報に関連付けているプログラムを削除する処理を１回以上行うことで、前記メモリに前記充分な容量を確保し、
確保後、前記記録媒体から入力したプログラム、及び当該プログラムに関連付けられているプログラム情報を前記メモリに格納することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項８】
前記プログラム情報には更に、前記プログラム情報に関連付けられているプログラムの使用可能最終日時を示す期限情報が含まれており、
前記格納制御手段は、前記入力手段が入力したプログラム情報中の前記最終日時情報が前記使用可能最終日時よりも最近の日時を示している場合には、前記入力手段が入力したプログラム情報、及び当該プログラム情報に関連付けられているプログラムは前記メモリに格納しないことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記削除手段は、前記使用可能最終日時よりも最近の日時を示す最終日時情報を含むプログラム情報、及び当該プログラム情報に関連付けられているプログラムを前記メモリから削除することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
プログラム、及び当該プログラムに関するプログラム情報を関連付けて記録した記録媒体とのデータ通信が可能な情報処理装置の制御方法であって、
前記記録媒体からプログラム情報を入力する入力工程と、
前記入力工程で入力したプログラム情報に関連付けられたプログラムを前記記録媒体から読み出して、前記入力工程で入力したプログラム情報と共に所定のメモリに格納するか否かを、前記入力工程で入力したプログラム情報に基づいて判断する第１の判断工程と、
前記第１の判断工程で格納すると判断した場合に、前記入力工程で入力したプログラム情報に関連付けられたプログラムを前記記録媒体から読み出し、前記入力工程で入力したプログラム情報と共に前記メモリに格納する格納制御工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータに請求項１０に記載の制御方法を実行させることを特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムを格納することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録媒体とのデータ通信技術に関するものである。
【背景技術】
【０００２】
従来、PDAなどの携帯機器においては、機器内にインストールされていないアプリケーションプログラムを起動する場合、アプリケーションプログラムが格納されたＣｏｍｐａｃｔ  ＦｌａｓｈメモリカードやＳＤメモリカード等のメモリカードを機器に装着し、メモリカードに格納されているアプリケーションプログラムを機器内の主記憶メモリに読み込み、読み込んだアプリケーションプログラムを起動するようになっていた。
【０００３】
或いは、メモリカードに格納されているアプリケーションプログラムを機器内のハードディスクや不揮発性メモリに一旦コピーし、コピーされたアプリケーションプログラムを実行するようになっていた（例えば、特許文献１を参照）。
【特許文献１】特開平１１−２４２５９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来例のメモリカードに格納されているアプリケーションプログラムを機器内の主記憶メモリに読み込み、読み込んだアプリケーションプログラムを起動する方法では、起動したアプリケーションプログラムを終了するとオペレーティングシステム（ＯＳ）は主記憶メモリ内に読込まれたアプリケーションプログラムを無効にする。このため、アプリケーションプログラムを再度実行する場合は、再びメモリカードからアプリケーションプログラムを機器内の主記憶メモリに読込む必要がある。しかし、メモリカードのアクセススピードは主記憶メモリのアクセススピードより遅いため、結果的にアプリケーションプログラムの起動速度が遅いという欠点があった。
【０００５】
また、メモリカードに格納されているアプリケーションプログラムを機器内のハードディスクや不揮発性メモリに一旦コピーし、コピーされたアプリケーションプログラムを実行する方法では、機器内のハードディスクや不揮発性メモリにアプリケーションを格納するための操作が煩雑であり、また、格納したアプリケーションが不要になった時に削除する操作も煩雑であるという欠点があった。
【０００６】
本発明は以上の問題に鑑みてなされたものであり、メモリカード等の記録媒体に格納されているプログラムに係る処理を簡便に行うことを目的とする。
【課題を解決するための手段】
【０００７】
本発明の目的を達成するために、例えば本発明の情報処理装置は以下の構成を備える。
【０００８】
すなわち、プログラム、及び当該プログラムに関するプログラム情報を関連付けて記録した記録媒体とのデータ通信が可能な情報処理装置であって、
前記記録媒体からプログラム情報を入力する入力手段と、
前記入力手段が入力したプログラム情報に関連付けたプログラムを前記記録媒体から読み出して、前記入力手段が入力したプログラム情報と共に所定のメモリに格納するか否かを、前記入力手段が入力したプログラム情報に基づいて判断する第１の判断手段と、
前記第１の判断手段が格納すると判断した場合に、前記入力手段が入力したプログラム情報に関連付けたプログラムを前記記録媒体から読み出し、前記入力手段が入力したプログラム情報と共に前記メモリに格納する格納制御手段と
を備えることを特徴とする。
【０００９】
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
【００１０】
すなわち、プログラム、及び当該プログラムに関するプログラム情報を関連付けて記録した記録媒体とのデータ通信が可能な情報処理装置の制御方法であって、
前記記録媒体からプログラム情報を入力する入力工程と、
前記入力工程で入力したプログラム情報に関連付けたプログラムを前記記録媒体から読み出して、前記入力工程で入力したプログラム情報と共に所定のメモリに格納するか否かを、前記入力工程で入力したプログラム情報に基づいて判断する第１の判断工程と、
前記第１の判断工程で格納すると判断した場合に、前記入力工程で入力したプログラム情報に関連付けたプログラムを前記記録媒体から読み出し、前記入力工程で入力したプログラム情報と共に前記メモリに格納する格納制御工程と
を備えることを特徴とする。
【発明の効果】
【００１１】
本発明の構成により、メモリカード等の記録媒体に格納されているプログラムに係る処理を簡便に行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１３】
［第１の実施形態］
図１は、本実施形態に係る情報処理装置として機能するコンピュータの基本構成を示す図である。以下、このコンピュータをプログラム実行装置と呼称する場合がある。
【００１４】
１０１はコンピュータ本体を示し、以下説明する各部を備える。
【００１５】
１０２は中央処理装置（以下、ＣＰＵ）で、主記憶装置１０３に格納されているプログラム、データを用いてコンピュータ１０１全体の制御、後述する各処理を行うと共に、コンピュータ１０１と外部記憶媒体スロット１０９を介して接続される外部記憶媒体１０８とのデータ通信を制御する。
【００１６】
１０３はＲＡＭなどにより構成されている主記憶装置で、この主記憶装置１０３は、外部記憶装置１０６からロードされるプログラムやデータを一時的に記録するためのエリアを備えると共に、外部記憶媒体１０８から外部記憶媒体スロット１０９を介してコンピュータ１０１内に入力されるプログラムやデータを一時的に記録するためのエリアを備える。また、主記憶装置１０３は、ＣＰＵ１０２が各種の処理を行う際に使用するワークエリアを備える。
【００１７】
１０４は表示装置で、ＣＲＴや液晶画面などにより構成されており、各種プログラムの実行中の画面の表示などを行うために利用される。
【００１８】
１０５は例えばボタン群により構成される入力装置であって、ＣＰＵ１０２に対して各種の指示を入力することができる。なお、表示装置１０４がタッチパネル形式のものである場合には、入力装置１０５は表示装置１０４と一体化されたものとなる。
【００１９】
１０６は外部記憶装置で、ここにＯＳ（オペレーティングシステム）やＣＰＵ１０２に後述する各処理を実行させるために必要なプログラムやデータが保存されている。また、外部記憶媒体１０８から外部記憶媒体スロット１０９を介してコンピュータ１０１内に入力されるプログラムやデータを保存することもできる。
【００２０】
１０９は外部記憶媒体スロットで、コンピュータ１０１が外部記憶媒体１０８とのデータ通信を行うためのＩ／Ｆとして機能するものであり、本実施形態では外部記憶媒体１０８を外部記憶媒体スロット１０９に接続することで、コンピュータ１０１はこの外部記憶媒体スロット１０９を介して外部記憶媒体１０８とのデータ通信を行うことができるのであるが、外部記憶装置１０６によっては無線通信を行うものも想定可能であるので、その場合には外部記憶媒体スロット１０９は、無線信号でもってコンピュータ１０１と外部記憶媒体１０８とのデータ通信を行うためのＩ／Ｆとして機能するものとなる。これは外部記憶媒体１０８が有線通信を行う場合も同様である。
【００２１】
１０８はメモリカード等の外部記憶媒体で、この外部記憶媒体１０８には、各種のアプリケーションソフトウェアのプログラム、及び各プログラムに対応するプログラム情報が格納されている。プログラム情報については詳しくは後述する。
【００２２】
上記構成を有するコンピュータ１０１では、外部記憶媒体１０８を外部記憶媒体スロット１０９に装着（接続）すると、本コンピュータ１０１のＣＰＵ１０２は外部記憶媒体１０８に格納されているプログラム情報を基にプログラムを読み出し、外部記憶装置１０６に格納するとともに、そのプログラムを主記憶装置１０３に読み出して実行する。また、プログラム実行中の画面は表示装置１０４に表示されると共に、実行中のプログラムに対する入力は、入力装置１０６によって行なわれる。
【００２３】
図２は、コンピュータ１０１、及び外部記憶媒体１０８の機能構成を示す図である。
【００２４】
先ず外部記憶媒体１０８の機能構成について説明する。同図において２０１は外部記憶媒体１０８内のプログラム情報管理部であり、プログラム格納部２０４に格納されているそれぞれのプログラム２０５，２０６に関する情報が記述されたプログラム情報２０２、２０３を含んでいる。なお、同図では２組（１組とはプログラムとプログラム情報とのセットを指す）を示しているが、以下の説明は２組に限定するものではない。
【００２５】
２０２は第１のプログラム情報であり、対応するプログラム（同図では第１のプログラム２０５）が動作可能な機器固有のＩＤ（機器ＩＤ）、このプログラムのＩＤ（プログラムＩＤ）、常時起動フラグ、使用回数、最終起動日時、及び削除フラグから構成されている。
【００２６】
２０３は第２のプログラム情報であり、第１のプログラム情報２０２と同じ構成を有するが、プログラムＩＤは第１のプログラム情報２０２とは異なり、ＩＤ＝２である。
【００２７】
２０４は外部記憶媒体１０８内のプログラム格納部であり、第１のプログラム２０５、第２のプログラム２０６を含んでいる。
【００２８】
第１のプログラム２０５のプログラム情報は、第１のプログラム情報２０２で記述されている。第２のプログラム２０６のプログラム情報は、第２のプログラム情報２０３で記述されている。このように、プログラムとプログラム情報とはプログラムＩＤでもって互いに関連付けられて外部記憶媒体１０８内で管理されている。
【００２９】
次に、コンピュータ１０１の機能構成について説明する。同図において２０８はプログラム情報読込み部であり、外部記憶媒体１０８内のプログラム情報管理部２０１に格納されているプログラム情報２０２、２０３を読込む。
【００３０】
２０９はプログラム情報解析部であり、プログラム情報読込み部２０８によって読込まれたプログラム情報を解析する。
【００３１】
２１０は機器情報取得部であり、コンピュータ１０１固有のＩＤをコンピュータ１０１内から取得する。
【００３２】
２１１はプログラム読込み部であり、外部記憶媒体１０８内のプログラム格納部２０４に格納されているプログラム２０５、２０６を読込む。
【００３３】
２１２はプログラム格納部であり、プログラム情報解析部２０９によって解析されたプログラム情報内の常時起動フラグがＴＲＵＥの場合には、このプログラム情報に対応するプログラムを外部記憶媒体１０８からプログラム読込み部２１１によって読込み、このプログラム情報と共に外部記憶装置１０６に格納する。さらに、プログラム情報内の削除フラグがＴＲＵＥの場合に機器から外部記憶媒体１０８が取出された時は、このプログラム情報、及びこのプログラム情報に対応するプログラムが外部記憶装置１０６に格納されている場合には、このプログラム、及びプログラム情報を削除する。
【００３４】
２１３はプログラム実行部であり、プログラム情報解析部２０９によって解析されたプログラム情報内の常時起動フラグがＴＲＵＥの場合は、このプログラム情報に対応するプログラムを外部記憶装置１０６から主記憶装置１０３に読み込んで実行し、一方、常時起動フラグがＦＡＬＳＥの場合は、プログラムを実行するよう指示がなされた時にこのプログラム情報に対応するプログラムを外部記憶装置１０６から主記憶装置１０３に読み込んで実行する。
【００３５】
２１４はプログラム情報変更部であり、プログラム情報内のデータを変更し、変更後のデータを外部記憶媒体１０８内のプログラム情報管理部２０１、及び外部記憶装置１０６に上書きして格納する。
【００３６】
図３は、外部記憶媒体１０８内のプログラム情報管理部２０１に格納されているプログラム情報２０２、２０３の一例を示す図である。同図において３０１は、外部記憶媒体１０８内のプログラム格納部２０４に格納されているプログラム（プログラムＩＤが１のプログラム）が実行可能な機器ＩＤは”Ｄｅｖｉｃｅ  １０”であることを示しており、これは即ち、”Ｄｅｖｉｃｅ  １０”という機器ＩＤを有する機器では動作可能であるが、それ以外の機器では実行出来ないことを意味する。実行できない理由の１つとして、プログラムが機器特有のハードウェア資源やソフトウェアを使用するため、それをサポートしていない他の機器では実行できないことが上げられる。
【００３７】
３０２はプログラム格納部２０４に格納されているプログラムを識別するためのプログラムＩＤであり、この例では１を示している。すなわち、同図のプログラム情報は、プログラムＩＤが１のプログラムに対応するものであることを示している。
【００３８】
３０３は常時起動フラグであり、この例ではTRUEを示している。この常時起動フラグがTRUEの場合は、外部記憶媒体１０８が機器に装着された場合に、外部記憶媒体１０８内のプログラム、プログラム情報を外部記憶装置１０６に格納後、格納したプログラムを実行することを意味している。一方、常時起動フラグがFALSEの場合は、外部記憶媒体１０８内のプログラム、プログラム情報を機器内の外部記憶装置１０６に格納せず、プログラムを実行するよう指示がなされた時に外部記憶媒体１０８内のプログラムを直接実行することを意味している。
【００３９】
３０４は使用回数であり、プログラムが今までに何回起動されたかを示し、この例では今までに３０回起動されたことを示している。常時起動フラグ３０３がTRUEの場合、プログラム、プログラム情報を外部記憶装置１０６に格納するが、この時、外部記憶装置１０６に空き容量がない場合には、どのプログラム、プログラム情報を削除するかを決定するための１つの指標としてこの使用回数が使用される。なお、この使用回数はプログラムが実行される度にプログラム情報変更部２１４によって１つカウントアップされる。
【００４０】
３０５は最終起動日時であり、プログラムが最後に起動された日時を示し、この例では２００３／０２／１９の１５:３０に起動されたことを示している。常時起動フラグ３０３がTRUEの場合、プログラム、プログラム情報を外部記憶装置１０６に格納するが、この時、外部記憶装置１０６に空き容量がない場合には、どのプログラム、プログラム情報を削除するかを決定するための１つの指標としてこの最終起動日時が使用される。使用回数３０４の情報を基に削除するか、最終起動日時３０５の情報を基に削除するか、あるいは使用回数と最終起動日時の組合せによって削除するかは、選択できるものとする。なお、この最終起動日時はプログラムが実行される度にプログラム情報変更部２１４によって更新される。
【００４１】
３０６は削除フラグであり、この例ではFALSEを示している。この削除フラグがFALSEの場合は、機器から外部記憶媒体１０８が取出された時に外部記憶装置１０６に格納されているプログラム、プログラム情報は削除しないことを意味している。一方、削除フラグがTRUEの場合は、機器から外部記憶媒体１０８が取出された時に外部記憶装置１０６に格納されているプログラム、プログラム情報を削除することを意味している。
【００４２】
図４は、外部記憶媒体１０８内のプログラム情報管理部２０１に格納されているプログラム情報２０２、２０３の他の一例を示す図である。同図において４０１は、外部記憶媒体１０８内のプログラム格納部２０４に格納されているプログラム（プログラムＩＤが２のプログラム）が実行可能な機器ＩＤは”＊”であることを示しており、これはプログラムが標準のソフトウェアのみを使用しており、機器特有のハードウェア資源やソフトウェアを使用していないため、任意の機器で動作可能であることを意味している。
【００４３】
４０２はプログラム格納部２０４に格納されているプログラムを識別するためのプログラムＩＤであり、この例では２を示している。すなわち、同図のプログラム情報は、プログラムＩＤが２のプログラムに対応するものであることを示している。
【００４４】
４０３は常時起動フラグであり、この例ではTRUEなので、外部記憶媒体１０８が機器に装着された時、外部記憶媒体１０８内のプログラム、プログラム情報を機器内の外部記憶装置１０６に格納後、格納したプログラムを実行することを意味している。
【００４５】
４０４は使用回数であり、プログラムが今までに何回起動されたかを示し、この例では今までに５回起動されたことを示している。
【００４６】
４０５は最終起動日時であり、プログラムが最後に起動された日時を示し、この例では２００２／０５／０１の０９:２０に起動されたことを示している。
【００４７】
４０６は削除フラグであり、この例ではTRUEなので、機器から外部記憶媒体１０８が取出された時に機器内の外部記憶装置１０６に格納されているプログラム、プログラム情報を削除することを意味している。
【００４８】
図５は、コンピュータ１０１の外部記憶媒体スロット１０９に外部記憶媒体１０８を装着したときに、コンピュータ１０１のＣＰＵ１０２が実行する処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１０２に実行させるためのプログラムは外部記憶装置１０６から主記憶装置１０３にロードされているものとする。
【００４９】
また、このプログラムは、図２に示したプログラム情報読込み部２０８、プログラム情報解析部２０９、機器情報取得部２１０、プログラム読込み部２１１、プログラム格納部２１２、プログラム実行部２１３、プログラム情報変更部２１４の各部の機能をＣＰＵ１０２によって実行させるためのものである。
【００５０】
また、このプログラムは、コンピュータ１０１の外部記憶媒体スロット１０９に外部記憶媒体１０８（以下では例としてメモリカードとする）が装着された時に、この外部記憶媒体１０８内のプログラム情報に基づいてプログラムを読み込み、起動するまでの制御手順に対応する。
【００５１】
ＣＰＵ１０２は、外部記憶媒体スロット１０９にメモリカードが挿入されたか否かを常に監視している（ステップＳ１）。そして外部記憶媒体スロット１０９にメモリカードが挿入されると、外部記憶媒体スロット１０９からその旨の信号がＣＰＵ１０２に通知されるので、ＣＰＵ１０２はこれを検知し、「メモリカードが挿入された」と判断し、処理をステップＳ１からステップＳ２に進める。
【００５２】
そして、メモリカード内のプログラム情報管理部２０１に保持されているプログラム情報を読み込み、主記憶装置１０３に一時的に記憶させる（ステップＳ２）。次に、外部記憶装置１０６から主記憶装置１０３に予めロードされている「コンピュータ１０１の機器ＩＤ」と、ステップＳ２で主記憶装置１０３に読み込んだプログラム情報内の機器ＩＤとを参照し（ステップＳ３）、両方の機器ＩＤを比較して、ステップＳ２で読み込んだプログラム情報に関連付けられたプログラムが、コンピュータ１０１でもって動作可能なものであるか否かを判断する（ステップＳ４）。
【００５３】
この判断処理では、例えばコンピュータ１０１の機器ＩＤとステップＳ２で読み込んだプログラム情報内の機器ＩＤとが一致する、もしくはステップＳ２で読み込んだプログラム情報内の機器ＩＤが「＊」である場合には、ステップＳ２で読み込んだプログラム情報に関連付けられたプログラムは、コンピュータ１０１でもって動作可能なものであると判断する。
【００５４】
このような判断処理により、ステップＳ２で読み込んだプログラム情報に関連付けられたプログラムが、コンピュータ１０１でもって動作可能なものではないと判断された場合には処理をステップＳ１１に進める。
【００５５】
一方、ステップＳ２で読み込んだプログラム情報に関連付けられたプログラムが、コンピュータ１０１でもって動作可能なものであると判断された場合には処理をステップＳ５に進め、ステップＳ２で読み込んだプログラム情報中の常時起動フラグを参照し（ステップＳ５）、常時起動フラグがTRUEであるか否かをチェックする（ステップＳ６）。
【００５６】
常時起動フラグがTRUEではない場合には処理をステップＳ１１に進める。一方、常時起動フラグがTRUEである場合には処理をステップＳ７に進め、ステップＳ２で読み込んだプログラム情報に関連付けられたプログラムが外部記憶装置１０６に既にコピー済かどうかを判断し（ステップＳ７）、コピー済みの場合には処理をステップＳ９に進める。一方、まだコピーされていない場合には処理をステップＳ８に進め、このプログラムを外部記憶媒体１０８から読み出し、このプログラムに関連付けられたプログラム情報（すなわちステップＳ２で読み込んだプログラム情報）と共に外部記憶装置１０６にコピーする処理を行う（ステップＳ８）。ステップＳ８における処理の詳細については後述する。
【００５７】
そしてコピー後、ＣＰＵ１０２はこのプログラムを、プログラム実行部２１３のプログラムでもって実行し（ステップＳ９）、実行後、実行したプログラムのプログラム情報（ステップＳ２で読み込んだプログラム情報）を、プログラム情報更新部２１４のプログラムを実行することで更新する（ステップＳ１０）。更新の内容は、使用回数（使用した回数に更新する）や最終起動日時（現在日時に更新する）などの情報である。そして更新後のプログラム情報は、外部記憶媒体スロット１０９を介して外部記憶媒体１０８に出力され、上書き保存される。また、更新したプログラム情報は外部記憶装置１０６にも出力され、保存される。
【００５８】
次に、メモリカード内に含まれる全てのプログラムについてステップＳ３からステップＳ１０の処理が行われたかどうかを判断し（ステップＳ１１）、全て処理されたた場合には同図のフローチャートに従った処理を終了するのであるが、まだ全て処理されていない場合には処理をステップＳ３に戻し、以降の処理を行う。
【００５９】
なお、同図のフローチャートではステップＳ６にて常時起動フラグがＦＡＬＳＥの場合には、ステップＳ１１の全てのプログラムについて処理が終わったかどうか判断する処理に移行しているが、ステップＳ２で読み込んだプログラム情報に対応するプログラムに対して入力装置１０５から実行指示が入力された場合にこのプログラムを実行するようにしても良い。
【００６０】
図６は、上記ステップＳ８における、ステップＳ２で読み込んだプログラム情報、及びこのプログラム情報に関連付けているプログラムを外部記憶装置１０６にコピーする処理の詳細を示すフローチャートである。
【００６１】
先ず、ＣＰＵ１０２は、ステップＳ２で読み込んだプログラム情報に対応するプログラムを外部記憶媒体１０８から主記憶装置１０３に読み出し（ステップＳ１０１）、読み出したプログラム、及びステップＳ２で読み込んだプログラム情報を保持するために必要な空き容量が外部記憶装置１０６内に存在するか否かをチェックする（ステップＳ１０２）。
【００６２】
空き領域がある場合には処理をステップＳ１０５に進め、ＣＰＵ１０２は、ステップＳ１０１で主記憶装置１０３に読み出したプログラム、及びステップＳ２で読み込んだプログラム情報を外部記憶装置１０６にコピーする（ステップＳ１０５）。
【００６３】
一方、空き容量がない場合には処理をステップＳ１０３に進め、外部記憶装置１０６に保存されている各プログラムのうち、実行中でないものの中から、関連付けているプログラム情報内の使用回数が最も少ないものを選択する（ステップＳ１０３）。すなわち外部記憶装置１０６に保存されているプログラムのうち、最も使用回数が少ないプログラムを、各プログラムに関連付けているプログラム情報中の「使用回数」を参照することにより特定する。
【００６４】
そしてステップＳ１０３で選択（特定）したプログラム、及びこのプログラムに関連付けているプログラム情報を外部記憶装置１０６から削除する処理を行う（ステップＳ１０４）。そして削除処理後、再び処理をステップＳ１０２に戻し、再度、外部記憶装置１０６に空き容量があるか否かを判断する。このようにステップＳ１０２からステップＳ１０４までの各処理を、「外部記憶装置１０６に空き容量が存在する」まで行うことにより、外部記憶装置１０６内に、ステップＳ２で読み込んだプログラム情報、及びこのプログラム情報に関連付けているプログラムを保存することができる状態を設定することができる。
【００６５】
なお、同図のフローチャートに従った処理では、外部記憶装置１０６内に空き容量が無い場合には、使用回数が少ない順にプログラム、及びこのプログラムに関連付けられたプログラム情報を削除することにより対処しているが、この対処方法はこれに限定されるものではなく、例えばステップＳ１０３では、外部記憶装置１０６に保存されている各プログラムのうち、実行中でないものの中から、対応するプログラム情報内の最終起動日時が最も古いものを選択するようにする。そしてステップＳ１０４において、ステップＳ１０３で選択（特定）したプログラム、及びこのプログラムに関連付けられたプログラム情報を外部記憶装置１０６から削除する処理を行う。
【００６６】
このように、外部記憶装置１０６内の空き容量を増大させるための対処方法についてはプログラムの使用回数に限定されるものではない。また、各プログラムに対する重要度（本実施形態では使用回数、最終起動日時）をプログラム情報に含ませておけば、ステップＳ１０３ではこの重要度を参照し、重要度が最も低い（本実施形態では使用回数が最も少ない、最終起動日時が最も古い）プログラムを選択するようにすればよく、ステップＳ１０４ではステップＳ１０３で選択したプログラム、及びこのプログラムに関連付けられたプログラム情報を削除するようにすればよい。
【００６７】
図７は、外部記憶媒体スロット１０９からメモリカードが取り外された場合に、コンピュータ１０１のＣＰＵ１０２が行う処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１０２に実行させるためのプログラムは外部記憶装置１０６から主記憶装置１０３にロードされているものとする。
【００６８】
ＣＰＵ１０２は、外部記憶媒体スロット１０９にメモリカードが装着されている場合、このメモリカードが取り外されたか否かを常に監視している（ステップＳ２０１）。そして外部記憶媒体スロット１０９からメモリカードが取り外されると、外部記憶媒体スロット１０９からその旨の信号がＣＰＵ１０２に通知されるので、ＣＰＵ１０２はこれを検知し、「メモリカードが取り外された」と判断し、処理をステップＳ２０１からステップＳ２０２に進める。
【００６９】
取り外された場合には、ＣＰＵ１０２は、外部記憶装置１０６が保持する各プログラム情報中の削除フラグを参照し（ステップＳ２０２）、参照した削除フラグがＴＲＵＥであるか否かをチェックする（ステップＳ２０３）。
【００７０】
削除フラグがTRUEである場合には処理をステップＳ２０４に進め、ステップＳ２０２で参照した削除フラグを含むプログラム情報、及びこのプログラム情報に関連付けられたプログラムを外部記憶装置１０６から削除する処理を行う（ステップＳ２０４）。
【００７１】
そして、外部記憶装置１０６が保持する全てのプログラム情報中の削除フラグを参照したか否かをチェックし、全てについてチェックしていない場合には処理をステップＳ２０２に戻し、以降の処理を繰り返す。
【００７２】
以上の説明のとおり、本実施形態によれば、ユーザの操作を介さずにメモリカードに記録されているプログラムをコンピュータ内の記憶装置に格納して実行することができる。
【００７３】
また、コンピュータから外部記憶媒体が取り出された場合に削除したいプログラムがあれば、このプログラムに対応するプログラム情報中の削除フラグをＴＲＵＥにしておくことで、ユーザの操作を介さずにコンピュータ内の記憶装置からこのプログラムを削除できる。これにより、例えば他人がこのコンピュータを使用する場合、このコンピュータの所有者にのみライセンスされているプログラムが他人に無断で使用されるのを防ぐことができるという効果がある。
【００７４】
さらに、プログラム情報内の機器ＩＤとコンピュータの機器ＩＤと比較し、記憶媒体内のプログラムがコンピュータで動作できないと判断した場合は、プログラムをコンピュータ記憶装置に格納しないと同時に実行もしないので、無駄に記憶装置を使用しないと共に無駄な実行を防ぐことができるという効果がある。
【００７５】
［第２の実施形態］
第１の実施形態では、プログラム情報内の常時起動フラグがＴＲＵＥの場合は、このプログラム情報と外部記憶媒体１０８内のプログラムとを外部記憶装置１０６に格納した後でプログラムを実行していたが、プログラム情報内にプログラムの使用上限回数、又は使用可能最終日時を設定しておくことで、このプログラムが例えば評価版やデモ版のプログラムであった場合に、このプログラムに対する使用制限を設けることも可能になる。
【００７６】
図８は、本実施形態に係るプログラム情報の構成例を示す図である。同図において図３と同じ部分については同じ番号を付けており、その説明を省略する。本実施形態に係るプログラム情報は、第１の実施形態に係るプログラム情報の構成に、新たに使用上限回数８０１を加えた構成を備える。使用上限回数８０１は、プログラムが起動できる上限の回数を示し、この例では３５回まで起動できることを意味している。同図では、使用回数３０４の回数が３０回なので、あと５回起動できることになる。
【００７７】
図９は、本実施形態に係るプログラム情報の別の構成例を示す図である。同図に示したプログラム情報は、図３に示した構成に使用可能最終日時９０１を加えた構成を備える。使用可能最終日時９０１はプログラムが起動できる最終日時を示し、この例では２００３／０２／２５の００:００まで起動できることを意味している。
【００７８】
このように、本実施形態に係るプログラム情報は、対応するプログラム（同図ではプログラムＩＤが１のプログラム）に対して使用期限を設定することができる。なお、使用期限を示す情報（図８では使用上限回数、図９では使用可能最終日時）はこれに限定されるものではない。
【００７９】
なお、図８、図９に示したプログラム情報では、外部記憶媒体１０８がコンピュータ１０１から取り出された時、削除フラグがFALSEなので外部記憶装置１０６からプログラム、及びプログラム情報を削除しないが、別の例として、使用上限回数や使用可能最終日時の制限により起動できないと判断された場合は、たとえ削除フラグがFALSEであったとしても外部記憶装置１０６からプログラムを削除してもよい。
【００８０】
図１０は、コンピュータ１０１の外部記憶媒体スロット１０９に外部記憶媒体１０８を装着したときに、コンピュータ１０１のＣＰＵ１０２が実行する、本実施形態に係る処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１０２に実行させるためのプログラムは外部記憶装置１０６から主記憶装置１０３にロードされているものとする。
【００８１】
また、このプログラムは、図２に示したプログラム情報読込み部２０８、プログラム情報解析部２０９、機器情報取得部２１０、プログラム読込み部２１１、プログラム格納部２１２、プログラム実行部２１３、プログラム情報変更部２１４の各部の機能をＣＰＵ１０２によって実行させるためのものである。
【００８２】
また、このプログラムは、コンピュータ１０１の外部記憶媒体スロット１０９に外部記憶媒体１０８（以下では例としてメモリカードとする）が装着された時に、この外部記憶媒体１０８内のプログラム情報に基づいてプログラムを読み込み、起動するまでの制御手順に対応する。
【００８３】
ＣＰＵ１０２は、外部記憶媒体スロット１０９にメモリカードが挿入されたか否かを常に監視している（ステップＳ３０１）。そして外部記憶媒体スロット１０９にメモリカードが挿入されると、外部記憶媒体スロット１０９からその旨の信号がＣＰＵ１０２に通知されるので、ＣＰＵ１０２はこれを検知し、「メモリカードが挿入された」と判断し、処理をステップＳ３０１からステップＳ３０２に進める。
【００８４】
そして、メモリカード内のプログラム情報管理部２０１に保持されているプログラム情報を読み込み、主記憶装置１０３に一時的に記憶させておく（ステップＳ３０２）。次に、外部記憶装置１０６から主記憶装置１０３に予めロードされている「コンピュータ１０１の機器ＩＤ」と、ステップＳ３０２で主記憶装置１０３に読み込んだプログラム情報内の機器ＩＤとを参照し（ステップＳ３０３）、両方の機器ＩＤを比較して、ステップＳ３０２で読み込んだプログラム情報に関連付けられたプログラムが、コンピュータ１０１でもって動作可能なものであるか否かを判断する（ステップＳ３０４）。この判断処理は第１の実施形態と同様にして行う。
【００８５】
このような判断処理により、ステップＳ３０２で読み込んだプログラム情報に対応するプログラムが、コンピュータ１０１でもって動作可能なものではないと判断された場合には処理をステップＳ３１３に進める。
【００８６】
一方、ステップＳ３０２で読み込んだプログラム情報に対応するプログラムが、コンピュータ１０１でもって動作可能なものであると判断された場合には処理をステップＳ３０５に進め、ステップＳ３０２で読み込んだプログラム情報中の「使用回数」と「使用上限回数」とを参照し（ステップＳ３０５）、「使用回数」が「使用上限回数」に達しているか否かを判断する（ステップＳ３０６）。
【００８７】
達している場合には処理をステップＳ３１３に進める。一方、達していない場合には処理をステップＳ３０７に進め、ステップＳ３０２で読み込んだプログラム情報中の常時起動フラグを参照し（ステップＳ３０７）、常時起動フラグがTRUEであるか否かをチェックする（ステップＳ３０８）。
【００８８】
常時起動フラグがTRUEではない場合には処理をステップＳ３１３に進める。一方、常時起動フラグがTRUEである場合には処理をステップＳ３０９に進め、ステップＳ３０２で読み込んだプログラム情報に対応するプログラムが外部記憶装置１０６に既にコピー済かどうかを判断し（ステップＳ３０９）、コピー済みの場合には処理をステップＳ３１１に進める。一方、まだコピーされていない場合には処理をステップＳ３１０に進め、このプログラムを外部記憶媒体１０８から読み出し、このプログラムに関連付けられたプログラム情報（すなわちステップＳ３０２で読み込んだプログラム情報）と共に外部記憶装置１０６にコピーする処理を行う（ステップＳ３１０）。ステップＳ３１０における処理は上記ステップＳ８と同様にして行う。
【００８９】
そしてコピー後、ＣＰＵ１０２はこのプログラムを、プログラム実行部２１３のプログラムでもって実行し（ステップＳ３１１）、実行後、実行したプログラムのプログラム情報（ステップＳ３０２で読み込んだプログラム情報）を、プログラム情報更新部２１４のプログラムを実行することで更新する（ステップＳ３１２）。更新の内容は、使用回数（プログラムを使用した回数に更新する）や最終起動日時（現在日時に更新する）などの情報などの情報である。そして更新後のプログラム情報は、外部記憶媒体スロット１０９を介して外部記憶媒体１０８に出力され、上書き保存される。また、更新したプログラム情報は外部記憶装置１０６にも出力され、保存される。
【００９０】
次に、メモリカード内に含まれる全てのプログラムについてステップＳ３０３からステップＳ３１２の処理が行われたかどうかを判断し（ステップＳ３１３）、全て処理された場合には同図のフローチャートに従った処理を終了するのであるが、まだ全て処理されていない場合には処理をステップＳ３０３に戻し、以降の処理を行う。
【００９１】
なお同図のフローチャートは、プログラム情報が図８に示したように、図３に示した構成に使用上限回数が含まれている構成である場合のものであったが、プログラム情報が図９に示すような構成である場合、ステップＳ３０５では「最終起動日時」と「使用可能最終日時」とを参照し、ステップＳ３０６では、「最終起動日時」が「使用可能最終日時」よりも過去の日時であるか否かを判断する処理を行う。そして「最終起動日時」が「使用可能最終日時」よりも過去の日時である場合には処理をステップＳ３０７に進め、「最終起動日時」が「使用可能最終日時」よりも過去の日時ではない場合には処理をステップＳ３１３に進めるようにすればよい。
【００９２】
また、上述のように、使用期限を示す情報はこれに限定されるものではないので、ステップＳ５０３では使用期限をチェックするための情報を参照し、ステップＳ３０６では参照した結果、使用期限を満たす（使用回数が使用上限回数よりも少ない、最終起動日時が使用可能最終日時よりも過去の日時等）か否かを判断すればよい。
【００９３】
また、同図のフローチャートではステップＳ３０８にて常時起動フラグがＦＡＬＳＥの場合には、ステップＳ３１３の全てのプログラムについて処理が終わったかどうか判断する処理に移行しているが、ステップＳ３０２で読み込んだプログラム情報に対応するプログラムに対して入力装置１０５から実行指示が入力された場合にこのプログラムを実行するようにしても良い。
【００９４】
以上の説明のように、本実施形態によって、プログラム情報内にプログラムの使用上限回数、又は使用可能最終日時を設定しておくので、プログラムの実行を無条件に許可するのではなく、評価版やデモ版のプログラムに対して使用制限を設けることができる。
【００９５】
［第３の実施形態］
第１の実施形態では、プログラムを外部記憶装置１０６にコピーする処理の手順において、コピーするために必要な空き領域がない場合は、外部記憶装置１０６にコピー済のプログラムで、かつ実行中でないものの中から使用回数が一番少ないものを無条件に選択してプログラム情報と共に削除し、それからコピーを行っていたが、空き領域がない場合にコピー処理を行うか行わないかのフラグをプログラム情報内に設けることで、空き領域領域がない場合はコピーしないという柔軟さを与えることも可能になる。
【００９６】
図１１は、本実施形態に係るプログラム情報の構成例を示す図である。同図において図３と同じ部分については同じ番号を付けており、その説明を省略する。本実施形態に係るプログラム情報は、第１の実施形態に係るプログラム情報の構成に、新たに空き領域がない場合のコピー処理フラグ１１０１を加えた構成を備える。フラグ１１０１は、空き領域がない場合のコピー処理フラグであり、空き領域がない場合には無条件にプログラムを選択して削除し、それからコピーを行うかどうかを示し、この例ではFALSEなのでコピー処理を行わないことを意味している。
【００９７】
コンピュータ１０１の外部記憶媒体スロット１０９に外部記憶媒体１０８を装着したときに、コンピュータ１０１のＣＰＵ１０２が実行する処理のフローチャートは第１の実施形態と同じであるが、ステップＳ８における処理の詳細のみが第１の実施形態とは異なる。
【００９８】
図１２は、本実施形態に係るステップＳ８における処理の詳細を示すフローチャートである。
【００９９】
先ず、ＣＰＵ１０２は、ステップＳ２で読み込んだプログラム情報に対応するプログラムを外部記憶媒体１０８から主記憶装置１０３に読み出し（ステップＳ４０１）、読み出したプログラム、及びステップＳ２で読み込んだプログラム情報を保持するために必要な空き容量が外部記憶装置１０６内に存在するか否かをチェックする（ステップＳ４０２）。
【０１００】
空き領域がある場合には処理をステップＳ４０７に進め、ＣＰＵ１０２は、ステップＳ１０１で主記憶装置１０３に読み出したプログラム、及びステップＳ２で読み込んだプログラム情報を外部記憶装置１０６にコピーする（ステップＳ４０７）。
【０１０１】
一方、空き容量がない場合には処理をステップＳ４０３に進め、ステップＳ２で読み込んだプログラム情報中の上記コピー処理フラグを参照し（ステップＳ４０３）、コピー処理フラグがＴＲＵＥであるか否かをチェックする（ステップＳ４０４）。
【０１０２】
コピー処理フラグがＴＲＵＥの場合には処理をステップＳ４０５に進め、外部記憶装置１０６に保存されている各プログラムのうち、実行中でないものの中から、対応するプログラム情報内の使用回数が最も少ないものを選択する（ステップＳ４０５）。すなわち外部記憶装置１０６に保存されているプログラムのうち、最も使用回数が少ないプログラムを、各プログラムに対応するプログラム情報中の「使用回数」を参照することにより特定する。
【０１０３】
そしてステップＳ４０５で選択（特定）したプログラム、及びこのプログラムに対応するプログラム情報を外部記憶装置１０６から削除する処理を行う（ステップＳ４０６）。そして削除処理後、再び処理をステップＳ４０２に戻し、再度、外部記憶装置１０６に空き容量があるか否かを判断する。このようにステップＳ４０２からステップＳ４０６までの各処理を、「外部記憶装置１０６に空き容量が存在する」まで行うことにより、外部記憶装置１０６内に、ステップＳ２で読み込んだプログラム情報、及びこのプログラム情報に関連付けられたプログラムを保存することができる状態を設定することができる。
【０１０４】
なお、同図のフローチャートに従った処理では、外部記憶装置１０６内に空き容量が無い場合には、使用回数が少ない順にプログラム、及びこのプログラム情報を削除することにより対処しているが、この対処方法はこれに限定されるものではなく、例えばステップＳ４０５では、外部記憶装置１０６に保存されている各プログラムのうち、実行中でないものの中から、対応するプログラム情報内の最終起動日時が最も古いものを選択するようにする。そしてステップＳ４０６において、ステップＳ４０５で選択（特定）したプログラム、及びこのプログラムに対応するプログラム情報を外部記憶装置１０６から削除する処理を行う。
【０１０５】
このように、外部記憶装置１０６内の空き容量を増大させるための対処方法についてはプログラムの使用回数に限定されるものではない。また、各プログラムに対する重要度（本実施形態では使用回数、最終起動日時）をプログラム情報に含ませておけば、ステップＳ１０３ではこの重要度を参照し、重要度が最も低い（本実施形態では使用回数が最も少ない、最終起動日時が最も古い）プログラムを選択するようにすればよく、ステップＳ１０４ではステップＳ１０３で選択したプログラム、及びこのプログラムに対応するプログラム情報を削除するようにすればよい。
【０１０６】
以上説明したように、本実施形態によって、空き領域がない場合のコピー処理フラグをプログラム情報内に設定しておくので、コピー済のプログラムを無条件に選択して削除するのではなく、空き領域領域がない場合はコピーしないという柔軟さを与えることができる。
【０１０７】
［第４の実施形態］
上記第３の実施形態では、空き領域がない場合にコピー処理を行うか行わないかのフラグをプログラム情報内に設け、コピー処理を行う場合は、第１の実施形態と同様に、外部記憶装置１０６にコピー済のプログラムで、かつ実行中でないものの中から使用回数が一番少ないものを無条件に選択して削除していたが、本実施形態では、未実行のプログラムの一覧を表示装置１０４の表示画面上に表示することで、どのプログラムを削除するかをコンピュータ１０１の使用者に入力装置１０５でもって選択してもらう。
【０１０８】
コンピュータ１０１の外部記憶媒体スロット１０９に外部記憶媒体１０８を装着したときに、コンピュータ１０１のＣＰＵ１０２が実行する処理のフローチャートは第１の実施形態と同じであるが、ステップＳ８における処理の詳細のみが第１の実施形態とは異なる。
【０１０９】
図１３は、本実施形態に係るステップＳ８における処理の詳細を示すフローチャートである。
【０１１０】
先ず、ＣＰＵ１０２は、ステップＳ２で読み込んだプログラム情報に対応するプログラムを外部記憶媒体１０８から主記憶装置１０３に読み出し（ステップＳ５０１）、読み出したプログラム、及びステップＳ２で読み込んだプログラム情報を保持するために必要な空き容量が外部記憶装置１０６内に存在するか否かをチェックする（ステップＳ５０２）。
【０１１１】
空き領域がある場合には処理をステップＳ５０８に進め、ＣＰＵ１０２は、ステップＳ５０１で主記憶装置１０３に読み出したプログラム、及びステップＳ２で読み込んだプログラム情報を外部記憶装置１０６にコピーする（ステップＳ５０８）。
【０１１２】
一方、空き容量がない場合には処理をステップＳ５０３に進め、ステップＳ２で読み込んだプログラム情報中の上記コピー処理フラグを参照し（ステップＳ５０３）、コピー処理フラグがＴＲＵＥであるか否かをチェックする（ステップＳ５０４）。
【０１１３】
コピー処理フラグがＴＲＵＥの場合には処理をステップＳ５０５に進め、外部記憶装置１０６に保存されている各プログラムのうち、実行中でないものの一覧を表示装置１０４の表示画面上に表示する（ステップＳ５０５）。表示すべき情報としては、例えば、プログラムのファイル名や、このプログラムに関連付けられたプログラム情報が含む情報の一部もしくは全部である。
【０１１４】
コンピュータ１０１の操作者はこの画面を見て、削除しても良いプログラムを選択する。この選択には入力装置１０５を用いて行う。選択方法としては、例えば、「削除しても良いプログラム」を１つ選択してから入力装置１０５に割り当てられた決定ボタンを押下することで、削除指示をＣＰＵ１０２に送信するようにしても良いし、複数「削除しても良いプログラム」を選択してから決定ボタンを押下して、削除指示をＣＰＵ１０２に送信するようにしても良い。
【０１１５】
いずれにせよＣＰＵ１０２は入力装置１０５を用いての「削除しても良いプログラム」の選択指示、及び削除指示を検知すると（ステップＳ５０６）、ステップＳ５０５で選択（特定）したプログラム、及びこのプログラムに対応するプログラム情報を外部記憶装置１０６から削除する処理を行う（ステップＳ５０７）。そして削除処理後、再び処理をステップＳ５０２に戻し、再度、外部記憶装置１０６に空き容量があるか否かを判断する。このようにステップＳ５０２からステップＳ５０７までの各処理を、「外部記憶装置１０６に空き容量が存在する」まで行うことにより、外部記憶装置１０６内に、ステップＳ２で読み込んだプログラム情報、及びこのプログラム情報に関連付けられたプログラムを保存することができる状態を設定することができる。
【０１１６】
以上説明したように、本実施形態によって、外部記憶装置に空き領域がない場合、未実行のプログラムの一覧を表示することで、どのプログラムを削除するかを使用者が選択することが可能になる。また、例えプログラム情報内の使用回数が一番少ないものでも削除したくないということがあるため、使用者に選択してもらうことで柔軟な対応が可能になる。
【０１１７】
［第５の実施形態］
第４の実施形態では、外部記憶装置に空き領域がない場合に未実行のプログラムの一覧を表示し、どのプログラムを削除するかを使用者に選択してもらう例であったが、本実施形態では、選択されたプログラムを削除してプログラムのコピーが可能になった場合に、コンピュータ１０１のシステム状況を調べる処理を追加することで、さらに安全にコピー処理を行う。
【０１１８】
コンピュータ１０１の外部記憶媒体スロット１０９に外部記憶媒体１０８を装着したときに、コンピュータ１０１のＣＰＵ１０２が実行する処理のフローチャートは第１の実施形態と同じであるが、ステップＳ８における処理の詳細のみが第１の実施形態とは異なる。
【０１１９】
図１４は、本実施形態に係るステップＳ８における処理の詳細を示すフローチャートである。
【０１２０】
先ず、ＣＰＵ１０２は、ステップＳ２で読み込んだプログラム情報に対応するプログラムを外部記憶媒体１０８から主記憶装置１０３に読み出し（ステップＳ６０１）、読み出したプログラム、及びステップＳ２で読み込んだプログラム情報を保持するために必要な空き容量が外部記憶装置１０６内に存在するか否かをチェックする（ステップＳ６０２）。
【０１２１】
空き領域がある場合には処理をステップＳ６０８に進め、コンピュータ１０１の状態がコピー可能な状態であるか否かをチェックする（ステップＳ６０８）。コピー可能でない状況の例として、コピーするプログラムがプログラムで共通に使われるライブラリの更新を伴うものであり、他の実行中のプログラムがそのライブラリを使用中である場合などが挙げられる。
【０１２２】
そしてコピー可能な状況であった場合には処理をステップＳ６０９に進め、ＣＰＵ１０２は、ステップＳ６０１で主記憶装置１０３に読み出したプログラム、及びステップＳ２で読み込んだプログラム情報を外部記憶装置１０６にコピーする（ステップＳ６０９）。
【０１２３】
一方、空き容量がない場合には処理をステップＳ６０３に進め、ステップＳ２で読み込んだプログラム情報中の上記コピー処理フラグを参照し（ステップＳ６０３）、コピー処理フラグがＴＲＵＥであるか否かをチェックする（ステップＳ６０４）。
【０１２４】
コピー処理フラグがＴＲＵＥの場合には処理をステップＳ６０５に進め、外部記憶装置１０６に保存されている各プログラムのうち、実行中でないものの一覧を表示装置１０４の表示画面上に表示する（ステップＳ６０５）。表示すべき情報としては、例えば、プログラムのファイル名や、このプログラムに関連付けられたプログラム情報が含む情報の一部もしくは全部である。
【０１２５】
コンピュータ１０１の操作者はこの画面を見て、削除しても良いプログラムを選択する。この選択には入力装置１０５を用いて行う。選択方法としては、例えば、「削除しても良いプログラム」を１つ選択してから入力装置１０５に割り当てられた決定ボタンを押下することで、削除指示をＣＰＵ１０２に送信するようにしても良いし、複数「削除しても良いプログラム」を選択してから決定ボタンを押下して、削除指示をＣＰＵ１０２に送信するようにしても良い。
【０１２６】
いずれにせよＣＰＵ１０２は入力装置１０５を用いての「削除しても良いプログラム」の選択指示、及び削除指示を検知すると（ステップＳ６０６）、ステップＳ６０５で選択（特定）したプログラム、及びこのプログラムに対応するプログラム情報を外部記憶装置１０６から削除する処理を行う（ステップＳ６０７）。そして削除処理後、再び処理をステップＳ６０２に戻し、再度、外部記憶装置１０６に空き容量があるか否かを判断する。このようにステップＳ６０２からステップＳ６０７までの各処理を、「外部記憶装置１０６に空き容量が存在する」まで行うことにより、外部記憶装置１０６内に、ステップＳ２で読み込んだプログラム情報、及びこのプログラム情報に関連付けられたプログラムを保存することができる状態を設定することができる。
【０１２７】
以上説明したように、本実施形態によって、プログラム、プログラム情報のコピーを行っても良い状況であるかどうかを調べる処理が追加されているため、さらに安全にコピー処理を行うことが可能になるという効果がある。
【０１２８】
［第６の実施形態］
上記第１の乃至５の実施形態のそれぞれにおいて説明した処理をＣＰＵ１０２に実行させるためのプログラムを外部記憶装置１０６に記憶させておき、操作者が入力装置１０５でもってその内の１つを主記憶装置１０３にロードさせる指示を入力し、ＣＰＵ１０２がこの指示を検知して指示されたプログラムを主記憶装置１０３にロードさせるようにしても良い。
【０１２９】
図１５は、第１乃至５の実施形態のそれぞれにおいて説明した処理をＣＰＵ１０２に実行させるためのプログラム群を格納する外部記憶装置１０６内の記録エリアの構成例を示す図である。
【０１３０】
同図において「第１の制御プログラムに対応するプログラムコード群」は、第１の実施形態において説明した処理をＣＰＵ１０２に実行させるためのプログラムのコード群を示し、「第２の制御プログラムに対応するプログラムコード群」は、第２の実施形態において説明した処理をＣＰＵ１０２に実行させるためのプログラムのコード群を示し、「第３の制御プログラムに対応するプログラムコード群」は、第３の実施形態において説明した処理をＣＰＵ１０２に実行させるためのプログラムのコード群を示し、「第４の制御プログラムに対応するプログラムコード群」は、第４の実施形態において説明した処理をＣＰＵ１０２に実行させるためのプログラムのコード群を示し、「第５の制御プログラムに対応するプログラムコード群」は、第５の実施形態において説明した処理をＣＰＵ１０２に実行させるためのプログラムのコード群を示す。
【０１３１】
また特に図示しないが、同図の記録エリアには、記憶されるプログラム群を管理する情報、例えばバージョン情報、作成者等を記憶し、かつプログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等を記憶するようにしてもよい。
【０１３２】
さらに、各種プログラムに従属するデータも管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合、解凍するプログラム等を記憶するようにしてもよい。また、上記各実施形態は適宜組み合わせても良く、例えばプログラム情報の構成や、その構成に伴う処理内容を適宜複数の実施形態を組み合わせて適用しても良い。
【０１３３】
以上の実施形態によって、以下のような効果がある。
【０１３４】
先ず、プログラムが格納された外部記憶媒体をコンピュータに装着するだけで、常時起動するよう指定されたプログラムは自動的にコンピュータ内の外部記憶装置に格納され、実行されるので、煩雑なユーザ操作が不要になるという効果がある。
【０１３５】
また、既にコンピュータ内の外部記憶装置に格納してあるプログラムは、次回からは比較的低速な外部記憶媒体からプログラムを読み込む必要がないので高速に実行できるという効果がある。
【０１３６】
また、コンピュータから外部記憶媒体が取り出された時、外部記憶装置内から削除するよう指定されたプログラムは自動的に削除されるので、操作者による煩雑な操作が不要になるだけでなく、このコンピュータをこの操作者以外の他人が使用する場合、このコンピュータの所有者にのみライセンスされているプログラムが他人に無断で使用されるのを防ぐことができるという効果がある。
【０１３７】
さらに、プログラム情報内の機器ＩＤとコンピュータ本体の機器ＩＤと比較し、プログラムが本コンピュータで動作できない場合は、プログラムをコンピュータ内の外部記憶装置に格納しないと同時に実行もしないので、無駄に外部記憶装置を使用しないと共に無駄な実行を防ぐことができるという効果がある。
【０１３８】
また、プログラム情報内にプログラムの使用上限回数、又は使用可能最終日時を設定しておくので、評価版やデモ版のプログラムに対して使用制限を設けることができるという効果がある。
【０１３９】
一方、外部記憶装置に空き領域がない場合、コピー処理を行うのかどうかのフラグをプログラム情報内に設定できるので、コピー済のプログラムを無条件に選択して削除するのではなく、コピーしないという柔軟さも与えることができるという効果がある。
【０１４０】
また、未実行のプログラムの一覧を表示することで、どのプログラムを削除するかをコンピュータの操作者が選択できるので、さらに柔軟な対応も可能になるという効果がある。
【０１４１】
さらには、プログラムのコピー時に、コピーを行っても良いシステム状態であるかどうかを事前に調べるので、安全にコピー処理が行えるという効果がある。
【０１４２】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１４３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４４】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４５】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャート（機能構成）に対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１４６】
【図１】本発明の第１の実施形態に係る情報処理装置として機能するコンピュータの基本構成を示す図である。
【図２】コンピュータ１０１、及び外部記憶媒体１０８の機能構成を示す図である。
【図３】外部記憶媒体１０８内のプログラム情報管理部２０１に格納されているプログラム情報２０２、２０３の一例を示す図である。
【図４】外部記憶媒体１０８内のプログラム情報管理部２０１に格納されているプログラム情報２０２、２０３の他の一例を示す図である。
【図５】コンピュータ１０１の外部記憶媒体スロット１０９に外部記憶媒体１０８を装着したときに、コンピュータ１０１のＣＰＵ１０２が実行する処理のフローチャートである。
【図６】ステップＳ８における、ステップＳ２で読み込んだプログラム情報、及びこのプログラム情報に関連付けているプログラムを外部記憶装置１０６にコピーする処理の詳細を示すフローチャートである。
【図７】外部記憶媒体スロット１０９からメモリカードが取り外された場合に、コンピュータ１０１のＣＰＵ１０２が行う処理のフローチャートである。
【図８】本発明の第２の実施形態に係るプログラム情報の構成例を示す図である。
【図９】本発明の第２の実施形態に係るプログラム情報の別の構成例を示す図である。
【図１０】コンピュータ１０１の外部記憶媒体スロット１０９に外部記憶媒体１０８を装着したときに、コンピュータ１０１のＣＰＵ１０２が実行する、本発明の第２の実施形態に係る処理のフローチャートである。
【図１１】本発明の第３の実施形態に係るプログラム情報の構成例を示す図である。
【図１２】本発明の第３の実施形態に係るステップＳ８における処理の詳細を示すフローチャートである。
【図１３】本発明の第４の実施形態に係るステップＳ８における処理の詳細を示すフローチャートである。
【図１４】本発明の第５の実施形態に係るステップＳ８における処理の詳細を示すフローチャートである。
【図１５】第１乃至５の実施形態のそれぞれにおいて説明した処理をＣＰＵ１０２に実行させるためのプログラム群を格納する外部記憶装置１０６内の記録エリアの構成例を示す図である。
【図１】
2005346473.tif 000003
【図２】
2005346473.tif 000004
【図３】
2005346473.tif 000005
【図４】
2005346473.tif 000006
【図５】
2005346473.tif 000007
【図６】
2005346473.tif 000008
【図７】
2005346473.tif 000009
【図８】
2005346473.tif 000010
【図９】
2005346473.tif 000011
【図１０】
2005346473.tif 000012
【図１１】
2005346473.tif 000013
【図１２】
2005346473.tif 000014
【図１３】
2005346473.tif 000015
【図１４】
2005346473.tif 000016
【図１５】
2005346473.tif 000017