Есть программа для работы с файлами. Хотелось бы добавить возможность использовать программу из контекстного меню файла. Т.е. открываешь контекстное меню файла, и там должен быть пункт - открыть этот файл с помощью этой программы. Подскажите, пожалуйста, с чего начинать и как это реализуется? (Естественно в общих чертах. Буду сам постепенно постигать тему.)
Например, для txt-файлов: Значение по умолчанию ключа HKCR\.txt - txtfile В HKCR\txtfile\shell добавить подраздел Отображаемый_в_меню_текст\command в значение по умолчанию созданного подраздела записать "Название_программы.exe %1"
const path = '\exefile\shell\open with my prog\command'; path2 = '\exefile\shell\open with my prog'; folpath = '\Directory\shell\open with my prog2\command'; folpath2 = '\Directory\shell\open with my prog2'; fReg := TRegistry.Create; fReg2 := TRegistry.Create; fReg.RootKey := HKEY_CLASSES_ROOT; fReg2.RootKey := HKEY_CLASSES_ROOT; fReg.CreateKey(path); fReg2.CreateKey(folpath); fReg.OpenKey(path,true); fReg2.OpenKey(folpath,true); fReg.WriteString('','"' + Application.ExeName + '"' + '%1"'); fReg2.WriteString('','"' + Application.ExeName + '"' + '%1"'); fReg.CloseKey; fReg2.CloseKey;
Ага. Спасибо, RMN Попробуем. Мне бы вот только нужна возможность открытия любого файла с любым расширением. В реестре позволяются вольности типа *.* ? Спасибо также a1ss Сейчас попробую разобраться...
А вот дополнительные параметры как-то можно передать? например, полный путь к файлу? Т.е. при запуске программы из контекстного меню выбраного файла открывалась бы сама программа, в эдитбоксе которой был бы забит полный путь к файлу? (Который ещё не открыт, но подлежит обработке?)
Ну так "Название_программы.exe %1" вместо %1 будет подставлятся имя файла, полную строку можешь получить с помощью GetCommandLine