2012-01-18 44 views
12

Inno Setup FAQには、ソフトウェアにファイルタイプを割り当てる方法の例があります。レジストリを扱うことは問題ありません。Innoセットアップオプション(ユーザー選択可能)ファイルの関連付け

しかし、の選択肢をユーザーに提供するには、のファイルタイプを割り当てる必要がありますか?たとえば、テキストファイル用の簡単なエディターを作成し、ユーザーが.txtや.nfoを自分のプログラムに割り当てるかどうか尋ねたいとします。チェックボックス付きのセットアップページは天才でしょう。

Inno Setupでこれを行う方法は?

答えて

17

セットアップに「タスク」を追加し、ファイル関連の各レジストリエントリをこのタスクに関連付けます。例:

[Tasks] 
Name: mypAssociation; Description: "Associate ""myp"" extension"; GroupDescription: File extensions: 

[Registry] 
Root: HKCR; Subkey: ".myp"; ValueType: string; ValueName: ""; ValueData: "MyProgramFile"; Flags: uninsdeletevalue; Tasks: mypAssociation 
Root: HKCR; Subkey: "MyProgramFile"; ValueType: string; ValueName: ""; ValueData: "My Program File"; Flags: uninsdeletekey; Tasks: mypAssociation 
... 


は、「タスクのhereのドキュメントを参照してください。

+0

素晴らしい:-)ありがとう – 0xDEADBEEF

+0

これは完璧に私のためにも、ありがとう! :) – Kaitlyn

0

@Sertacが言っているように、Inno Setupでファイルとアプリケーションを関連付ける最も簡単な方法は、[Tasks]セクションを使うことです。 [レジストリ]セクションで、関連付けるエクステンションの詳細を入力する必要があります。このチェックアウトの詳細についてはInno Setup FAQ pageをご覧ください。

+1

あなたのリンクは何らかの形で壊れています。しかし、あなたはおそらくSertacが彼の答えの一部だけを示した(この '' FAQ tip''(http://www.jrsoftware.org/isfaq.php#assoc)を意味していたでしょう。彼のコード例の)。したがって、あなたの答えは実際にはこのスレッドには何も追加しません。しかし、そのFAQへのリンクを含むコメントを削除することは有用であり、言及する価値があります。 – TLama

+0

こんにちは@TLama、はい、あなたはリンクについて正しいです。私はそれを修正しました。 [レジストリ]セクションのこれらのリンクがすべて何であるかを説明しているので、このFAQへのリンクも役立ちます。 –

1

あなたは前の回答でinnosetupで、ファイルの関連付けに関するいくつかの情報を見つけることができます:Stackoverflow - Inno setup file association

そしてここで、私たちはただで引数を解析することによって、.NETプログラムでこのファイルの関連付けを使用するためにexempleを見つけることができますメインメソッド:Stackoverflow - Associate a file extension with WPF application

+1

さて、ここでも、OPはアソシエーション自体を作る方法を知っています(この質問の最初の文を見てください)。ここでの問題は、この関連付けを何らかの方法で条件付にする方法でした。そのため、Sertacは '[Tasks]'セクションの使用を提案し、そのFAQからスクリプトを短縮しました。したがって、実際には* thread *には何も追加されません。 – TLama

関連する問題