3

他の人のインストールスクリプトを変更しているので、InstallShield(2009)/InstallScriptをその場で理解しようとしています。

インストール手順中のダイアログの1つには、以前は1つのテキストボックスがあり、特定のデータベース名を想定してSQLServerインスタンスを要求していました。これで、デフォルトだけでなく任意のデータベース名を選択できるようにする拡張が完了しました。ユーザーが選択したDB名を入力できるように、このダイアログにフィールドを追加する必要があります。モンキーシー、モンキードゥ、新しいコントロールを作成し、フォームが最初のテキストボックスに持っていた機能を複製して適応させるだけです-十分に簡単ですよね?

うーん...ここに問題があります。「SdShowDlgEdit1」フォームは、InstallShieldに同梱されている一般的なもののようで、1つのテキストボックスが必要なダイアログがある場合はどこでも使用されます。そのフォームを変更すると、それが呼び出されるすべての場所で変更されます...これで、以前は1つのテキストボックスがあった場所に、インストール全体に偽の2番目のテキストボックスが表示されます。

おっと。変更を元に戻し、参照を「SdShowDlgEdit2」に変更します。これは、ご想像のとおり、2つのテキストボックスを必要とするダイアログ用のInstallShieldの標準形式です。前の開発者が私の前に来て、フォルダパスを含めるために2番目のテキストボックスが必要な場所のフォームに「参照」ボタンを追加したことを除いて、これは素晴らしいことです。その「閲覧」ボタンは必要ないので、削除できません。

だから、私は自分のカスタムフォームを作成して、他の人の足を引っ張らないようにしないのはなぜだと思いますか?そこで、フォームのクローンを作成し、新しいインスタンスの名前を「EnterDbDetails」に変更し、「参照」ボタンを削除して、フォームを適切に表示します。

次に、InstallScriptに戻って「EnterDbDetails」にリダイレクトし、EzDefineDialog関数でフォームの「リソースID」を渡す必要があることを確認します。さて、また何でしたか... 12018 ...素晴らしい...必要なすべての詳細を入力し、コンパイルし、ビルドして、それを回転させます。見た目は素敵です。正しいデフォルト値はすべて2つのテキストボックスに入力されていますが、ちょっと!なぜそこに参照ボタンがあるのですか?そして、なぜラベルのテキストが私が設定したものではないのですか?

InstallScriptに戻り、リソースIDを確認します。元の「SdShowDlgEdit2」のリソースIDも12018であることがわかります。これは、それをうまく説明しています。InstallShieldを使用すると、同じIDを持つ2つのフォームを作成できますが、何でもかまいません...では、「EnterDbDetails」フォームに戻ってIDを変更しましょう...

ここに画像の説明を入力してください

...しかし、Resource Identifierプロパティは読み取り専用です! WTF?

そのため、現在は標準フォームを使用できず、リソースIDを変更できないため、カスタムフォームを使用できません。

私は困惑しています。誰かがあなたがこのようなことをすることになっている方法を説明できますか?それは本当に世界で最も単純なことであるべきです?

4

4 に答える 4

4

InstallScriptおよびInstallScriptMSIプロジェクトでの新しいカスタムダイアログの作成


サイトからの引用(2015年版):

カスタムダイアログを作成するには、次の一般的な手順を実行する必要があります。

  1. 新規ダイアログウィザードを使用して、プロジェクトに新しいカスタムダイアログを追加します。詳細については、「新しいダイアログウィザードを使用してInstallScriptまたはInstallScriptMSIプロジェクトに新しいカスタムダイアログを追加する」を参照してください。
  2. ダイアログにコントロールを追加します。詳細については、InstallScriptまたはInstallScriptMSIプロジェクトのダイアログへのコントロールの追加を参照してください。
  3. ダイアログをメモリにロードし、画面に表示し、エンドユーザーによるダイアログのコントロールとの対話を処理し、ユーザーがダイアログを終了するとダイアログを閉じるスクリプト関数を作成します。詳細については、InstallScriptを使用したカスタムダイアログの実装を参照してください。
于 2012-03-02T02:57:31.037 に答える
1

新しいダイアログを作成するには:ダイアログビューを開きます。ダイアログビューは、ビューリストのユーザーインターフェイスセクションにあります。[すべてのダイアログ]エクスプローラーを右クリックし、[新しいダイアログ]をクリックします。ダイアログウィザードが開きます。[次へ]をクリックして、[ようこそ]パネルを閉じます。[ダイアログテンプレート]パネルで、[内部ウィザードパネル]をクリックし、[このダイアログをユーザーインターフェイスシーケンスに挿入する]チェックボックスをオンにします。[ユーザーインターフェイス]パネルで、[ユーザーインターフェイスシーケンス]リストの[インストール]を選択します。ダイアログのリストで、InstallWelcomeを選択します。これらの選択に基づいて、InstallShieldはInstallWelcomeダイアログの直後に新しいダイアログを順番に挿入します。[ダイアログの位置と状態]パネルで、デフォルト設定のままにして、[完了]をクリックします。新しいダイアログが[ダイアログ]リストに表示されます。ダイアログを右クリックして、[名前の変更]を選択します。ダイアログの名前をWelcomeBitmapに変更します。同じ手法を使用して、インストールのユーザーインターフェイスに追加のダイアログを挿入できます。

この手順では、作成したWelcomeBitmapダイアログを変更します。まず、300 x 150のビットマップを作成します(Microsoftペイントなどのプログラムを使用)。[ダイアログ]ビューを開きます。WelcomeBitmapダイアログのノードを展開します。英語(米国)をクリックして、ダイアログエディタを開きます。ダイアログの上部にある[ダイアログの太字のタイトル]テキストボックスをクリックします。[テキスト]フィールドに「WelcomeBitmap」と入力します。これにより、ダイアログのメインタイトルが変更されます。ダイアログの上部にある[ダイアログの通常の説明]テキストボックスをクリックします。[テキスト]フィールドに、「ウェルカムビットマップを表示します」と入力します。これにより、ダイアログの説明が変更されます。ダイアログコントロールツールバーの[ビットマップ]ボタンをクリックし、カーソルを使用してダイアログ上のボックスをドラッグします。高さを150に、幅を300に設定します。[ファイル]フィールドで、手順1で作成したビットマップファイルを参照します。

于 2014-03-13T11:16:54.333 に答える
0

インストールデザイナの[追加ツール]セクションのダイレクトエディタにあるダイアログテーブルで、ResourceIDを(一意のものに)編集する必要があります。

于 2015-09-21T18:23:18.920 に答える
0

sdWelcome、sdFinish、sdFinishRebootなどの標準のInstallShieldダイアログをカスタマイズすることで、実行されたカスタマイズでダイアログのデフォルトのスクリプトAPIを使用できるようになります。

于 2018-03-14T11:52:55.107 に答える