Как связать определённое расширение файлов с моим приложением?

В 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;

Взято из http://forum.sources.ru

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...