(57)【特許請求の範囲】
【請求項１】
エラーメッセージを出力しないモードでプログラムの処理を実行させる実行手段と、
前記プログラムの処理の実行に失敗したか否かを判定する判定手段と、
前記判定手段が前記プログラムの処理の実行に失敗したと判定した場合、エラーメッセージを出力するモードで前記プログラムの処理を再実行させる再実行手段とを有し、
前記再実行手段が前記プログラムの処理を再実行させた結果、前記プログラムの処理に異常が発生した場合に、エラーメッセージが出力されることを特徴とする情報処理装置。
【請求項２】
前記エラーメッセージを出力するモードは前記エラーメッセージを対象に出力するモードであり、前記再実行手段が前記プログラムの処理を再実行させた結果、前記プログラムの処理に異常が発生した場合に、エラーメッセージが前記対象に出力されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記再実行手段は、前記実行手段が前記エラーメッセージを出力しないモードで前記プログラムの処理を実行させた前記プログラムの処理が全て終了した後に、前記エラーメッセージを出力するモードで前記プログラムの処理を再実行させることを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記プログラムの処理を実行する前に前記情報処理装置の状態を保存する保存手段と、
前記再実行手段が前記エラーメッセージを出力するモードで前記プログラムの処理を再実行させる前に、前記保存手段が保存する前記情報処理装置の状態を復元する復元手段とを有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記プログラムが前記エラーメッセージを出力しないモードを持っていない場合、前記実行手段は、前記エラーメッセージを出力するモードで前記プログラムの処理を実行させることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
コンピュータに、
エラーメッセージを出力しないモードでプログラムの処理を実行させる実行工程と、
前記プログラムの処理の実行に失敗したか否かを判定する判定工程と、
前記判定工程で前記プログラムの処理の実行に失敗したと判定された場合、エラーメッセージを出力するモードで前記プログラムの処理を再実行させる再実行工程とを実行させ、
前記再実行工程で前記プログラムの処理を再実行させた結果、前記プログラムの処理に異常が発生した場合に、エラーメッセージが出力されることを特徴とするプログラム。
【請求項７】
コンピュータに、
前記エラーメッセージを出力するモードは前記エラーメッセージを対象に出力するモードであり、前記再実行工程で前記プログラムの処理を再実行させた結果、前記プログラムの処理に異常が発生した場合に、エラーメッセージが前記対象に出力されることを特徴とする請求項６に記載のプログラム。
【請求項８】
コンピュータに、
前記再実行工程は、前記実行工程で前記エラーメッセージを出力しないモードで前記プログラムの処理を実行させた前記プログラムの処理が全て終了した後に、前記エラーメッセージを出力するモードで前記プログラムの処理を再実行させることを特徴とする請求項６又は請求項７に記載のプログラム。
【請求項９】
コンピュータに、
前記プログラムの処理を実行する前に前記コンピュータの状態を保存する保存工程と、
前記再実行工程で前記エラーメッセージを出力するモードで前記プログラムの処理を再実行させる前に、前記保存工程で保存する前記コンピュータの状態を復元する復元工程とを実行させることを特徴とする請求項６乃至８のいずれか１項に記載のプログラム。
【請求項１０】
コンピュータに、
前記プログラムが前記エラーメッセージを出力しないモードを持っていない場合、前記実行工程は、前記エラーメッセージを出力するモードで前記プログラムの処理を実行させることを特徴とする請求項６乃至９のいずれか１項に記載のプログラム。
【請求項１１】
エラーメッセージを出力しないモードでプログラムの処理を実行させる実行手段と、
前記プログラムの処理の実行に失敗したか否かを判定する判定手段と、
前記判定手段が前記プログラムの処理の実行に失敗したと判定した場合、エラーメッセージを出力するモードで前記プログラムの処理を再実行させる再実行手段とを有し、
前記再実行手段が前記プログラムの処理を再実行させた結果、前記プログラムの処理に異常が発生した場合に、エラーメッセージが出力されることを特徴とするシステム。
【請求項１２】
前記エラーメッセージを出力するモードは前記エラーメッセージを対象に出力するモードであり、前記再実行手段が前記プログラムの処理を再実行させた結果、前記プログラムの処理に異常が発生した場合に、エラーメッセージが前記対象に出力されることを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記再実行手段は、前記実行手段が前記エラーメッセージを出力しないモードで前記プログラムの処理を実行させた前記プログラムの処理が全て終了した後に、前記エラーメッセージを出力するモードで前記プログラムの処理を再実行させることを特徴とする請求項１１又は請求項１２に記載のシステム。
【請求項１４】
前記プログラムの処理を実行する前に前記システムの状態を保存する保存手段と、
前記再実行手段が前記エラーメッセージを出力するモードで前記プログラムの処理を再実行させる前に、前記保存手段が保存する前記システムの状態を復元する復元手段とを有することを特徴とする請求項１１乃至１３のいずれか１項に記載のシステム。
【請求項１５】
前記プログラムが前記エラーメッセージを出力しないモードを持っていない場合、前記実行手段は、前記エラーメッセージを出力するモードで前記プログラムの処理を実行させることを特徴とする請求項１１乃至１４のいずれか１項に記載のシステム。
【請求項１６】
実行手段がエラーメッセージを出力しないモードでプログラムの処理を実行させる実行工程と、
判定手段が前記プログラムの処理の実行に失敗したか否かを判定する判定工程と、
再実行手段が、前記判定工程で前記プログラムの処理の実行に失敗したと判定された場合、エラーメッセージを出力するモードで前記プログラムの処理を再実行させる再実行工程とを有し、
前記再実行工程で前記プログラムの処理を再実行させた結果、前記プログラムの処理に異常が発生した場合に、エラーメッセージが出力されることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションをインストールする機能を有するインストーラによって複数のアプリケーションをまとめてインストールする情報処理装置及びシステムと制御方法、プログラムに関する。
【背景技術】
【０００２】
従来、情報処理装置へ複数のアプリケーションをインストールする場合に、次の２つのプログラムによってインストールが行なわれるのが一般的である。一つ目は、ある一つのアプリケーションを情報処理装置へインストールする機能を持つプログラム（単体インストーラ）である。２つ目は、複数の単体インストーラを順番に呼び出すプログラム（統合インストーラ）である。そして、この統合インストーラが順番に単体インストーラを実行することにより、すべてのアプリケーションのインストールを行なう。
【０００３】
尚、各々の単体インストーラは、その実行時に使用許諾契約文書の表示とその同意や、インストール先のフォルダ指定など、ユーザに様々な操作を求めることが一般的である。この場合、統合インストーラで複数の単体インストーラを呼び出すと、多くの単体インストーラを呼び出せば呼び出す程、その分だけユーザの入力の手間も増大し、ユーザに負担をかけてしまうという問題が存在する。
【０００４】
そこで、特許文献１には、単体インストーラの一つ一つに対してユーザが入力を行なう手間を省くために、予めユーザが入力すべき情報を一定の場所に保存しておき、その情報に基づきインストールを行なう方法が開示されている。この方法によれば、ユーザに余計な手間をかけさせること無く、インストールが行なえる。
【０００５】
また、特許文献２には、個々のインストーラにおいて使用許諾契約文書やインストール先の指定のための画面を表示せず、たとえ表示したとしても一定時間で次の画面に進めることで、ユーザの手間を無くす方法が開示されている。
【０００６】
また、統合インストーラにて複数のアプリケーションをインストールする際には、その全てのアプリケーションが同じ仕様では無いことが有り得る。例えば、Ｘ、Ｙ、Ｚの３種類のアプリケーション用の単体インストーラの仕様がそれぞれ異なる場合がある。
【０００７】
そこで、特許文献３には、複数種類の単体インストーラが予め統一されたエラーコードを統合インストーラに渡すように仕様を統一しておく。一方、統合インストーラ側はそのエラーコードを見ることで、予め定められたエラーメッセージを表示する方法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開2006-048527号公報
【特許文献２】特開2005-100083号公報
【特許文献３】特開平11-353187号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１では、予めユーザが入力すべき情報を一定の場所に保存しておかなければならないという制約が存在した。また、初めてインストールを行なう場合、その情報が無いため、結局入力を行なわなくてはならないという問題があった。
【００１０】
また、特許文献２では、ユーザがディスプレイを見ていない時に、使用許諾契約文書に同意していないにも関わらず、同意したことにさせられてしまうという問題があった。また、インストール処理中に何らかの問題が発生し、インストールが失敗した場合でも、勝手に次の処理に進んでしまう。その場合、その失敗理由を画面に表示したとしてもユーザが見ていない間に次の画面に進んでしまうことで、ユーザがその理由を知ることができない、という問題があった。
【００１１】
また、特許文献３では、元々仕様が異なっていた複数の単体インストーラを全て改造する必要がある。エラーコードの統一は仕様の根幹に関わるため、その改造のためには開発工数やコストが大幅にかかってしまうという問題があった。また、単体インストーラによっては諸事情により改造が不可能な場合もあり、その場合、この方法を使うことができなかった。また、もしある一つの単体インストーラに今までに認識されていなかった特殊な問題が見つかり、その問題が今までに規定されていたエラーコードでは表現できない時、エラーコード仕様を改訂する必要がある。その場合、その単体インストーラだけではなく他の単体インストーラや統合インストーラにも、その新仕様に応じた改造が必要になってしまう。その結果、少しの修正が全体に影響してしまうという問題があった。
【００１２】
本発明は、プログラムを実行する際に、エラーメッセージを出力しないモードでプログラムが実行されている場合でも、当該プログラムの実行が失敗した場合にはエラーメッセージを出力させ、プログラムの実行の失敗をユーザに知らしめることを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、エラーメッセージを出力しないモードでプログラムの処理を実行させる実行手段と、前記プログラムの処理の実行に失敗したか否かを判定する判定手段と、前記判定手段が前記プログラムの処理の実行に失敗したと判定した場合、エラーメッセージを出力するモードで前記プログラムの処理を再実行させる再実行手段とを有し、前記再実行手段が前記プログラムの処理を再実行させた結果、前記プログラムの処理に異常が発生した場合に、エラーメッセージが出力されることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、プログラムを実行する際に、エラーメッセージを出力しないモードでプログラムが実行されている場合でも、当該プログラムの実行が失敗した場合にはエラーメッセージを出力させ、プログラムの実行の失敗をユーザに知らしめることができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態における統合インストーラを実現するためのハードウェア構成の一例を示す図である。
【図２】第１の実施形態におけるコンピュータシステムのソフトウェア構成の一例を示す図である。
【図３】第１の実施形態におけるアプリケーション情報テーブルの構成の一例を示す図である。
【図４】第１の実施形態における統合インストーラの処理手順を示すフローチャートである。
【図５】図４に示す使用許諾契約文書一括表示処理（Ｓ４０１）を示すフローチャートである。
【図６】第１の実施形態における使用許諾契約文書の表示例を示す図である。
【図７】第１の実施形態における単体インストーラ実行処理を示すフローチャートである。
【図８】第１の実施形態における単体インストーラ処理を示すフローチャートである。
【図９】第１の実施形態における使用許諾契約文書の表示例を示す図である。
【図１０】第２の実施形態における統合インストーラの処理手順を示すフローチャートである。
【図１１】第２の実施形態における単体インストーラ実行処理を示すフローチャートである。
【図１２】各アプリケーションがサイレントインストールモードを持つか否かを示す図である。
【図１３】第３の実施形態における統合インストーラの処理手順を示すフローチャートである。
【図１４】アプリケーションのインストールに成功した場合、どの程度ハードディスク使用容量が増え、またシステム上にどのようなデータが作成されるかを定義したアプリケーション情報テーブルを示す図である。
【図１５】第４の実施形態における統合インストーラの処理手順を示すフローチャートである。
【図１６】第４の実施形態におけるコンピュータ状態取得処理を示すフローチャートである。
【図１７】第４の実施形態におけるコンピュータ状態復元処理を示すフローチャートである。
【図１８】第４の実施形態におけるインストール成否判断処理を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１７】
［第１の実施形態］
図１は、第１の実施形態における統合インストーラを実現するためのハードウェア構成の一例を示す図である。ここでは、パーソナルコンピュータなどの一般的なコンピュータシステム（情報処理装置）を例に挙げて説明するが、専用のハードウェアで構成されても良い。
【００１８】
１０１はシステム全体を制御する制御部（ＣＰＵ）である。１０２は各種データを入力するキーボードである。１０４は１０６のＲＡＭに貯えられている画像データを表示するカラー表示器である。尚、キーボード１０２及び表示器１０４は、ユーザインタフェースとして機能する。また、キーボード１０２には、表示器１０４上に表示されたボタンなどを指示するマウスが含まれても良い。
【００１９】
１０５はシステム全体を制御する制御手順とその他の必要な情報を予め記憶するＲＯＭである。１０６はＣＰＵ１０１がプログラムを実行する際に、使用されるワークエリアや各種テーブルなどで構成されるＲＡＭである。
【００２０】
１０７は各種データの読み書きやプログラムが格納されているハードディスクドライブである。１０８はシステムバスであり、各種データを転送するために用いられる。１０３はＣＤＲＯＭドライブである。
【００２１】
ハードディスクドライブ１０７やＣＤＲＯＭドライブ１０３は総称して外部記憶装置と呼ばれ、アプリケーションプログラムやインストーラ、プリンタドライバなどが格納されており、ＲＡＭ１０６にロードされてＣＰＵ１０１により制御される。
【００２２】
図２は、第１の実施形態におけるコンピュータシステムのソフトウェア構成の一例を示す図である。２０１はコンピュータシステムであり、このシステム上で様々なプログラムが動いている。２０３はこのコンピュータシステム２０１の中心となるオペレーティングシステムである。２０４はキーボードドライバであり、ユーザがキーボード１０２を操作すると、その操作の結果を受け取り、オペレーティングシステム２０３へ伝える。２０５はモニタドライバであり、オペレーティングシステム２０３がこのモニタドライバ２０５に命令を行なうことで、表示器１０４にユーザへ提示したい情報を表示する。
【００２３】
２０２は統合インストーラであり、自身の中に内包する複数の単体インストーラを実行することにより、オペレーティングシステム２０３へのアプリケーションのインストールを行なう。２０６、２０８、２１０は単体インストーラであり、それぞれ別々のアプリケーション２０７、２０９、２１１を内包している。単体インストーラ２０６、２０８、２１０は、統合インストーラ２０２から呼び出されると、内包するアプリケーション２０７、２０９、２１１をオペレーティングシステム２０３へインストールする。
【００２４】
従って、アプリケーション２０７、２０９、２１１がオペレーティングシステム２０３にインストールされることにより、ユーザは様々な機能を使うことができる。
【００２５】
図３は、第１の実施形態におけるアプリケーション情報テーブルの構成の一例を示す図である。３００は統合インストーラ２０２によって所持され、単体インストーラ２０６、２０８、２１０の処理を実行する際に必要な情報が記載されたテーブルである。その情報には、以下のようなものがある。
【００２６】
各アプリケーション（３０１）の単体インストーラがどのようなモードを持っているか（３０２）。また、サイレントインストールモードで実行されてインストールを行なっている最中にインストールに失敗した場合、エラーメッセージを表示するか否か（３０３）。更に、使用許諾契約文書の種類（３０４）。
【００２７】
以上の構成において、統合インストーラ２０２がそれぞれの単体インストーラ２０６、２０８、２１０にアプリケーション２０７、２０９、２１１のインストールを行なわせる処理の基本的な流れを、図４を用いて説明する。
【００２８】
図４は、第１の実施形態における統合インストーラの処理手順を示すフローチャートである。統合インストーラ２０２が開始されると、Ｓ４０１で、使用許諾契約文書一括表示処理を行なう。この使用許諾契約文書一括表示処理の詳細については後述する。そして、使用許諾契約文書一括表示処理の結果、インストールするアプリケーションが決定すると、Ｓ４０２へ処理を進め、サイレントインストールモードで単体インストーラ実行処理を行なう。この単体インストーラ実行処理の詳細については後述する。
【００２９】
次に、Ｓ４０３で、単体インストーラ実行処理の処理結果である戻り値が“１”か否かを判定する。ここで、戻り値が“１”の場合は、アプリケーションのインストールに成功したことを意味する。判定した結果、戻り値が“１”の場合は、Ｓ４０９へ処理を進めるが、戻り値が“１”でない場合は、Ｓ４０４へ処理を進める。
【００３０】
このＳ４０４では、図３に示すアプリケーション情報テーブル３００から、Ｓ４０２でインストールを行なったアプリケーションの情報３０２〜３０４を読み込む。
【００３１】
次に、Ｓ４０５で、この単体インストーラがサイレントインストールモードでもエラーメッセージを自分で表示するタイプか否かを判定する。ここで、アプリケーションの情報３０３がＹｅｓの場合は、エラーメッセージを自分で表示するタイプと判定し（Ｓ４０５でＹｅｓ）、Ｓ４０９へ処理を進める。
【００３２】
一方、アプリケーションの情報３０３がＮｏの場合は、サイレントインストールモードではエラーメッセージを表示しないタイプと判定し（Ｓ４０５でＮｏ）、Ｓ４０６へ処理を進める。このＳ４０６では、使用許諾契約文書非表示モードを持つか否かを判定する。ここで、アプリケーションの情報３０２がＹｅｓの場合は、使用許諾契約文書非表示モードを持つと判定し（Ｓ４０６でＹｅｓ）、Ｓ４０７へ処理を進める。このＳ４０７では、使用許諾契約文書非表示モードでの単体インストール実行処理を行ない、Ｓ４０９へ処理を進める。
【００３３】
一方、アプリケーションの情報３０２がＮｏの場合は、使用許諾契約文書非表示モードを持たないと判定し（Ｓ４０６でＮｏ）、Ｓ４０８へ処理を進める。このＳ４０８では、通常モードでの単体インストール実行処理を行ない、Ｓ４０９へ処理を進める。このように、Ｓ４０８で、インストールに失敗した単体インストーラに通常モードでインストールを再実行させることにより、エラーメッセージを表示させることができる。
【００３４】
次に、Ｓ４０９では、全てのインストールを終了したか否かを判定する。ここで、まだ実行していない単体インストーラがある場合には（Ｓ４０９でＮｏ）、上述したＳ４０２に処理を戻し、上述の処理を繰り返す。しかし、全てのインストールを終了した場合には（Ｓ４０９でＹｅｓ）、この統合インストーラ処理を終了する。
【００３５】
図５は、図４に示す使用許諾契約文書一括表示処理（Ｓ４０１）を示すフローチャートである。使用許諾契約文書一括処理が始まると、Ｓ５０１で、EULAリストとインストールアプリリストの中身を空にする。ここで、EULAリストは、どのアプリの使用許諾契約文書を表示するのかを記憶するためのリストである。インストールアプリリストは、使用許諾契約文書に対してユーザの同意又は非同意に関する入力を得た結果、実際にインストールするアプリケーションを記憶するためのリストである。
【００３６】
次に、Ｓ５０２で、統合インストーラに同梱されているアプリケーション用の使用許諾契約文書と同じ文書が、EULAリストに登録済みか否かを調べる。ここで、まだ登録されていない場合は（Ｓ５０２でＮｏ）、Ｓ５０３へ処理を進め、その使用許諾契約文書をEULAリストに登録する。尚、あるアプリの使用許諾契約文書が他のアプリと同じ使用許諾文書か否かは、図３に示すアプリケーション情報テーブル３００の情報３０４を参照する。
【００３７】
一方、既に登録されている場合は（Ｓ５０２でＹｅｓ）、Ｓ５０３の処理を行なわずにＳ５０４へ処理を進める。このＳ５０４では、これまでの処理で作成されたEULAリストに登録されている使用許諾契約文書の一つ一つについて以下の処理を行なう。
【００３８】
まず、Ｓ５０５で、ユーザに対して使用許諾契約文書の表示を行なう。図６は、第１の実施形態における使用許諾契約文書の表示例を示す図である。６０１は現在の表示がどのアプリケーションの使用許諾契約文書かを示している。この例では、アプリケーションＡの使用許諾契約文書が表示されている。６０２は現在表示されているアプリケーションの名称である。６０３は現在表示されているアプリケーションの使用許諾契約文書の内容である。６０４、６０５はボタンであり、ボタン６０４をユーザが押下すると、現在表示中の使用許諾契約文書に同意したことを示す。また、ボタン６０５をユーザが押下すると、現在表示中の使用許諾契約文書に同意しなかったことを示す。
【００３９】
図５に戻り、Ｓ５０６で、ボタン６０４又は６０５が押下されるのを待ち、押下されると、Ｓ５０７へ処理を進め、ユーザの同意を得られたか否かを判断する。ここで、同意を得られた場合は（Ｓ５０７でＹｅｓ）、Ｓ５０８へ処理を進め、そのアプリケーションをインストールアプリリストに登録し、Ｓ５０９へ処理を進める。一方、ユーザが使用許諾契約文書に同意しなかった場合は（Ｓ５０７でＮｏ）、Ｓ５０８をスキップしてＳ５０９へ処理を進める。
【００４０】
Ｓ５０９では、全ての使用許諾契約文書に対して処理が終了したか否かを判定し、終了していなければ、Ｓ５０５に処理を戻し、上述の処理を繰り返す。一方、全ての使用許諾契約文書に対する処理が終了すると、この使用許諾契約文書一括表示処理を終了する。
【００４１】
以上の処理により、同じ使用許諾契約文書が複数回出現されることなく、１種類の使用許諾契約文書を１回のみ表示させることができる。また、同意を得たアプリケーションのみをインストールアプリリストに登録することで、実際にインストールを行なうアプリケーションを決定することができる。
【００４２】
図７は、第１の実施形態における単体インストーラ実行処理を示すフローチャートである。まず、Ｓ７０１で、単体インストーラ実行処理を呼び出したプロセスから伝えられた引数に基づいてサイレントインストールモードでインストールを実行すべきか否かを判断する。ここで、引数がサイレントインストールモードでの実行を示す場合には（Ｓ７０１でＹｅｓ）、Ｓ７０３へ処理を進める。Ｓ７０３では、サイレントインストールモードで単体インストーラを実行させ、Ｓ７０６へ処理を進める。
【００４３】
一方、引数がサイレントインストールモードでの実行を示していない場合には（Ｓ７０１でＮｏ）、Ｓ７０２へ処理を進める。Ｓ７０２では、引数が使用許諾契約文書非表示モードでの実行を示しているか否かを判断し、使用許諾契約文書非表示モードでの実行を示す場合には（Ｓ７０２でＹｅｓ）、Ｓ７０４へ処理を進める。Ｓ７０４では、使用許諾契約文書非表示モードで単体インストーラを実行させ、Ｓ７０６へ処理を進める。
【００４４】
また、引数が使用許諾契約文書非表示モードでの実行を示していない場合には（Ｓ７０２でＮｏ）、Ｓ７０５へ処理を進める。Ｓ７０５では、通常モードで単体インストーラを実行させ、Ｓ７０６へ処理を進める。
【００４５】
次に、Ｓ７０６では、実行すべきモードでの単体インストーラのプロセスが終了するのを待つ。その後、プロセスが終了すると（Ｓ７０６でＹｅｓ）、Ｓ７０７へ処理を進め、単体インストーラより戻り値を受け取り、単体インストーラの実行処理を終了する。
【００４６】
図８は、第１の実施形態における単体インストーラ処理を示すフローチャートである。単体インストーラの処理が開始されると、Ｓ８０１で、通常のインストールモードで実行するか否かを判定する。判定の結果、通常のインストールモードで実行する場合には（Ｓ８０１でＹｅｓ）、Ｓ８０２へ処理を進め、使用許諾契約文書の表示を行なう。
【００４７】
図９は、第１の実施形態における使用許諾契約文書の表示例を示す図である。尚、使用許諾契約文書の表示は各単体インストーラの仕様により異なっても良い。
【００４８】
図９において、９０１は単体インストーラの名称である。９０２は仕様許諾契約文書の表示領域である。９０３、９０４はボタンであり、ボタン９０３をユーザが押下すると、現在表示中の使用許諾契約文書に同意したことを示す。また、ボタン９０４をユーザが押下すると、その使用許諾契約文書に同意しなかったことを示す。
【００４９】
図８に戻り、Ｓ８０３で、ボタン９０３又は９０４が押下されるのを待ち、押下されると、Ｓ８０４へ処理を進め、ユーザの同意を得られたか否かを判断する。ここで、同意を得られた場合は（Ｓ８０４でＹｅｓ）、Ｓ８０５へ処理を進めるが、ユーザの同意が得られなければ（Ｓ８０４でＮｏ）、Ｓ８１３へ処理を進め、戻り値に“１”を設定して呼び出し元に返却する。ここで、戻り値が“１”とは、問題なくインストールが終了したことを意味する。また、実際には、インストールが行なわれていないにも関わらず、戻り値を“１”で返却するのは、このＳ８１３へ処理を進めた場合、ユーザが明確な意思を持ってインストールを中断したため、問題が無いという判断からである。
【００５０】
一方、サイレントインストールモード、使用許諾契約文書非表示モードで実行する場合には（Ｓ８０１でＮｏ）、Ｓ８０５へ処理を進め、アプリケーションのインストール処理を開始する。Ｓ８０６で、アプリケーションのインストール処理を実行中に、異常が発生したか否かを判断する。ここで、異常が発生した場合には（Ｓ８０６でＮｏ）、Ｓ８０７へ処理を進め、サイレントインストールモードで実行中か否かを判断する。判断の結果、サイレントインストールモードの場合は（Ｓ８０７でＹｅｓ）、Ｓ８０９へ処理を進めるが、サイレントインストールモードでない場合には（Ｓ８０７でＮｏ）、Ｓ８０８へ処理を進め、エラーメッセージの表示を行う。そして、Ｓ８０９へ処理を進める。
【００５１】
次に、Ｓ８０９で、全てのインストール処理が終了したか否かを判定し、終了していなければ、Ｓ８０６に戻り、上述した処理を繰り返す。その後、全てのインストール処理が終了すると（Ｓ８０９でＹｅｓ）、Ｓ８１０へ処理を進め、インストールの途中で何かの異常が発生したか否かを調べる。その結果、異常が発生してなければ、Ｓ８１１へ処理を進め、戻り値に“１”を設定して返却する。また、もし異常が発生していれば、Ｓ８１２へ処理を進め、戻り値に“０”設定して返却する。
【００５２】
一般的に、アプリケーションをインストールする場合、使用許諾契約文書を必ずユーザに対して表示した上で、ユーザの同意を貰わない限りインストールが行なえない。
【００５３】
また、サイレントインストールモードで実行する場合は、使用許諾契約文書も表示されなくなってしまい、インストールを行なうことができない。また、サイレントインストールが行なえたとしても、エラーメッセージも表示されなくなってしまい、万が一、問題が生じ、インストールに失敗した場合には、ユーザにとってはその問題が認識できない。
【００５４】
第１の実施形態では、実際にインストールが行なわれる前に、複数のアプリケーションの使用許諾契約文書を一括で予め表示し、使用許諾契約文書のへの同意のための入力作業を使用許諾契約文書一括表示処理の一箇所に集中させる。これにより、各アプリケーションの単体インストーラの実行処理の段階で、逐一入力を行う必要性が無くなり、単体インストーラをサイレントインストールモードで呼び出すことができる。
【００５５】
また、サイレントインストールモードでインストール中に何らかの問題が発生し、インストールに失敗した場合、通常モードで再実行させることにより、同じ問題を発生させる。これにより、サイレントインストールモードでは表示されなかったエラーメッセージを改めて表示させることができる。
【００５６】
尚、この場合、通常モードで単体インストーラを呼び出すと、図９の単体インストーラの使用許諾契約画面が表示されてしまう。これは図６で一括表示した使用許諾契約画面と同じ内容を示しており、ユーザにとっては同じ文面に対して二度同意しなくてはならなくなってしまう。
【００５７】
そこで、使用許諾契約文書非表示モードがある場合、使用許諾契約文書非表示モードを使うことにより、表示した使用許諾契約文書を極力二度表示しないようにする。
【００５８】
第１の実施形態によれば、インストールに失敗しても、サイレントインストールモードではエラーメッセージを表示することができない単体インストーラを、通常モードで再度呼び出しを行なう。これにより、同じ理由でインストールに失敗させ、エラーメッセージを表示させることができる。
【００５９】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態を詳細に説明する。尚、第２の実施形態のハードウェア構成とソフトウェア構成は、第１の実施形態のそれと同じであるため、説明は省略する。
【００６０】
図１０は、第２の実施形態における統合インストーラの処理手順を示すフローチャートである。統合インストーラ２０２が開始されると、Ｓ１００１で、使用許諾契約文書一括表示処理を行なう。この使用許諾契約文書一括表示処理は、第１の実施形態と同じであるため、説明は省略する。そして、使用許諾契約文書一括表示処理の結果、インストールするアプリケーションが決定すると、Ｓ１００２へ処理を進め、サイレントインストールモードで単体インストーラの実行処理を行なう。この単体インストーラ実行処理の詳細については後述する。
【００６１】
次に、Ｓ１００３で、単体インストーラのインストール処理が失敗したか否かを判定する。判定した結果、インストールに成功した場合は、Ｓ１００８へ処理を進めるが、インストールに失敗していることが分かった場合は、Ｓ１００４へ処理を進める。
【００６２】
このＳ１００４では、単体インストーラ実行処理中に、エラーメッセージが表示されたか否かを調べ、エラーメッセージを表示していた場合には、Ｓ１００８へ処理を進める。一方、エラーメッセージを表示していなかった場合には、Ｓ１００５へ処理を進め、この単体インストーラがEULA非表示モードを持っているか否かを調べる。ここで、EULA非表示モードがある場合には、Ｓ１００６へ処理を進め、EULA非表示モードでのインストールを行なう。しかし、EULA非表示モードがない場合には、Ｓ１００７へ処理を進め、通常モードでのインストールを行なう。
【００６３】
次に、Ｓ１００８では、全てのインストールを終了したか否かを判定する。ここで、まだ実行していない単体インストーラがある場合には、Ｓ１００２に処理を戻し、上述した処理を繰り返す。しかし、全てのアプリケーションの単体インストーラを実行した場合には、この統合インストーラ処理を終了する。
【００６４】
図１１は、第２の実施形態における単体インストーラ実行処理を示すフローチャートである。まず、Ｓ１１０１で、単体インストーラ実行処理を呼び出したプロセスから伝えられた引数に基づいてサイレントインストールモードでインストールを実行すべきか否かを判断する。ここで、引数がサイレントインストールモードでの実行を示す場合には（Ｓ１１０１でＹｅｓ）、Ｓ１１０３へ処理を進める。Ｓ１１０３では、サイレントインストールモードで単体インストーラを実行させ、Ｓ１１０８へ処理を進める。
【００６５】
一方、引数がサイレントインストールモードでの実行を示していない場合には（Ｓ１１０１でＮｏ）、Ｓ１１０２へ処理を進める。Ｓ１１０２では、引数が使用許諾契約文書非表示モードでの実行を示しているか否かを判断し、使用許諾契約文書非表示モードでの実行を示す場合には（Ｓ１１０２でＹｅｓ）、Ｓ１１０４へ処理を進める。Ｓ１１０４では、使用許諾契約文書非表示モードで単体インストーラを実行させ、Ｓ１１０６へ処理を進める。
【００６６】
また、引数が使用許諾契約文書非表示モードでの実行を示していない場合には（Ｓ１１０２でＮｏ）、Ｓ１１０５へ処理を進める。Ｓ１１０５では、通常モードで単体インストーラを実行させ、Ｓ１１０６へ処理を進める。
【００６７】
次に、Ｓ１１０６では、実行すべきモードでの単体インストーラのプロセスが終了するのを待つ。その後、プロセスが終了すると（Ｓ１１０６でＹｅｓ）、Ｓ１１０７へ処理を進め、単体インストーラより戻り値を受け取り、単体インストーラの実行処理を終了する。
【００６８】
一方、サイレントインストールモードのＳ１１０８では、単体インストーラのプロセスが所持するウィンドウを列挙する。そして、Ｓ１１０９で、列挙したウィンドウに基づき、新しいウィンドウが作られたか否かを判定する。ここで、新しいウィンドウが作られていなければ（Ｓ１１０９でＮｏ）、Ｓ１１１２へ処理を進める。
【００６９】
一方、新しいウィンドウが作られた場合には（Ｓ１１０９でＹｅｓ）、Ｓ１１１０へ処理を進め、そのウィンドウがエラーメッセージ用のウィンドウか否かを判断する。判断の結果、エラーメッセージ用のウィンドウでなければ（Ｓ１１１０でＮｏ）、Ｓ１１１２へ処理を進める。
【００７０】
また、エラーメッセージ用のウィンドウが新しく作られたならば（Ｓ１１１０でＹｅｓ）、エラーメッセージ用のウィンドウが表示されたことを記憶し、Ｓ１１１２へ処理を進める。
【００７１】
次に、Ｓ１１１２では、サイレンとインストールモードでの単体インストーラのプロセスが終了したか否かを判断し、終了していなければ、Ｓ１１０８に処理を戻し、上述した処理を繰り返す。その後、プロセスが終了すると（Ｓ１１１２でＹｅｓ）、Ｓ１１１３へ処理を進め、単体インストーラから戻り値を取得し、単体インストーラの実行処理を終了する。
【００７２】
尚、単体インストーラの中には、サイレントインストールモードを実装してはいるが、一部のエラーメッセージを表示しないで、残りのエラーメッセージだけを表示するものが存在する。
【００７３】
第２の実施形態では、単体インストーラ実行処理がサイレントインストールモードで実行中にエラーメッセージを表示したか否かを見張ることで、インストールに失敗したにも関わらず、エラーメッセージを表示していない問題を解決する。
【００７４】
第２の実施形態によれば、サイレントインストールに失敗した時に、エラーメッセージを表示していなければ、使用許諾契約非表示モード又は通常モードを実行することにより、改めて表示させることができる。
【００７５】
［第３の実施形態］
次に、図面を参照しながら本発明に係る第３の実施形態を詳細に説明する。尚、第３の実施形態のハードウェア構成とソフトウェア構成は、第１の実施形態のそれと同じであるため、説明は省略する。
【００７６】
第１又は第２の実施形態では、インストールに失敗した時にすぐにインストールの再実行を行なっていた。しかし、再実行をその場で行なう場合、例えば７個のアプリをインストールしなければならないとき、１番目、３番目、５番目、７番目のアプリのインストールに失敗すると、途切れ途切れに通常のインストールが実行される。その結果、ユーザにとってわずらわしくなってしまう可能性がある。
【００７７】
そこで、インストールに失敗したその場でインストールの再実行を行なうのではなく、インストールに失敗したアプリを覚えておき、７番目まで全てのサイレントインストールを実行する。その後、インストールに失敗したアプリケーションのみ、通常インストールモードで呼び出すことで、ユーザが入力を行うべき場所を一箇所にまとめることが考えられる。
【００７８】
また、単体インストーラによっては、通常インストールモードしか持たないものも存在する。その場合、通常インストールモードでインストールをせざるを得ないが、この場合も、他のサイレントインストールモード対応の単体インストールの間にそれが実行されることで、途中途中でユーザの入力の手間が発生し、ユーザに煩わしさを与えてしまう。
【００７９】
この場合も、サイレントインストールを行なう単体インストールの実行が全て終了した後に、そのインストールが行なわれることが望ましい。第３の実施形態は、これらの問題を解決するものである。
【００８０】
図１２は、各アプリケーションがサイレントインストールモードを持つか否かを示す図である。１２００はアプリケーション情報テーブルである。また、サイレントインストールモードを持っていない場合、通常インストールモードで実行されるため、その単体インストーラは自分で使用許諾契約文書を表示する。そのため、統合インストーラ側では使用許諾契約文書を表示する必要がなく、アプリケーション情報テーブル１２００上では使用許諾契約文書はなしになる。
【００８１】
図１３は、第３の実施形態における統合インストーラの処理手順を示すフローチャートである。統合インストーラの処理が開始されると、Ｓ１３０１で、使用許諾契約文書一括表示処理を行なう。この使用許諾契約文書一括表示処理は、第１の実施形態と同じであるため、説明は省略する。そして、使用許諾契約文書一括表示処理の結果、インストールするアプリケーションが決定すると、Ｓ１３０２で、各アプリケーションがサイレントインストールモードを持っているか否かをアプリケーション情報テーブル１２００を参照することで調べる。ここで、サイレントインストールモードを持っていない場合には（Ｓ１３０２でＮｏ）、Ｓ１３０５へ処理を進める。Ｓ１３０５では、インストールを行なわず、後で通常モードでのインストールを行なうために、アプリケーションを再実行リストへ追加し、Ｓ１３０６へ処理を進める。
【００８２】
一方、サイレントインストールモードを持っている場合には（Ｓ１３０２でＹｅｓ）、Ｓ１３０３へ処理を進め、サイレントインストールモードで単体インストーラの実行処理を行なう。この単体インストーラの実行処理は、第２の実施形態と同じであるため、説明は省略する。
【００８３】
次に、Ｓ１３０４で、単体インストールのインストール処理が失敗したか否かを判定する。判定した結果、インストールに成功した場合は、Ｓ１３０６へ処理を進めるが、インストールに失敗していれば、Ｓ１３０５へ処理を進め、アプリケーションを再実行リストへ追加し、Ｓ１３０６へ処理を進める。
【００８４】
このＳ１３０６では、再実行リスト以外のアプリケーションのインストールを全て終了したか否かを判定し、終了していなければ、Ｓ１３０２に処理を戻し、上述の処理を繰り返す。その後、再実行リスト以外のアプリケーションのインストールが全て終了すると、Ｓ１３０７へ処理を進め、再実行リストに追加されたアプリケーションを通常インストールモードで実行する。そして、Ｓ１３０８で、再実行リスト全てのインストールの終了を判定し、全て終了すると、この処理を終了する。
【００８５】
このように、ユーザが入力を行なわなくてはならない通常インストールモードの必要性が発生した場合、そのインストールを全てのサイレントインストール終了後に持って行くことで、ユーザの入力手間を軽減し、利便性を向上させることができる。
【００８６】
［第４の実施形態］
次に、図面を参照しながら本発明に係る第４の実施形態を詳細に説明する。尚、第４の実施形態のハードウェア構成とソフトウェア構成は、第１の実施形態のそれと同じであるため、説明は省略する。
【００８７】
また、第４の実施形態では、オペレーティングシステムがＷｉｎｄｏｗｓ（登録商標）の場合を説明する。以下の説明で、スタートメニューとは、Ｗｉｎｄｏｗｓ（登録商標）におけるアプリケーションやプログラムが一覧表示される場所のことを指す。また、スタートメニュー名とはスタートメニューに表示される、そのアプリケーションの名前のことを指す。また、レジストリとは、Ｗｉｎｄｏｗｓ（登録商標）においてオペレーティングシステムに関わる情報を保存するための場所のことを示す。このレジストリに何らかの情報を保存することをレジストリに登録すると表現する。
【００８８】
また、Ｗｉｎｄｏｗｓ（登録商標）では、一度インストールされたアプリケーションをコンピュータ上から取り除くためのアンインストーラがどこに保存されているのかをレジストリ上に登録する。これをアンインストーラの登録と表現する。また、デスクトップとは、Ｗｉｎｄｏｗｓ（登録商標）におけるメイン画面のことを示す。あるアプリケーションのインストールが行なわれると、そのプログラムを実行するためのショートカットがデスクトップ上に作成されることが多い。ショートカットとはハードディスク上に保存されているアプリケーションの場所を示すものであり、Ｗｉｎｄｏｗｓ（登録商標）ではショートカットを操作することで間接的にアプリケーションを実行することができる。
【００８９】
図１４は、アプリケーションのインストールに成功した場合、どの程度ハードディスク使用容量が増え、またシステム上にどのようなデータが作成されるかを定義したアプリケーション情報テーブルを示す図である。このアプリケーション情報テーブル１４００は、アプリケーション名で識別されるアプリケーション毎にインストールするＯＳ、基本増加使用量、インストール済み証明項目で構成される。ここで、インストール済み証明項目は、その対象となるＯＳ上に、既にそのアプリケーションがインストールされているか否かを判断する基準となる情報である。この例では、インストールパス、スタートメニュー名、デスクトップショートカット名、アプリ登録を行なうレジストリ、アンインストーラを登録するレジストリに相当する。
【００９０】
また、アプリケーション情報テーブル１４００には、そのアプリがインストールを行なうことができるオペレーティングシステムのバージョンも記載されている。第４の実施形態では、このアプリケーション情報テーブル１４００を使うことにより、インストールに成功したか否かを調べる。
【００９１】
図１５は、第４の実施形態における統合インストーラの処理手順を示すフローチャートである。統合インストーラが開始した後、Ｓ１５０１で、アプリケーション情報テーブル１４００を読み込む。Ｓ１５０２で、現在統合インストーラが実行されているＯＳのバージョンを取得し、Ｓ１５０３で現在のＯＳのバージョンが、あるアプリケーションの対応ＯＳ内にあるか否かを調べる。その結果、対応ＯＳ内であれば（Ｓ１５０３でＹｅｓ）、Ｓ１５０４へ処理を進める。このＳ１５０４では、そのアプリケーションをインストールリストへ登録し、Ｓ１５０５へ処理を進める。
【００９２】
一方、対応ＯＳ内でなければ（Ｓ１５０３でＮｏ）、インストールリストへは追加せず、Ｓ１５０５へ処理を進める。これにより、現在のＯＳに対応していないアプリケーションの単体インストーラは実行されない。
【００９３】
Ｓ１５０５では、全てのアプリケーションに対してＯＳのバージョンを調べたか否かを判断し、終了してなければＳ１５０３に処理を戻し、上述の処理を繰り返す。一方、終了したならば、Ｓ１５０６へ処理を進める。
【００９４】
次に、Ｓ１５０６で、使用許諾契約文書一括表示処理を行なう。この使用許諾契約文書一括表示処理は、第１の実施形態と同じであるため、説明は省略する。使用許諾契約文書一括表示処理の結果、インストールするアプリケーションが決まると、Ｓ１５０７へ処理を進め、コンピュータ状態取得処理を行ない、取得したコンピュータ状態をＸとして保存する。この処理の詳細については後述する。
【００９５】
次に、Ｓ１５０８では、単体インストーラのサイレントインストールによる実行処理を行なう。この処理は第１の実施形態と同じであるため、説明は省略する。そして、Ｓ１５０９では、再びコンピュータ状態の取得処理を行ない、その状態を状態Ｙとして保存し、Ｓ１５１０へ処理を進める。
【００９６】
Ｓ１５１０では、インストールの成功不成功を判断する判断処理を行なう。この処理の詳細については後述する。判断した結果、インストールに成功していれば（Ｓ１５１１でＹｅｓ）、Ｓ１５１６へ処理を進む。
【００９７】
一方、インストールに失敗していた場合には（Ｓ１５１２でＮｏ）、Ｓ１５１２へ処理を進める。Ｓ１５１２では、コンピュータ情報を復元する復元処理を実行する。この処理は、Ｓ１５０７で取得した情報に基づき、コンピュータの状態を状態Ｘに復元する処理である。そして、Ｓ１５１３で、その単体インストーラが使用許諾契約文書非表示モードを持っているか否かを調べる。その結果、使用許諾契約文書非表示モードがあれば（Ｓ１５１３でＹｅｓ）、Ｓ１５１４へ処理を進める。Ｓ１５１４では、使用許諾契約文書非表示モードでのインストールを行ない、Ｓ１５１６へ処理を進める。
【００９８】
しかし、使用許諾契約文書非表示モードがなければ（Ｓ１５１３でＮｏ）、Ｓ１５１５へ処理を進める。Ｓ１５１５では、通常モードでのインストールを行ない、Ｓ１５１６へ処理を進める。
【００９９】
そして、Ｓ１５１６で、全てのアプリケーションの単体インストーラを実行したか否かを判定する。判定の結果、全てのインストール処理が終了していなければ（Ｓ１５１６でＮｏ）、Ｓ１５０７に処理を戻し、上述した処理を繰り返す。また、全てのインストール処理が終了すると（Ｓ１５１６でＹｅｓ）、この統合インストーラの処理を終了する。
【０１００】
図１６は、第４の実施形態におけるコンピュータ状態取得処理を示すフローチャートである。コンピュータ状態取得処理を開始すると、Ｓ１６０１で、その時点でのハードディスクの空き容量を調べて記憶する。次に、Ｓ１６０２で、その時点でのスタートメニューの状態を調べて記憶する。次に、Ｓ１６０３で、その時点でのレジストリの状態を調べて記憶する。そして、Ｓ１６０４で、その時点でのプログラム格納場所の状態を調べて記憶し、コンピュータ状態取得処理を終了する。
【０１０１】
図１７は、第４の実施形態におけるコンピュータ状態復元処理を示すフローチャートである。コンピュータ状態復元処理を開始すると、Ｓ１７０１で、その時点でのスタートメニューの状態を記憶された状態に復元する。次に、Ｓ１７０２で、その時点でのレジストリの状態を記憶された状態に復元する。そして、Ｓ１７０３で、その時点でのプログラム格納場所の状態を記憶された状態に復元し、コンピュータ状態復元処理を終了する。
【０１０２】
図１８は、第４の実施形態におけるインストール成否判断処理を示すフローチャートである。Ｓ１８０１では、上述した状態Ｘと状態Ｙを読み込む。Ｓ１８０２では、アプリケーション情報テーブル１４００の情報を読み込み、Ｓ１８０３で、インストール済み証明項目が存在するか否かを調べる。その全てが存在した場合には、単体インストーラの実行に成功してもしなくてもアプリケーションが使える状態になっていると判断できるため、Ｓ１８０８へ処理を進める。このＳ１８０８では、戻り値をインストール成功としてインストール成否判断処理を終了する。
【０１０３】
一方、Ｓ１８０３で、インストール済み証明項目の何れかが足りない場合には、Ｓ１８０４へ処理を進める。Ｓ１８０４では、状態Ｙの時に、アプリ登録を行なうレジストリが存在するか否かを調べ、存在しない場合にはＳ１８１０へ処理を進める。また、存在する場合はＳ１８０５へ処理を進める。Ｓ１８０５では、状態Ｙの時に、アンインストーラの登録を行なうレジストリが存在するか否かを調べ、存在しない場合にはＳ１８１０へ処理を進める。また、存在する場合はＳ１８０６へ処理を進める。
【０１０４】
Ｓ１８０６では、状態Ｙの時に、アプリケーション情報テーブル１４００で定義されたインストールパスにファイルが存在するか否かを調べ、存在しない場合にはＳ１８１０へ処理を進める。また、存在する場合はＳ１８０８へ処理を進める。Ｓ１８０７では、インストールの前後でハードディスク使用量が定義された使用量増加値より増えていた場合、Ｓ１８１１へ処理を進める。また、実際に増加された値が定義された使用量増加値よりも増えていなかった場合にはＳ１８１０へ処理を進める。Ｓ１８１１では、状態Ｙの時に、定義されたスタートメニューが存在するか否かを調べ、存在しない場合にはＳ１８１０へ処理を進める。また、存在する場合にはＳ１８１２へ処理を進める。
【０１０５】
Ｓ１８１２では、状態Ｙの時に、定義されたデスクトップショートカットが存在するか否かを調べ、存在しない場合にはＳ１８１０へ処理を進める。また、存在する場合にはＳ１８０９へ処理を進める。Ｓ１８０９では、戻り値をインストール成功としてインストール成否判断処理を終了する。そして、Ｓ１８１０では、戻り値をインストール失敗としてインストール成否判断処理を終了する。
【０１０６】
単体インストーラの中には、呼び出し元に対して、インストールに成功したか失敗したかを通達する方法を持たないものも存在する。
【０１０７】
そこで、単体インストーラの実行が成功した場合にはどのようにコンピュータの状態が変わるかを定義したテーブルを備え、単体インストーラの実行前の状態と、単体インストーラ実行後の状態を保存し、その比較を行なう。これにより、インストールに成功したか失敗したかを、単体インストーラがその通達の方法を持つための改造を行なうことなく、判断することができる。
【０１０８】
尚、本発明の特徴は、サイレントインストールに失敗した場合に、ＵＩのある形で再度単体インストーラを実行し、同じエラーを発生させ、エラーメッセージを表示させることである。しかし、最初のサイレントインストールの段階でコンピュータの状態が変わってしまい、２度目の単体インストーラ実行時に、同じエラーが発生しない可能性もある。
【０１０９】
第４の実施形態によれば、サイレントインストールに失敗した後、もう一度単体インストーラを呼び出す前に、コンピュータの状態をサイレントインストール実行より前の状態に戻すことで、同じエラーが必ず発生する。
【０１１０】
尚、本発明は複数の機器（例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用しても良い。
【０１１１】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【０１１２】
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１１３】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１１４】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【０１１５】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図１】
0005584793.tif 000002
【図２】
0005584793.tif 000003
【図３】
0005584793.tif 000004
【図４】
0005584793.tif 000005
【図５】
0005584793.tif 000006
【図６】
0005584793.tif 000007
【図７】
0005584793.tif 000008
【図８】
0005584793.tif 000009
【図９】
0005584793.tif 000010
【図１０】
0005584793.tif 000011
【図１１】
0005584793.tif 000012
【図１２】
0005584793.tif 000013
【図１３】
0005584793.tif 000014
【図１４】
0005584793.tif 000015
【図１５】
0005584793.tif 000016
【図１６】
0005584793.tif 000017
【図１７】
0005584793.tif 000018
【図１８】
0005584793.tif 000019