Можно ли легко найти командную строку, эквивалентную пункту контекстного меню?

334
ETL

Например, Comodo Internet Security добавил два элемента в мое меню, вызываемое правой кнопкой мыши, «Сканировать с помощью Comodo» и «Запустить в контейнере Comodo». Я не особо хочу, чтобы они оба засоряли мое контекстное меню; Я никогда не собираюсь использовать сканирование (я предпочитаю Kaspersky для проверки файлов), и я редко собираюсь использовать виртуальный рабочий стол. Что я хотел бы сделать, так это отключить их через реестр (что я знаю, как это сделать), НО затем добавить пункт «Запуск в Comodo Container» в моем меню отправки. Я уже знаю, как добавить такие элементы, создав ярлык, содержащий аргументы командной строки в shell: sendto. Однако я не могу понять, какими должны быть эти аргументы, чтобы он выполнял ту же функцию, что и исходный пункт контекстного меню Comodo.

Кто-нибудь знает, есть ли простой способ выяснить cmd-эквивалент элемента контекстного меню, созданного приложением? Я хотел бы иметь возможность сделать это для нескольких различных приложений, а не только для Comodo. Я не знаю, есть ли универсальный способ по существу перевести реестр mumbo-jumbo в понятный код cmd, но Google ничего не нашел. Кто-нибудь знает, возможно ли это?

3
Итак, вы просите две вещи, правильно? Вы говорите: «* отключите их через реестр (что я знаю, как это сделать), НО затем добавьте пункт« Выполнить в Comodo Container »в моем меню отправки» *, поэтому вы просите две вещи? Подумайте [отредактируйте] формат вопроса, чтобы уточнить, если кто-то запутается - вы можете это сделать !! Pimp Juice IT 5 лет назад 1

1 ответ на вопрос

2
Ben N

Это может быть сложно, потому что есть несколько мест и методов для добавления пункта контекстного меню.

HKEY_CLASSES_ROOTв Реестре содержатся, помимо прочего, пункты контекстного меню и регистрации расширений оболочки. Некоторые подключи этого улья представляют виды объектов, которые вы видите в Проводнике. Возможно, вам придется поискать, где именно зарегистрирован ваш пункт меню. Особенно интересные ключи:

  • * относится ко всем файлам
  • Directory применяется ко всем каталогам при щелчке правой кнопкой мыши на элементе папки
  • BackgroundПодраздел Directoryприменяется ко всем каталогам, когда правая кнопка мыши на фоне текущей папки
  • exefile относится к приложениям (файлы EXE)

Некоторые из этих подразделов имеют shellподраздел, который содержит подразделы для специфических для оболочки регистраций. Регистрации с commandподключом представляют пункты контекстного меню. Например, в моей системе файлы AC3 имеют пункт контекстного меню «Воспроизвести с VLC media player», который идет из этой ветви:

HKEY_CLASSES_ROOT Subkey: ac3file Subkey: shell Subkey: PlayWithVLC Default value: Play with VLC media player Subkey: command Default value: "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --started-from-file --no-playlist-enqueue "%1" 

Значением по умолчанию для commandподраздела является командная строка, вызываемая при щелчке элемента. %1заменяется файлом / каталогом, в котором был использован элемент. Соответствующая статья HowToGeek.

К сожалению, у некоторых нет командной строки, и вместо этого они запускаются через COM-объекты. Некоторые элементы контекстного меню вообще не имеют отдельных записей реестра, а вместо этого динамически добавляются расширениями оболочки. Соответствующие расширения оболочки находятся под shellex\ContextMenuHandlersветкой ключа типа файла вместо shell. Если при щелчке по таким элементам появляется новый процесс, вы можете использовать Process Explorer, чтобы увидеть используемую командную строку - просто наведите курсор мыши на процесс. В противном случае может оказаться невозможным эмулировать пункт меню с помощью командной строки.

`HKEY_CLASSES_ROOT` также эквивалентен реестру` HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes`. Некоторые примеры командной строки: [команды VLC] (https://wiki.videolan.org/VLC_command-line_help), [команды Firefox] (https://developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options) [Команды Chromium] (https://www.chromium.org/developers/how-tos/run-chromium-with-flags). Biswapriyo 5 лет назад 0