2011-12-30 11 views
0

私のプログラムのファイル拡張子をWindowsに認識させようとしていますが、いつものように大したことはありません。ファイルの関連付けを設定する

これは私がやっているものです、私が間違っているの何をどこアドバイスしたりしてください - 私は、レジストリの場所を持っている可能性があるか、正しく設定ネーミングだと思う:

サンプル名

MyProg.exe = The name of the program. 
%InstallPath% = Where the program will be installed. 
.ext1 = 1st File Extension. 
.ext2 = 2nd File Extension. 
.ext3 = 3rd File Extension. 

レジストリの場所(私が追加した場所)

HKEY_CLASSES_ROOT\.ext1 
HKEY_CLASSES_ROOT\.ext2 
HKEY_CLASSES_ROOT\.ext3 

HKEY_CLASSES_ROOT\.ext1\DefaultIcon,2 
HKEY_CLASSES_ROOT\.ext1\shell\open\command\%InstallPath%\MyProg.exe %1 

その後オフに失わ:(

ファイルイメージ

の私はXE IDEリソースメニューから3アイコンファイルを追加し、2,3,4、それらを命名しました。私は、1という名前のアイコンを持っている場合、それはプロジェクトのアイコンをオーバーライドすると思いますか?

自分のプログラムを見たことのないマシンでInno Setupなどのインストーラを使用する前にこれらの作業を開始したい(インストールが完璧かどうかを確認する)。

私は従うことは簡単ガイドを見つけることができません:(

+0

(http://stackoverflow.com/questions/6704222/how-あなたは他の[質問]に受け入れ答えでガイドに従うことをとても簡単に持っているように思えますアプリケーションからファイルへの関連付けを処理する)。それから欠けている唯一のものは、プロシージャコールのパラメータ( 'cMyFileType'は最初のインスタンスでは' MyProgExt1'、 'cMyDescription'は' My Program File Type 1')です。これらの値を拡張子の型として '.ext1'と一緒にパラメータの代わりにコードに入れれば、あなたは何をどのような順序で行う必要があるか正確に分かります。 –

+0

私はそれを忘れてしまった!まあ、正しいアイコンについては、私が持っている2,3,4などのリソースの名前を付けるだけですか? –

+0

最後のコメントが分かりません。前の質問のサンプルコードでは、アイコンの処理方法も示しています。 –

答えて

5

あなたは間違ったレジストリキーを設定しているあなたは、このように、あなたのアプリケーションでのProgIDを関連付け、その後、ProgIDのとファイル拡張子を関連付ける必要があります。:

HKEY_CLASSES_ROOT\.ext1 
(Default) = "ext1File" 

HKEY_CLASSES_ROOT\.ext2 
(Default) = "ext2File" 

HKEY_CLASSES_ROOT\.ext3 
(Default) = "ext3File" 

HKEY_CLASSES_ROOT\ext1File\DefaultIcon 
(Default) = "%InstallPath%\MyProg.exe,2" 

HKEY_CLASSES_ROOT\ext1File\shell\open\command 
(Default) = ""%InstallPath%\MyProg.exe" "%1"" 

HKEY_CLASSES_ROOT\ext2File\DefaultIcon 
(Default) = "%InstallPath%\MyProg.exe,3" 

HKEY_CLASSES_ROOT\ext2File\shell\open\command 
(Default) = ""%InstallPath%\MyProg.exe" "%1"" 

HKEY_CLASSES_ROOT\ext3File\DefaultIcon 
(Default) = "%InstallPath%\MyProg.exe,4" 

HKEY_CLASSES_ROOT\ext3File\shell\open\command 
(Default) = ""%InstallPath%\MyProg.exe" "%1"" 

詳細は、次のマニュアルを読むFYI

File Types and File Associations

を、あなたは令状すべきではありませんデータを直接HKEY_CLASSES_ROOTに送信してください。代わりに、ユーザー単位またはマシン全体の登録を行うかどうかによって、HKEY_CURRENT_USER\Software\Classesおよび/またはHKEY_LOCAL_MACHINE\Software\Classesのいずれかに書き込みます。理由の詳細については、次のドキュメントをお読みください。

HKEY_CLASSES_ROOT Key

Merged View of HKEY_CLASSES_ROOT

+0

警告のおかげで、私はすべてのユーザーまたはシングルユーザーのためにインストールするオプションがあると思うので、私はHKEY_CURRENT_USERルートとすべてのユーザーHKEY_LOCAL_MACHINEルートを使用します。ありがとうレミー –

関連する問題