8

InstallShield を使用して、インストール後に exe を実行したいと考えています。InstallShield はセットアップを正しく完了しますが、exe を実行しません。

起動時にexeを追加する別の方法を見つけましたが、再起動後に実行されます。再起動せずに実行したいと思います。

出来ますか ?

4

2 に答える 2

18

使用しているInstallShieldのバージョンとエディションは何ですか?また、どのプロジェクトタイプを使用していますか?(InstallScript、InstallScript MSI、Basic MSI?)

基本的なMSIを想定すると、InstallShieldには、このストーリーをサポートするための組み込みパターンがあります。

1)[プロジェクトアシスタント]タブをクリックします

2)インストールインタビューアイコン(ページ)をクリックします

3)[インストールの完了時にアプリケーションを起動するオプションをユーザーに提供しますか?]で[はい]をクリックします。

4)参照ボタンをクリックして、操作のターゲットとなるEXEを選択します。

デフォルトでは、セットアップ完了ダイアログのチェックボックス(プログラムの起動)は選択されません。これを選択するには、プロパティLAUNCHPROGRAMをプロパティテーブルに自動的に追加し、値を「1」に設定します。

于 2012-05-22T12:35:53.360 に答える
5

クリストファー・ペインターの答えは、ほとんどの場合うまくいくでしょう。これらは実行する最初の手順ですが、十分でないことがわかった場合は、追加の詳細がいくつかあります。たとえば、skb は、これがうまくいかなかったと報告しています。私は同じボートに乗っていることがわかりました (私はこの作業を行う他の多くのインストーラーを作成しましたが!)。

  1. Christopher Painter の指示に従ってください。
  2. [Installation Designer] タブをクリックします。「ユーザー インターフェイス」内で「ダイアログ」を選択します。
  3. 「すべてのダイアログ」内で、「SetupCompleteSuccess」を展開し、「動作」を選択します。
  4. [OK] プッシュ ボタン コントロールを選択します。次に、「イベント」を選択します。(イベント/サブスクリプション/条件と表示されている画面の下部を見てください)
  5. 「IS_LAUNCH_MY_PROGRAM_PLEASE」に等しい「引数」と「LAUNCHPROGRAM」の「条件」を持つ「DoAction」イベントが必要です。そうでない場合-それを追加します。「LAUNCHPROGRAM」は、その名前のプロパティを指します。起動チェックボックスが選択されている場合は値が 1 になり、この条件を満たします。IS_LAUNCH_MY_PROGRAM_PLEASE は、起動されるカスタム アクションを参照します。必要に応じて、ここでその CA を変更して、代わりに任意のカスタム アクションを起動することができます。これはそのままにしておくことにしましたが、CA を独自のものに置き換えました。
  6. カスタム アクションのリストを開きます (動作とロジック... カスタム アクションとシーケンス)。そこに IS_LAUNCH_MY_PROGRAM_PLEASE という名前の CA が見つかるはずです。消して!
  7. 独自の IS_LAUNCH_MY_PROGRAM_PLEASE CA を追加します。[カスタム アクション] (リスト ヘッダー) を右クリックし、必要な CA の種類を選択するか、ウィザードを起動します。ダイアログの動作をデフォルトのままにしておく場合は、必ず「IS_LAUNCH_MY_PROGRAM_PLEASE」という名前を付けてください。
  8. exeを起動するには-WORKING DIRECTORYが変更された状態で(これが私のアプリが表示されない理由であり、コメントに基づいて明らかにskbも同様です)「新しいEXE」...「ディレクトリを参照するパス」を選択します。「返却処理」を「非同期(完了待ちなし)」に変更。「MSI タイプ番号」が 226 になることに注意してください。「作業ディレクトリ」をINSTALLDIR(起動するプログラムが新しいプログラムのディレクトリにあると仮定して) に設定します。「ファイル名とコマンド ライン」を に設定し[INSTALLDIR]YourApp.exeます。
于 2016-04-14T22:18:12.977 に答える