Страница 1 из 1

Сложный вопрос

Добавлено: 04 май 2005, 17:21
alex_samus
На двух форумах , где я кидал этот вопрос мне так и не дали ответа на мой вопрос.
Вот какой это вопрос - надо добавить в контекстное меню windows
строку , которая будет запускать мою программу и , что главное, определять пути к выделеным файлам (мне нужно будет занести их в memo).Очень прошу помоч , заранее благодарен.

Добавлено: 04 май 2005, 17:45
YurikGL
Если не ошибаюсь, содержание контекстного меню определяется в реестре. Попробуй поискать в нем, как определяется, например, запуск WinRar и сделать по образу и подобию...

Добавлено: 05 май 2005, 09:27
alex_samus
Да , да вообщем ты прав , но дело в том , что в реестре я могу дабавить строку на открытие моего расширения , но моя программа ,для которой я это делаю , она сможет открыть файлы только если получит их пути. Может можно
как-то сделать , чтобы при нажатии строки в контекстном меню пути к выделеным файлам где-нибудь сохранялись.

Добавлено: 05 май 2005, 12:01
Romeo
Пути к выделенным файлам передаются в качестве параметров программы.

Добавлено: 06 май 2005, 00:02
alex_samus
Теоретически я это знаю , но как эти параметры потом считать и где они , ну что ли лежат.

Добавлено: 06 май 2005, 07:55
YurikGL

Добавлено: 07 май 2005, 16:14
alex_samus
А что делать если я выделяю несколько файлов , ведь должго передаваться несколько параметров?
Если выделить несколко файлов и открыть их то откроется несколько окон программы каждая из которых получит путь к одномуиз файлов
Я делаю так :

Код: Выделить всё

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 у меня расширение которое надо зарегистрировать

Добавлено: 12 май 2005, 23:25
Nucleus
Параметры определяются через ParamStr(параметр)
если это то....