- ベストアンサー
プログラム終了後に自動で別のプログラムを起動する方法
お世話になります。 あるアプリケーションセットアッププログラム(A.exe)と、その修正パッチ(B.exe)を同じCD-Rに焼いて、発行したいと考えています。 そこで、autorun.infを使用して、CD-R挿入時に自動的にA.exeファイルを実行するようにしたのですが、A.exeの終了後、さらに自動でB.exeを実行するように出来ませんか? autorun.inf のように簡単に出来るコードがあれば、と考えているのですが。 どうぞよろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
そーゆー場合、 ランチャー(C.exe) セットアッププログラム(A.exe) 修正パッチ(B.exe) と言う構成にします。autorun.infでは、C.exeを起動します。 C.exeは、単純に ---- アプリケーションの新規セットアップ(セットアップ済みの場合は押せない) アプリケーションの更新(未セットアップの場合は押せない) CDを閲覧する 終了 ---- と言うメニュー画面を出し、どれか選んだら ・アプリケーションの新規セットアップ ランチャー画面を消して(最小化して)から、A.exeを新規モードで起動し、A.exeの終了を待つ。A.exeが終了したら、B.exeを起動し、B.exeの終了を待つ。B.exeが終了したら、最小化した画面を元に戻して、メニューに戻る。 ・アプリケーションの更新 ランチャー画面を消して(最小化して)から、A.exeを更新モードで起動し、A.exeの終了を待つ。A.exeが終了したら、B.exeを起動し、B.exeの終了を待つ。B.exeが終了したら、最小化した画面を元に戻して、メニューに戻る。 ・CDを閲覧する CDのある場所を指定してエクスプローラーを起動し、CDを閲覧させる。エクスプローラーの終了は待たずに、メニューに戻る。 ・終了 終了する。 と言う処理をすれば良いでしょう。 どの処理も、単純なWindows APIで実装出来ます。
その他の回答 (2)
- chie65536
- ベストアンサー率41% (2512/6032)
因みに。 A.exeの中の終了時の処理に、B.exeを呼び出す処理を入れてはいけません。例外発生などでA.exeが強制終了された場合にB.exeが呼び出されません。 autorun.infからbatファイルを呼び出し、batファイルから起動するには「exeがある場所にPATHが設定されている」か「exeがある場所がカレントディレクトリである」か「exeの位置がフルパスで記述されている必要」があります。 CDドライブのドライブ名は「ユーザーごとに違い、どこになっているか不明」なので「PATH」も「カレント」も「フルパス」も使えません。つまり「CDの自動起動では、事実上、batファイルによるバッチ処理は不可能」です。
お礼
chie65536 様 補足もありがとうございました。 参考になりました。
- Donotrely
- ベストアンサー率41% (537/1280)
A.exeやB.exeがいずれもコマンドプロンプトから起動できるなら、 .batや.cmdファイルを作ってautorunさせられそうなんですが。
お礼
Donotrely様 ご回答ありがとうございます。 No.3様のご意見も参考にさせていただき、 .batや.cmdファイルの使用は回避させていただくことにしました。
お礼
chie65536 様 ご回答ありがとうございます。 ランチャーを使用するのは抜群に良いアイディアだと思いました。 当方に技術力がなくWindows APIを組むことが出来ないのが残念ですが、アイディアを応用してテキストファイル(readme)を立ち上げて、操作を書き込もうと考えています。