![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление списка файлов в программу через меню explorer.
dracula © (2006-05-15 14:25:00)У меня есть программа, она копирует файлы. Надо реализовать добавление файлов через контектное меню, по типу как в winamp. В каком направлении надо копать? Есть ли какой пример (я в курсе что надо это делать через com, но я раньше с этим не сталкивался), или какая нибудь информация как это делается. Заранее спасибо.
dracula (2006-05-16 12:54:00) [1]Нет моя программа копирует файлы с испорченых и поцарапаных дисков, поэтому explorer с ними не справляется.
2allrussia, нет к сожалению это не подходит так как добавляет всего один файл или папку - я так уже пробовал (даже делал через PostMessage и отправлял первой запущеной копии программы командную строку, но программа не успевает обрабатывать все файлы и некоторые пропускает). Надо именно через com чтоб можно было сразу несколько файлов. Winamp использует \Folder\shell и также c MP3, но у него есть ещё обработка списков - например я выделяю несколько папок и в меню выбираю скопировать с помощью млей проги, вот и надо список выделеных папок отправить моей программе. А вот как это делается?
Leonid Troyanovsky (2006-05-15 22:42:00) [2]
> dracula © (15.05.06 16:12) [3]
> файлы, жмём правую кнопку мыши и выбираем скопировать с
> помощью моей проги. Вот это будет правильно и красиво.
Explorer правильно и эстетично копирует файлы без посторонней помощи.
--
Regards, LVT.
allrusia (2006-05-15 22:25:00) [3]Poirot
> Хм.. всётаки мне каца, что автор имел ввиду имено добавление
> файлов к рабочей копии приложения - аля винамп => Enqueue
> to Winamp:)
пока что плохо кажется :) неудачная попытка, т.к.
dracula
А вот например человек захотел скопировать файлы, и чтоб не запускать прогуи там их не искать, выделяем файлы, жмём правую кнопку мыши и выбираем скопировать с помощью моей проги
Poirot (2006-05-15 17:52:00) [4]Хм.. всётаки мне каца, что автор имел ввиду имено добавление файлов к рабочейкопии приложения - аля винамп => Enqueue to Winamp:)
allrussia (2006-05-15 17:46:00) [5]dracula
Реестр + ParamStr в программе
для реестра
r:=tregistry.create;
r.RootKey:=HKEY_CLASSES_ROOT;
r.OpenKey('\Folder\shell\Вывести на печать содержимое папки\command', true);
r.WriteString('','"'+Application.ExeName+'" "%1"');
r.OpenKey('\Folder\shell\Вывести в Excel содержимое папки\command', true);
r.WriteString('','"'+Application.ExeName+'" "%1"?');
r.Free;
а в коде программы:
for i := 1 to ParamCount do
if LowerCase(ParamStr(i)) <> '' then
if LastDelimiter('?',ParamStr(i)) <= 0 then
ShowMessageParamStr(i)
else
ShowMessage (copy (ParamStr(i),0,length(ParamStr(i))-1));
end;
при правом клике на любой папке проводника показывается сообщение с путем этой папки
скачай "delphi world" там куча примеров есть
dracula (2006-05-15 16:12:00) [6]OpenDialog - чем не устраивает?
Это когда прога в работе уже, (да и вообще это не то) и слишком примитивно. А вот например человек захотел скопировать файлы, и чтоб не запускать прогу и там их не искать, выделяем файлы, жмём правую кнопку мыши и выбираем скопировать с помощью моей проги. Вот это будет правильно и красиво.
Poirot (2006-05-15 15:22:00) [7]http://www.rsdn.ru/summary/390.xml
Ламот (2006-05-15 14:52:00) [8]OpenDialog - чем не устраивает?