Настройка подменю в проводнике
// Добавляем свое контекстное меню для объектов в проводнике Windows
// Для выполнения данного скрипта надо запустить Defy под администратором
ПутьКФайлу = Компьютеры.Директории("%RES%")+ "\Defy-m.exe";
// делаем общее подменю для директории
Раздел = "HKCR\Folder\shell\DefySubMenu";
Рез = Компьютеры.Реестр.Установить(Раздел, "ExtendedSubCommandsKey", "Folder\ContextMenus\DefySubMenu");
Если (Рез<=0) Тогда
Сообщить("Нет доступа на запись в реестр");
Возврат;
Конец;
Компьютеры.Реестр.Установить(Раздел, "Icon", ПутьКФайлу);
Компьютеры.Реестр.Установить(Раздел, "MUIVerb", "Defy-m");
Раздел = "HKCR\Folder\ContextMenus\DefySubMenu\shell\DefySubMenu";
// делаем подменю для анализа директории
Компьютеры.Реестр.Установить(Раздел+"1", "MUIVerb", "Анализ директории");
Компьютеры.Реестр.Установить(Раздел+"1\command", "", ПутьКФайлу+" dir ""%V""");
// делаем подменю для архивирования директории с добавлением текущего момента
Наименование = "Создать архив с текущей датой";
ПутьКФайлу2 = Компьютеры.Директории("%DATA%")+ Символы.ОС + Наименование + ".fts";
Скрипты.Записать(Наименование, ПутьКФайлу2);
Компьютеры.Реестр.Установить(Раздел+"2", "MUIVerb", Наименование);
Компьютеры.Реестр.Установить(Раздел+"2\command", "", ПутьКФайлу+" script """+ПутьКФайлу2+"" " -run -hide -close -par=""%V""");
// здесь можно дописать свои варианты подменю для директорий
// Удалим другие подменю если они есть
Компьютеры.Реестр.Удалить(Раздел+"3");
Компьютеры.Реестр.Удалить(Раздел+"4");
Компьютеры.Реестр.Удалить(Раздел+"5");
// делаем общее подменю для любого файла
Раздел = "HKCR\*\shell\DefySubMenu";
Компьютеры.Реестр.Установить(Раздел, "ExtendedSubCommandsKey", "*\ContextMenus\DefySubMenu");
Компьютеры.Реестр.Установить(Раздел, "Icon", ПутьКФайлу);
Компьютеры.Реестр.Установить(Раздел, "MUIVerb", "Defy-m");
Раздел = "HKCR\*\ContextMenus\DefySubMenu\shell\DefySubMenu";
// делаем подменю для открытия любого файла в Defy-m
Компьютеры.Реестр.Установить(Раздел+"1", "MUIVerb", "Открыть");
Компьютеры.Реестр.Установить(Раздел+"1\command", "", ПутьКФайлу+" ""%V""");
// делаем подменю для открытия любого файла как текст
Компьютеры.Реестр.Установить(Раздел+"2", "MUIVerb", "Открыть как текст");
Компьютеры.Реестр.Установить(Раздел+"2\command", "", ПутьКФайлу+" text ""%V""");
// делаем подменю для открытия любого файла как двоичный файл
Компьютеры.Реестр.Установить(Раздел+"3", "MUIVerb", "Открыть как двоичный файл");
Компьютеры.Реестр.Установить(Раздел+"3\command", "", ПутьКФайлу+" binary ""%V""");
// здесь можно дописать свои варианты для любого файла
// Удалим другие подменю если они есть
Компьютеры.Реестр.Удалить(Раздел+"4");
Компьютеры.Реестр.Удалить(Раздел+"5");
Сообщить("ОК");