![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Параметры программы [D7, WinXP]
alex_samus © (2005-05-08 19:57:00)Люди помогите.Мне надо , чтобы у определенных расширений файлов в контекстном меню была возможность открыть их в моей программе и мне соответственно надо получить путь к выделенному файлу , который как я знаю передается программе как параметр, а что делать если я выделяю несколько файлов , ведь должго передаваться несколько параметров?
Если выделить несколко файлов и открыть их то откроется несколько окон программы каждая из которых получит путь к одномуиз файлов
Я делаю так :
var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CLASSES_ROOT;
reg.LazyWrite := false;
reg.OpenKey(edit2.Text+'\shell\open\command', true);
reg.WriteString('', application.ExeName+' %1');
reg.CloseKey;
reg.OpenKey(edit2.text+'\DefaultIcon',true);
reg.WriteString('', application.ExeName+',0');
reg.CloseKey;
reg.free;
end;
//В edit2 у меня расширение которое надо зарегистрировать
Юрий Зотов (2005-05-09 15:05:00) [1]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=904
Marser (2005-05-09 00:04:00) [2]Могу ошибаться, но кажется, это уже вовсе и не реестра проблемы.
alex_samus (2005-05-08 23:56:00) [3]Ну, понимаешь этот код работает , но он работает так же как и мой, и он так же как и мой при выделении нескольких файлов открывает несколько окон программы и передает каждому из них по пути, мне надо , чтобы все пути передовалися одному окну программы(наверное все пути должны передаваться , как параметры).
Marser (2005-05-08 21:13:00) [4]Вот реально работающий фрагмент:
procedure TForm1.checkreg;
begin
r:=Tregistry.Create;
try
r.rootkey:=HKEY_CLASSES_ROOT;
with r do
begin
openkey('.mcf',true);
writestring('','Calculating formula');
closekey;
openkey('Calculating formula\Shell\open',true);
writestring('','Запустити калькулятор');
closekey;
openkey('Calculating formula\Shell\open\command',true);
writestring('', extractfilepath(paramstr(0))+'mcalc.exe %1');
closekey;
openkey('Calculating formula\DefaultIcon',true);
writestring('',extractfilepath(paramstr(0))+'def.ico');
closekey;
end;
finally
r.Free
end
end;
Ассоциирует .mcf с экзешником, находящимся рядом в папке.