Как связать определённое расширение файлов с моим приложением?
Материал из DRKB
Как связать определённое расширение файлов с моим приложением?[править | править код]
В 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;
Source: Взято из http://forum.sources.ru
ID: 01739