DevProg: Блог для программистов

Секреты программирования. Примеры разработки. Обзоры программёрского софта, блогов и форумов и просто полезные советы!

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

Опубликовал devprog на Октябрь 7, 2008

У начинающих программистов нередко возникает вопрос о том, как же привязать определённое расширение к своей программе, так чтобы файлы с такими расширением, открывались при помощи их программы. Это можно сделать и вручную, главное чтобы программа могла принять параметр в виде имени файла (об этом нужно позаботиться самому). Саму же регистрацию можно автоматизировать вот так:

Пример регистрирует расширение файла(.myext) – файлы этого типа будут открываться приложением MyApp.Exe. Также регнстрируется одно действие (action) по умолчанию для файлов этого типа и два дополнительных пункта контекстного меню, связанного с этим типом файлов. Возможно, потребуется перезайти в систему чтобы изменения вступили в силу.
 
Пример:

uses Registry;
procedure TForm1.Button1Click(Sender: TObject);
var R : TRegIniFile;
begin R := TRegIniFile.Create(»);
with R do begin RootKey := HKEY_CLASSES_ROOT;
WriteString(‘.myext’,»,’MyExt’);
WriteString(‘MyExt’,»,’Some description of MyExt files’);
WriteString(‘MyExt\DefaultIcon’,»,’C:\MyApp.Exe,0′);
WriteString(‘MyExt\Shell’,»,’This_Is_Our_Default_Action’);
WriteString(‘MyExt\Shell\First_Action’, »,’This is our first action’);
WriteString(‘MyExt\Shell\First_Action\command’,», ‘C:\MyApp.Exe /LotsOfParamaters %1′);
WriteString(‘MyExt\Shell\This_Is_Our_Default_Action’,», ‘This is our default action’);
WriteString(‘MyExt\Shell\This_Is_Our_Default_Action\command’, »,’C:\MyApp.Exe %1′);
WriteString(‘MyExt\Shell\Second_Action’, »,’This is our second action’);
WriteString(‘MyExt\Shell\Second_Action\command’, »,’C:\MyApp.Exe /TonsOfParameters %1′);
Free;
end;
end;

Ответить

XHTML: Вы можете использовать эти метки: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>