Как связать определённое расширение файлов с
    моим приложением
    В Win32 необходимо создать новую запись в реестре
    в корневом ключе HKEY_CLASSES_ROOT, которая будет
    указывать на расширение файла, командную строку
    и иконку, которая будет отображаться для этого
    расширения. В Win16, просто включить расширение
    файла и командную строку в секцию [Extensions] в Win.ini. 
     
    Пример: 
     
    uses  
      Registry, {For Win32}  
      IniFiles; {For Win16}  
     
    {Для Win32}  
    procedure TForm1.Button1Click(Sender: TObject);  
    var  
      reg: TRegistry;  
    begin  
      reg := TRegistry.Create;  
      reg.RootKey := HKEY_CLASSES_ROOT;  
      reg.LazyWrite := false;  
      {Add Program Support}  
      reg.OpenKey('.bor\shell\open\command', true);  
      {Имя файла будет передавать в приложение
    как первый параметр} 
      reg.WriteString('', 'C:\Program Files\Borland\Delphi 3\Project1.exe %1');  
      {Добавляем отображаемую иконку} 
      reg.CloseKey;  
      reg.OpenKey('.bor\DefaultIcon',true);  
      {Для отображения используем первую иконку
    в нашем приложении} 
      reg.WriteString('', 'C:\Program Files\Borland\Delphi 3\Project1.exe,0'); 
      reg.CloseKey;  
      reg.free;  
    end;  
     
    {Для Win16}  
    procedure TForm1.Button2Click(Sender: TObject);  
    var  
      WinIni : TIniFile;  
      WinIniFileName : array[0..MAX_PATH] of char;  
      s : array[0..64] of char;  
    begin  
      GetWindowsDirectory(WinIniFileName, sizeof(WinIniFileName));  
      StrCat(WinIniFileName, '\win.ini');  
      WinIni := TIniFile.Create(WinIniFileName);  
      WinIni.WriteString('Extensions',  
                         'bor',
     
                         'C:\PROGRA~1\BORLAND\DELPHI~1\PROJECT1.EXE
    ^.bor');  
      WinIni.Free;  
      StrCopy(S, 'Extensions');  
      SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@S));  
    end; 
      
       |