Поиогите!
Как написать программу, чтобы в контекстном меню на любой папке появлялся новый пункт, при нажатии на который в этой папке создавался бы пустой файл readme.txt ?
Очень надо! Помогите!
Свой пункт в контекстном меню на папке...
Модераторы: Duncon, Hawk, Romeo, Eugie
TimXP, не надо дублировать одно и тоже сообщение в разных разделах форума.
Даже самый дурацкий замысел можно воплотить мастерски
см. в MSDN статью Creating Context Menu Handlers
Даже самый дурацкий замысел можно воплотить мастерски
Кароче надо делать так:
в реестре есть такой раздел HKEY_CLASSES_ROOT\Folder,
далее находим подраздел Shell и в ЭТОМ ПОДРАЗДЕЛЕ создаём новый подраздел с ЛЮБЫМ именем, но лучше с говорящим,кот. будет говорить о назначении пункта в контекстном меню! =), потом нажимаем на етот подраздел и в параметре По- умолчанию пишем ТО, ЧТО ХОТИМ УВИДЕТЬ В КОНТЕКСТНОМ МЕНЮ. Вот... Далее создаем опять новый подраздел под названием command и в нём, в параметре По- умолчанию записываем действие, кот. необходимо. В Вашем случае это "...\Прога.exe %1"- процент и 1 через пробел от расширения. Это мы передаём адрес ПАПКИ, на которой кликнули в Вашу прогу. А в Вашей проге должен быть обработчик следующий:
но это для Дельфы, я Си не знаю =((, вот значит первая строка- это проверка на присутствие параметров (в нашем случае это тот самый %1), далее переменной STR присваеваем первый параметр, а потом в цикле проверяем на присутствие каких-нибудь есчё параметров,впринципе это необязательна,так- понту ради.
Всё, далее программа создает файл(ну т.е. надо её научить это делать =)))) с именем ReadMe.txt по адресу STR и всё =)))
в реестре есть такой раздел 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;
Всё, далее программа создает файл(ну т.е. надо её научить это делать =)))) с именем ReadMe.txt по адресу STR и всё =)))
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Я попробовал ради интереса. С реестром у меня ничего не получилось, OTELLO. Похоже информация как минимум не проверенная.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Romeo - информация проверенная, я сам это использую и именно передачу параметра- адрес папки. Т.е. практически тоже самое. Кароче реестр должен выглядеть так:
//NewWindow- подраздел
[HKEY_CLASSES_ROOT\Folder\shell\NewWindow]
//Элемент меню
@="&Открыть новое окно"
//Раздел command- раздел действий
[HKEY_CLASSES_ROOT\Folder\shell\NewWindow\command]
//Действие,кот происходит
@="explorer.ru %1"
@ - это означает "Параметр по- умолчанию"
в итогое откроется новое окно проводника с той папкой,на кот. мы кликнули...
//NewWindow- подраздел
[HKEY_CLASSES_ROOT\Folder\shell\NewWindow]
//Элемент меню
@="&Открыть новое окно"
//Раздел command- раздел действий
[HKEY_CLASSES_ROOT\Folder\shell\NewWindow\command]
//Действие,кот происходит
@="explorer.ru %1"
@ - это означает "Параметр по- умолчанию"
в итогое откроется новое окно проводника с той папкой,на кот. мы кликнули...