Можно сразу в Delphi
Создаешь раздел в реестре
HKEY_CLASSES_ROOT\{твое расширение}
Далее значение по умолчнию - это описание файла
HKEY_CLASSES_ROOT\{твое расширение}\DefaultIcon
Значение по умолчнию - иконка файла
HKEY_CLASSES_ROOT\{твое расширение}\shell\open\command
Значение по умолчанию - путь к программе
Пример
Код:
uses
Registry;
procedure RegisterMyFileType(Ext, Description, Icon, ExePath: String);
begin
with TRegistry.Create do
begin
RootKey:=HKEY_CLASSES_ROOT;
OpenKey(Ext, True);
WriteString('', Description);
CloseKey;
OpenKey(Ext + '\DefaultIcon', True);
WriteString('', Icon);
CloseKey;
OpenKey(Ext + '\shell\open\command', True);
WriteString('', ExePath);
CloseKey;
Free;
end;
end;
Вызываешь так
Код:
RegisterMyFileType('.txt', 'Текстовый файл', Application.ExeName + ', 0', Application.ExeName + ' %1');