6

ファイルパス (カスタム拡張子の付いたファイル) を引数として受け取り、それに対して何らかの処理を行うアプリケーションを作成しました。

(windows 機能を使用して) カスタム ファイルを、インストールする実行可能アプリに関連付けることができるという考え (インストール シールド インストーラーを介して)。

カスタム拡張子のファイルをダブルクリックして、実行可能ファイルに渡して処理できるようにしたいと考えています。

ただし、私が得る動作は次のとおりです。

  • ファイル (カスタム拡張子付き) をダブルクリックしても、何も起こりません。
  • ファイルを実行可能プログラムにドラッグ アンド ドロップすると、期待どおりに動作します。

カスタムファイルをダブルクリックするだけでこれを機能させることは可能ですか?

Windowsが実行可能ファイルを使用してカスタムファイルを開こうとしていると思いますが、これは引数として渡すのと同じではないでしょうか?!

どんな助けでも感謝します。

ありがとう、KS

4

2 に答える 2

5

InstallShield 2013 の使用:

カスタム ファイル タイプの場合

  1. [Installation Designer] タブに切り替えます。
  2. 左側のフレームで、[組織] を展開し、[コンポーネント] を選択します。
  3. コンポーネントのリストから、プライマリ exe のオプションを展開し、[詳細設定] を展開して [ファイルの種類] を選択します。
  4. 「拡張機能」を右クリックし、「新しい拡張機能」を選択します。先頭のピリオドなしで拡張子を入力します。
  5. 拡張機能には、作成時に「動詞」「Open」が自動的に追加されているはずです。それを選択します。「&Open with MyApp」などの「表示名」を入力します。「%1」などの「引数」を入力します (これは、長いファイル名/スペースを処理するために引用符で囲まれた exe にファイル名を渡します)。
  6. リストから新しい拡張機能を選択し、「ProgID」を入力します。たとえば、「MyApp.Document」です。

タイプに関連付ける特定のアイコンを定義するには (暗黙的な exe アイコンではなく):

  1. 追加した「ProgID」(「MyApp.Document」など) をクリックします。「アイコン」フィールドをクリックし、表示される「...」ボタンをクリックします。これにより、アイコンファイルを参照できます。

「一般的な」ファイル タイプの場合

ファイルの種類がアプリケーションに排他的に「属していない」場合は、アプリケーションをその種類を開くための選択肢のリストに追加することができますが、既定のプログラムにしたり、既定のアイコンを変更したりすることはありません。それを達成する方法は次のとおりです...

  1. [Installation Designer] タブに切り替えて、カスタム ファイル タイプの指示に従います
  2. 左側のフレームで、[組織] を展開し、[コンポーネント] を選択します。
  3. コンポーネントのリストから、プライマリ exe のオプションを展開し、[レジストリ データ] を選択します。
  4. 「Destination Computer Frame」で、「HKEY_CLASSES_ROOT」を右クリックし、「New」...「Key」を選択します。関連付けを定義するファイル拡張子 (先頭のピリオドを含む) をキーに付けます。
  5. その新しいキーを右クリックして、「新規」...「デフォルト値」を選択します。次に、そのデフォルト値を右クリックして、[変更] を選択します。このタイプを開いてアイコンを指定するためのデフォルト アプリケーションの ProgID を入力します。この値を確認するには、レジストリを確認する必要がある場合があります。たとえば、zip ファイルの標準のデフォルトは「CompressedFolder」です。これを理解することは、この手順の最も難しい部分です。
  6. その新しいキーを右クリックし、「新規」...「キー」を再度選択してサブキーを作成します。サブキーに「OpenWithProgids」という名前を付けます。
  7. 「OpenWithProgids」キーを右クリックし、「新規」...「文字列値」を選択します。デフォルトとして定義した ProgId の値に名前を付けます。この値は「空」のままにしておきます (「名前」は「値」です)。
  8. 「OpenWithProgids」キーを右クリックし、「新規」...「文字列値」を再度選択します。今回は、カスタム ファイル タイプの指示に従ったときにアプリケーションに定義した ProgId の値に名前を付けます。
于 2016-04-04T15:53:26.557 に答える