Создание каскадного меню [утилита Cascade Menu Creator]

Тема в разделе "Visual Basic 6 / Сценарии VBScript, JScript", создана пользователем Dragokas, 25 сен 2013.

  1. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.497
    Симпатии:
    4.312
    Нужна помощь в создании скрипта.
    А давайте сочиним такое в дополнение к теме о твиках.

    Осн. идея:
    Автоматическое добавление пункта в группу контекстного меню файла, используя это же меню.

    Вы можете с минимальными усилиями организовать себе нечто:
    Add_to_Context.png

    Техзадание на примере:

    Запускаем батник (в перспективе графический интерфейс).

    Этап 1. Установка
    У нас спрашивают:
    - "Как назвать главную группу* в контекстном меню файлов?".
    - "Добавить группу для всех типов файлов?"

    Что происходит:
    Мы назвали свою группу "MyTools".
    В группе "My Tools" будет пункт "Добавить новый глагол в группу".

    *Под группой подразумевается аналог контекстного пункта, как "Создать" (прим., "создать ярлык") со всплывающим меню.
    Почему работаем с группой? - Чтобы не засорять основное контекстное меню редко используемыми пунктами.

    Этап 2. Использование.

    Практический пример

    1. Нужно получить быстрый доступ к ветке реестра
    HKCU\Software\Microsoft\Windows\CurrentVersion\Run по правому клику на любом файле, или по тексту, скопированному в буфер обмена:

    А) Качаем утилиту Sysinternals RegJump.
    Распакуем,
    копируем в Program Files, чтобы не потерялась (c:\program Files\RegJump\RegJump.exe)

    Б) Правый клик по RegJump.exe -> My Tools -> Добавить в группу...
    Появляется консоль с вариантами на Ваш выбор:

    По сути это замена ярлыкам на рабочем столе, только на много круче.
    Из контекстного меню можно будет быстро создать пункты для запуска любых программ с аргументами, подстроить под определенный тип файла, работать с буфером, перетащить в группу уже имеющуюся другую группу в виде подгруппы (например, SetTools), сохранить настройку в файл.

    Koza Nozdri, Кирилл поможешь с параметрами реестра и правильной терминологией?
    А еще - можно ли вообще создавать подгруппу в группе?
     
    Последнее редактирование: 25 сен 2013
    3 пользователям это понравилось.
  2. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    Dragokas, конечно!
    Я щас ответ в практике дам и сделаем-либо сегодня либо завтра вечером.
    Все это возможно-о чем ты пишешь,но нужна будет помощь с кодом vbs.

    И еще:

    Создав группу мы убъем существующую группу если она есть.
    Тут либо заменять либо создать меню которое не зметно для юзера появится вместо контексного меню.
    Во нифига себе чего я щас придумал-это будет отличная альтернатива классическому контексному меню,щас ответ дам пару экспериментов проведу и отпишусь.
     
    Последнее редактирование: 25 сен 2013
    1 человеку нравится это.
  3. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    Насчет двойного раскрывающегося меню:можно создавать не удаляя прежний пункт.
    Давай начнем с вин 7.

    1)работаем только с меню рабочего стола или файлы и папки тоже?
    2)сделай плиз какой нибудь vbs с диалогом с подавлением окна выполнения скрипта
     
    Последнее редактирование: 27 сен 2013
  4. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    Dragokas, попробуй твик и посмотри правильно ли я понял что делать
    Посмотреть вложение 3.rar

    Если оно то доработаем и будет работать.

    что бы пункты пустые не были пока что ссылки оставил-там недолго то что нужно заделать.
     
    Последнее редактирование модератором: 26 сен 2013
    machito и Dragokas нравится это.
  5. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    обновил твик,вот такая конопля получилась:
    Безымянный.png
    в общем если это оно то осталось все в код укатать и алгоритм проработать.
     

    Вложения:

    • 3.rar
      Размер файла:
      832 байт
      Просмотров:
      2
    machito и Dragokas нравится это.
  6. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.497
    Симпатии:
    4.312
    Кирилл, ты молодец. Лаконично расписал Reg-файл. Я разберусь.
    Но нужно еще чтобы меню появлялось и в случае правого клика на любом файле/папке, а не только в пустое место рабочего стола.
    При этом моему запускаемому скрипту передавался бы полный путь к объекту, который мы тацнули мышей (при выборе п. "Добавить меню...").

    Добавлено через 3 минуты 16 секунд
    Расшифруй, пожалуйста, флаг:
     
    Последнее редактирование: 27 сен 2013
  7. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    сделаем

    тут нужен скрипт а точнее набор скриптов в порядке определенном,а точнее вбс запускаемый в скрытом режиме.
    я где то у тебя видел скрипт с выбором пути к папке-он нам пригодится.

    я пока что сделаю твик для всех объектов,а с тебя задачи для каждой менюшки-вдруг я не так что понял.

    Добавлено через 2 минуты 24 секунды
    если ты первый твик не применял,то этим флагом я отделю разделительной полосой менюшки
    Код (Text):
    добавление пунктов...
    удаление пунктов...
     
    от остальных пунктов в этом поле (для глаза полоса малозаметна но смотрится эстетичнее и группировка удачнее) ,разделитель в общем...

    Добавлено через 4 минуты 25 секунд
    а вот скрипт то готовый-
    http://safezone.cc/forum/showpost.php?p=152721&postcount=11
    немного изменить только его.

    Добавлено через 14 минут 17 секунд
    Принимай:
    Код (Microsoft Registry):
    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\MyTools]
    "MUIVerb"="MyTools"
    "SubCommands"="NewPunkt;DelPunkt;regedit;taskmgr;devmgr"
    "Icon"="imageres.dll,104"
    "Position"="top"

    [HKEY_CLASSES_ROOT\*\Shell\MyTools]
    "MUIVerb"="MyTools"
    "SubCommands"="NewPunkt;DelPunkt;regedit;taskmgr;devmgr"
    "Icon"="imageres.dll,104"
    "Position"="top"

    [HKEY_CLASSES_ROOT\Directory\shell\MyTools]
    "MUIVerb"="MyTools"
    "SubCommands"="NewPunkt;DelPunkt;regedit;taskmgr;devmgr"
    "Icon"="imageres.dll,104"
    "Position"="top"

    [HKEY_CLASSES_ROOT\Folder\shell\MyTools]
    "MUIVerb"="MyTools"
    "SubCommands"="NewPunkt;DelPunkt;regedit;taskmgr;devmgr"
    "Icon"="imageres.dll,104"
    "Position"="top"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NewPunkt]
    "MUIVerb"="Добавление пунктов..."
    "Icon"="Explorer.exe"
    "SubCommands"="Punctor;NoPunctor"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\DelPunkt]
    "MUIVerb"="Удаление пунктов..."
    "Icon"="Explorer.exe"
    "CommandFlags"=dword:00000040
    "SubCommands"="Punctor;NoPunctor"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Punctor]
    @="Добавляемый пункт"
    "Icon"="Explorer.exe"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Punctor\command]
    @="Notepad.exe"


    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\regedit]
    @="Редактор реестра"
    "Icon"="regedit.exe"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\regedit\command]
    @="regedit.exe"


    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\devmgr]
    @="Диспетчер устройств"
    "Icon"="devmgr.dll,4"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\devmgr\command]
    @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
      00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,6d,00,\
      63,00,2e,00,65,00,78,00,65,00,20,00,2f,00,73,00,20,00,25,00,53,00,79,00,73,\
      00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,\
      74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,65,00,76,00,6d,00,67,00,6d,00,74,\
      00,2e,00,6d,00,73,00,63,00,00,00

      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\taskmgr]
    @="Диспетчер задач"
    "Icon"="taskmgr.exe"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\taskmgr\command]
    @="taskmgr.exe"


    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NoPunctor]
    @="Еще один пункт..."
    "Icon"="Explorer.exe"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\NoPunctor\command]
    @=""

     
    если норм -тогда можно укладывать код к каждому пункту.

    Добавлено через 2 минуты 3 секунды
    предлагаю два варианта:
    Код (Text):
    добавить этот файл в пункт меню
    выбрать программу\файл для добавления (открывается окно выбора)
    Добавлено через 15 минут 10 секунд
    я закомментирую
     
    Последнее редактирование модератором: 4 мар 2016
  8. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.497
    Симпатии:
    4.312
    Hasta la vista, baby :) уже применил )))

    Та не нужно. Остальное уже понятно. Я статью читал. Просто ты на рег-файлах уже собаку съел, знал, что быстро сочинишь демку.

    Усложнение на потом оставим, а то я так не один проект не закончу. Но твои (и не только) новые идеи развития пригодятся.

    ... работаю над установщиком.
     
    Последнее редактирование: 27 сен 2013
  9. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.497
    Симпатии:
    4.312
    Где-то тормознул. Глаза слипаются. Глянешь? - копировал твой рег., только имена другие. Но всплывающее меню не работает.
     

    Вложения:

  10. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    у меня работает!
    что у тебя не появляется,дай скрин.
     
  11. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.497
    Симпатии:
    4.312
    Я применяю твой reg-файл, затем свой прототип CMD.

    После твоего при наведении на "MyTools" - разворачивается контекстное меню.
    После моего - перестает. (Win7 x64 ru Ultimate)

    Пока больше не занимался ним.
     
  12. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    Dragokas, может возникать ошибка при перезаписи значений.
    Сделай снимок с моим твиком и с твоим скриптом по очереди с помощью Regshot.exe,либо экспорт разделов.
    Тогда можно будет точно сказать в чем проблема.
     
  13. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.497
    Симпатии:
    4.312
    Да, спасибо, так и поступлю.
    Помощь понадобится уже после релиза.

    Пока работаю над логовыжималкой.
     
    1 человеку нравится это.
  14. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    Погоди с релизом,есть идея.
    Саму утилиту спрятать из контексного меню до нажатия клавиши шифт,при этом будет появляться пункт управления утилитой.
    а создаваемые пункты будут уже появляться как обычно+возможность добавить скрываемые пункты до нажатия шифта.

    мм?
     
  15. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.497
    Симпатии:
    4.312
    Чтобы дополнительно сэкономить место... Хм. Думаешь стоит?...
    Если в это контекстное меню добавим много полезных функций, есть вероятность, что ним будем часто пользоваться.
    Знаешь: можно вынести это в настройку при установке утиля. Вариант?
    А такой трюк будет работать в XP тоже ?
     
  16. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    хр сегодня постараюсь поставить,я ее реестр плохо уже помню-давно не юзал.
    по поводу часто пользоваться-конечно будут,попробуй найди нормальную и удобную утиль для этого?
    нету,фсякая фикня тока.
    а запрос популярный)))
     
  17. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.497
    Симпатии:
    4.312
    Утиль то как назвать? :) Какие говоришь, поисковые запросы популярны...?
    Я обычно без названия не делаю =]]]
     
  18. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    ну назови...DesctopMultiMenu
    или Dragokas end korpariteg)))
     
    machito и Dragokas нравится это.
  19. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.497
    Симпатии:
    4.312
    Кирилл, не тролли :D
     
  20. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.232
    Симпатии:
    4.980
    В общем с ХР печально...там только если использовать специальные dll и все такое,одним реестром никак не обойтись.
    Как вариант -муляж контексного меню и vbs с выбором пунктов,но кажется это сложно для реализации.
    По крайней мере из того что я успел изучить в шапке с полезной литературой -грамотного решения в голову не пришло.
     

Поделиться этой страницей