お知らせ

電子会議

ライブラリ

FDelphi サイト全文検索

Delphi FAQ一覧

サンプル蔵



FDelphi FAQ
15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」

[Q]
 ファイルの拡張子を自分のアプリケーションに関連付けるにはどうしたら よいのでしょうか。

[A]
 拡張子の関連付けはレジストリによって管理されています。

HKEY_CLASSES_ROOT
             ├拡張子(例:「.ext」)←ここにデータ格納先が入ります。
             │           (例:「ext_auto_file」)
             │
             └データ格納先(例:「ext_auto_file」)
                └shell            ↑ここにファイルの種類が入ります。
                    └open
                        └command←ここにコマンドラインが入ります。
                                   (例:「c:\Window\Notepad.exe "%1"」)
                                                                 ↑
              (*注)| エクスプローラから自動で関連付けした場合、ここ|
                   |を「"」で括りませんが、ファイルが空白を含むパス |
                   |にあった場合コケますので「"」で括りましょう。   |
                   |この「%1」が関連付けられるファイル名となります。|

 
 つまり上記のレジストリを書き込むコードが必要になります。


[例]

 uses
    Registry;

...............

var
   Reg: TRegistry;
begin
     MessageBeep(MB_ICONQUESTION);
     if MessageDlg('××ファイルをこのソフトに関連付けますか?',
                   mtConfirmation,mbYesNoCancel,0)<> mrYes then exit;
     Reg:= TRegistry.create;
     with Reg do begin
          try
             RootKey:= HKEY_CLASSES_ROOT;

             OpenKey('.ext', true);
             WriteString('', 'ext_auto_file');
             CloseKey;

             OpenKey('ext_auto_file', true);
             WriteString('', '××ファイル');
             CloseKey;

             OpenKey('ext_auto_file\shell\open\command', true);
             WriteString('', ParamStr(0)+ ' "%1"');
             CloseKey;
          finally
             free;
          end;
     end;
     MessageBeep(MB_ICONASTERISK);
     MessageDlg('拡張子「EXT」をこのソフトに関連付けました。'+ chr($A)+
                'これ以降××ファイルをダブルクリックするだけで'+ chr($A)+
                'このソフトが自動的に起動します。',mtInformation,[mbOk],0);
end;


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。

Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会