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

Свой пункт в контекстном меню на папке...

Добавлено: 05 фев 2005, 01:07
TimXP
Поиогите!
Как написать программу, чтобы в контекстном меню на любой папке появлялся новый пункт, при нажатии на который в этой папке создавался бы пустой файл readme.txt ?
Очень надо! Помогите!

Добавлено: 05 фев 2005, 16:40
AiK
TimXP, не надо дублировать одно и тоже сообщение в разных разделах форума.

Добавлено: 05 фев 2005, 16:56
AiK
см. в MSDN статью Creating Context Menu Handlers

Добавлено: 06 фев 2005, 22:07
OTELLO
Кароче надо делать так:

в реестре есть такой раздел HKEY_CLASSES_ROOT\Folder,
далее находим подраздел Shell и в ЭТОМ ПОДРАЗДЕЛЕ создаём новый подраздел с ЛЮБЫМ именем, но лучше с говорящим,кот. будет говорить о назначении пункта в контекстном меню! =), потом нажимаем на етот подраздел и в параметре По- умолчанию пишем ТО, ЧТО ХОТИМ УВИДЕТЬ В КОНТЕКСТНОМ МЕНЮ. Вот... Далее создаем опять новый подраздел под названием command и в нём, в параметре По- умолчанию записываем действие, кот. необходимо. В Вашем случае это "...\Прога.exe %1"- процент и 1 через пробел от расширения. Это мы передаём адрес ПАПКИ, на которой кликнули в Вашу прогу. А в Вашей проге должен быть обработчик следующий:

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

IF paramcount>0 THEN
  BEGIN
   [b]STR[/b]:=paramstr(1);
    FOR i:=2 TO paramcount DO str:=str+' '+ParamStr(i);     
  END;
но это для Дельфы, я Си не знаю =((, вот значит первая строка- это проверка на присутствие параметров (в нашем случае это тот самый %1), далее переменной STR присваеваем первый параметр, а потом в цикле проверяем на присутствие каких-нибудь есчё параметров,впринципе это необязательна,так- понту ради.

Всё, далее программа создает файл(ну т.е. надо её научить это делать =)))) с именем ReadMe.txt по адресу STR и всё =)))

Добавлено: 07 фев 2005, 14:09
Romeo
Я попробовал ради интереса. С реестром у меня ничего не получилось, OTELLO. Похоже информация как минимум не проверенная.

Добавлено: 08 фев 2005, 15:55
OTELLO
Romeo - информация проверенная, я сам это использую и именно передачу параметра- адрес папки. Т.е. практически тоже самое. Кароче реестр должен выглядеть так:

//NewWindow- подраздел
[HKEY_CLASSES_ROOT\Folder\shell\NewWindow]
//Элемент меню
@="&Открыть новое окно"
//Раздел command- раздел действий
[HKEY_CLASSES_ROOT\Folder\shell\NewWindow\command]
//Действие,кот происходит
@="explorer.ru %1"


@ - это означает "Параметр по- умолчанию"
в итогое откроется новое окно проводника с той папкой,на кот. мы кликнули...