Можно рассказать подробнее и структурированно на эту тему? Или где почитать?
Интересно:
- как создавать глаголы для различных объектов: отдельно для расширений, файлов, папок, рабочего стола или explorer-a, всех объектов.
- распространенные флаги и опции shell
1) для расширений:
Например: exe
Сначала узнаем псевдоним:
HKCR\.exe
@=exefile
Далее ищем команду:
HKCR\exefile ->
shell\open - команда для глагола "Открыть"
shell\runas - запуск от имени администратора
shell\runasuser - запуск от имени другого пользователя
Еще есть такое:
HKCR\AllFilesystemObjects\Shell - которая действует для всех объектов файловой системы.
Еще можно как-то сделать глагол только для папок или только для файлов.
Тоже интересно.
Теперь на счет флагов и дополнительных опций:
shell ->
open\ "EditFlags" - неясно
open\command\IsolatedCommand - команда, которая выполняется при запуске "от имени администратора"
runas\ "HasLUAShield" - изображение щита рядом со строкой контекстного меню.
shell\runasuser\ "Extended" - означает, что контекстное меню будет появляться только при одновременном нажатии Shift + Right Click
Согласно данным microsoft глагол есть простая текстовая строка,которую использует Shell для того,что бы определить какую операцию нужно выполнить.
Глаголы для определенного объекта определяются по схеме:
Принципиальное отличие от shell (Ex) - это то что данный глагол работает только с guid и всеми его подвидами (clsid например).
Кстати на сайте майкрософт это и не описано!
Да,это легко сделать вписав shell (Ex) для соответствующего объекта.
Нfпример Folder (папки)
HKEY_CLASSES_ROOT\Folder\shell
Дописав туда то,что нам нужно можно работать с папками.
И так с любым объектом.
В общем сам видишь ,твой ответ не могу сформулировать в конкретный вопрос.
Давай по порядку и конкретно?
Расскажу все что знаю,ничего не скрою)
Соответственно имя пункта можно задать через параметр по умолчанию,либо через глагол MUIVerb.
Если воспользоваться глаголом MUIVerb то мы получаем возможность добавить раскрывающиеся списки контексного меню.
Для этого регистрируются дополнительные пункты в разделе:
Имена пунктов в этом разделе задаются по такому же принципу,если используем MUIVerb то получаем возможность получать двойное или даже тройное раскрывающееся меню.
Что бы добавить их в список,нужно прописать в определенном порядке через глагол SubCommands,в том разделе где использовался глагол MUIVerb.
Для всех объектов:
Код:
HKCR\AllFilesystemObjects\Shell
В таком варианте контексное меню доступно для всех обьектов в открытых окнах и на рабочем столе,включая папки.
Если необходимо для какого то конкретного расширения файла - работаем с progid,добавляем раздел shell и command.
В shell имя и настройки,в command код команды.