Как добавить свои команды в контекстное меню файлов и удалить ненужные

Контекстные меню различных файловых форматов и типов содержат наборы команд, включающие порой совершенно лишние элементы. А вот тех, которые хотелось бы иметь, нет. С другой стороны, большинство пользователей располагает несколькими программами для работы с одним типом файлов, а вот удобный способ отправлять в них выбранные элементы отсутствует. Однако отредактировать список команд не так уж сложно, главное правильно следовать рекомендациям, приведенным ниже.

Что потребуется для редактирования контекстных меню

Все интересующие нас данные располагаются в системном реестре, а значит, нам потребуется соответствующий редактор, желательно более продвинутый, чем штатный Regedit.exe. Одним из таких продвинутых средств является «Registry Workshop» – более удобный и широкофункциональный редактор трудно себе представить.
Конечно, можно обойтись штатным средством, но лучше все же не полениться и поискать торрент раздачу с этой утилитой. Ищите русифицированную версию – будет легче работать.
Итак, будем считать, что вы уже скачали, установили и запустили «Workshop», либо воспользовались системным «Редактором Реестра». Разверните самую первую ветвь, имеющую наименование «HKEY_CLASSES_ROOT», так как все операции мы будем производить именно в ней.

Редактирование контекст-меню, общего для всех файловых форматов
Начнем по порядку – с самого первого раздела, у которого вместо нормального наименования стоит символ «*».

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

В данном родительском объекте, впрочем, как и в последующих, нам требуется дочерний раздел «shell» («оболочка»). Найдем его и выделим – в правой части окна отобразятся два подраздела, присутствующих здесь изначально, а также строка параметра «(По умолчанию)».

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

Системный Блокнот

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

  1. Создание нового дочернего раздела
    Сделав правый клик по строке «shell», выберите в раскрывшемся контекст-меню нужную строку, затем нажмите ее – новый подраздел создастся моментально.
  2. Ввод или изменение имени
    Сразу после создания нового пункта, название будет еще не определено (доступно для изменения). То есть, свое наименование можно вводить сразу. Однако если вы до этого переключитесь на другое окно, либо просто где-нибудь щелкните мышью, то неопределенное имя закрепится и его придется переименовывать. Название пункта лучше вводить латинскими буквами, но можно кириллицей, главное без пробелов. Например: «OpenWithNotepad».
  3. Установка значения параметра «(По умолчанию)»
    В правой части окна отображается основной параметр этого подраздела, который здесь играет роль «переводчика». То есть, его значение будет отображаться как текст команды в Проводнике. Если же оно не установлено, то отображаться будет оригинал имени. Соответственно, нам нужно ввести сюда внятную информацию на русском языке – кликните дважды по строке (ближе к началу) и, в открывшемся диалоге, введите какое-нибудь понятное значение. Например, «Открыть в Блокноте».
  4. Добавление вспомогательного параметра

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

    Сделайте правый клик по чистому пространству рабочей части окна, затем наведите курсор на фразу «Новый Параметр» – выдвинется подменю, где нужно выбрать атрибут «Строковый».

    Сразу же нужно ввести наименование «Icon» для нового параметра, а затем, вызвав двойным кликом диалог редактирования, – значение. Это путь к объекту, содержащему нужную нам иконку, плюс ее порядковый номер в списке ресурсов. Цифра 0 указывает на самую первую иконку – обычно она является «лицом» программы или утилиты. Порядковый номер ставится после запятой, без пробела. В целом же значение таково:
    C:\Windows\System32\notepad.exe,0

  5. Непосредственное создание командной ссылки
    Это самый главный этап, предыдущие операции ничего не значат без него. Нужно создать подраздел – все так же, как в пунктах 1 и 2 (см. выше), только родительским разделом здесь выступает «OpenWithNotepad», а названием – слово «command».
    Затем нужно установить значение его основного параметра (см. пункт 3). Это следующие данные:
    "C:\Windows\System32\notepad.exe" "%1"

    Здесь мы видим путь к Блокноту, действующий как ссылка (link), а после него – командный атрибут. Ссылка запускает приложение, а атрибут соотносит с ним выделенный документ. Если ссылка будет без атрибута, то приложение станет запускаться просто так, без документа, а вот совмещенные вместе, они выполняют то, что от них требуется. Оба составляющих разделены пробелом и заключены в прямые кавычки – это обязательное условие для обычных путей. То есть, тех, что начинаются с буквы диска, а не сразу с обусловленного системой наименования папки.
    В принципе, для данного случая возможен другой вариант командной ссылки (без кавычек): %SystemRoot%\notepad.exe %1. Но такой вариант годится редко, поэтому лучше взять на вооружение обычную методику.
    Ну вот, одну новую строку в контекстное меню мы добавили.

    Ремарка! Воспринимайте проделанные операции как общий алгоритм действий – добавляйте свои приложения, повторяя вышеизложенные действия, а для закрепления навыков можем добавить еще одну похожую запись.

Альтернативный текстовый редактор

Существует прекрасная замена системному блокноту – небольшая программка с широким функционалом «Notepad++». Если у вас ее до сих пор нет, скачайте обязательно. Редактор инсталлирования не требует, он портативный и его рабочая папка может располагаться где угодно – никакого значения это не имеет. Вот связь с ним мы и вставим для второго примера.
Используя прежнюю последовательность операций, создадим дочерний раздел для элемента «shell», затем присвоим ему наименование «OpenInNotepad++».
Почему «In», а не «With»? Потому, что названия сортируются в алфавитном порядке, а так как альтернативный Блокнот гораздо лучше системного и будет использоваться намного чаще, то желательно, чтобы его связующая строка была выше других.
Исходя из этого, вы можете управлять последовательностью строк списка. Можно вообще впереди наименований расставить цифры в нужном вам порядке – в контекстном меню их представители будут соблюдать заданную очередность.
Далее, как прежде вводим локализованную версию имени: «Открыть в Notepad++». При добавлении иконки, нужно учитывать, что ее адрес ведет к самой программе, а не библиотеке ресурсов.

Помимо ярлыков, отправляющих выбранный объект в какую-либо программу, можно добавлять элементы, выполняющие совершенно другие функции.

Смена владельца объекта

Очень полезным пунктом контекст-меню может стать команда, которая редактирует параметры безопасности и моментально делает текущего пользователя владельцем выделенных файлов. Это частенько бывает нужным для того, чтобы получить возможность удалять или редактировать файлы, владельцами которых являются другие учетные записи компьютера (система, установщик программ).
Понятно, что здесь алгоритм действий должен немного отличаться. Впрочем, ненамного – различие состоит лишь в содержании, а не принципе. Короче, действуем так:

  1. Как прежде, создаем дочерний раздел.
  2. Назовем его «runas2». Почему «2» – поймете чуть позже.
  3. Вписываем локализованный вариант имени – «Стать Владельцем» или что-нибудь аналогичное.
  4. Формируем параметр «REG_SZ», присваиваем ему название «Icon», затем прописываем значение – адрес какого-либо административного значка. Например: C:\Windows\SystemResources\imageres.dll.mun,1 или просто путь к какому-нибудь подходящему ICO-файлу.
  5. В ответвлении «runas2» образовываем подраздел «command» и вставляем следующее значение «по умолчанию»: cmd.exe /c takeown /f "%1" && icacls "%1" /grant *S-1-5-32-544:F

    Так как этот текст будет читаться системным модулем «Командная строка», то все пробелы, наклонные черты, кавычки и другие символы должны быть введены с абсолютной точностью. Иначе никакого толка не будет.

    Далее алгоритм меняется:

  6. Необходимо организовать еще один строковый параметр, именуемый «IsolatedCommand», и продублировать в нем предыдущее значение (по умолчанию).
  7. Надо вернуться на ступень выше и организовать еще два строковых параметра. Они не должны иметь значений, а лишь наименования: «HasLUAShield» и «NoWorkingDirectory».

    Несмотря на то, что данная опция должна присутствовать в контекст-меню всех файловых типов, на EXE-файлы, к сожалению, это не распространяется.

Поэтому придется осуществить еще несколько действий:

  • Надо произвести копирование всего подобъекта «runas2» – выделите его, затем нажмите клавиатурное сочетание «Ctrl+C».
  • Теперь, передвигая ползунок полосы прокрутки (скрулбара), отыщите и разверните ответвление реестра «exefile».
  • Выделите подраздел «shell» и активируйте сочетание «Ctrl+V».


Как видите, здесь уже имеется один пункт «runas», но так как название вставляемого нами элемента отличается наличием цифры 2, то никакого конфликта при вставке не возникает.
Все, теперь для EXE-файлов тоже существует возможность моментально сменить владельца.
Итак, с добавлением этой функции мы закончили, однако есть другие, очень полезные возможности Проводника, которые неплохо иметь во всплывающих меню не только файлов, но и других объектов.

Копирование и перемещение объектов

Эти опции системной оболочки не имеют никакого отношения к каким-либо программам, так как являются функциями Проводника. Просто обычно они активны лишь на ленте.

Согласитесь, что пользоваться этими функциями Проводника посредством ленты не слишком удобно – требуется много лишних движений мышью. Если согласны с этим мнением, найдите ответвление реестра «AllFilesystemObjects», который отвечает абсолютно за все объекты, встречающиеся в окнах системной оболочки, и разверните его.
Теперь, так как мы имеем дело с функциями Проводника, раскройте дочернее ответвление «shellex» (расшифровывается как «shell extentions» – «расширения оболочки»). Здесь вам потребуется подраздел «ContextMenuHandlers» (Операторы контекст-меню) – его тоже необходимо привести в развернутое состояние.
Далее действуйте следующим образом:

  • Сделайте правый клик по ответвлению «ContextMenuHandlers» и создайте новый раздел, именуемый «CopyTo»
  • Назначьте значением параметра по умолчанию идентификационный номер сервиса копирования: {C2FBB630-2971-11D1-A18C-00C04FD75D13}

Этими действиями вы добавили в контекстные меню файлов, папок и ярлыков функцию дублирования их в других местах. Осталось аналогичным образом добавить функцию перемещения:

  • Организуйте подпункт и назовите «MoveTo»
  • В качестве значения вставьте следующие данные: {C2FBB630-2971-11D1-A18C-00C04FD75D13}

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

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

Редактирование контекстных меню у типов файлов

Данный метод основывается на таком системном потенциале, как ассоциация файловых форматов и типов с какими-либо программами. Соответственно, для дальнейших операций нам требуется раздел «SystemFileAssociations» – найдите это ответвление, выполните развертывание и прокрутите вложенный список почти до самого низа – интересующие нас подразделы располагаются там.

Текстовые файлы

Этому понятию соответствует тип «text». Его воплощением в реестре является одноименный раздел, который нам и требуется отредактировать.
Раскрыв подраздел «shell», можно смело удалить имеющиеся там элементы «edit» и «open», так как оба они отсылают документ в системный Блокнот, а командная ссылка на этот редактор у нас уже есть. Вообще непонятна логика мышления программистов «Microsoft», расположивших здесь два одинаковых ярлыка (хватило бы одного)!

Вставить же сюда свои пункты – дело стоящее. Предположим, у вас установлен офисный пакет программ «Libre», а параллельно с ним возможно «Microsoft Office». Также система имеет встроенный компонент «Wordpad». Для редактирования документов он не слишком-то удобен, но для быстрого просмотра хорош, так как запускается почти моментально, в отличие от приложений офисных пакетов. Для примера внедрим в реестр записи этих программ.

  1. Редактор документов «LibreOffice»
    Выполните начальные операции по созданию нового подраздела, вводу наименования и его локализации (пункты 1, 2 и 3 главы «Системный блокнот»). Не забудьте вместо слов «Notepad» и «Блокнот» проставить другое имя, например, «LibreWriter» или, чтобы было еще понятней, «LibWord».
    Прежде, чем выполнять операции пункта 4, необходимо скопировать адрес EXE-файла следующего приложения:
    1. Перейдите в директорию установки «LibreOffice»
    2. Далее в ее подпапку «program»
    3. Найдите и выделите swriter.exe (аналог редактора «Microsoft Word»)
    4. На вкладке ленты «Главная» щелкните по кнопке «Скопировать путь»
    I
    Теперь буфер обмена содержит адрес приложения «LibreOffice Writer», который вам потребуется вставлять во время реализации конечных операций (пункты 4, 5):
    • с цифрой 0 – для значения параметра «Icon»,
    • с атрибутом "%1" – в подразделе «command».
  2. Программа «Microsoft Word»
    Аналогичным способом делаются записи, касающиеся любых других приложений, разнятся лишь адреса исполняемых файлов.
    Простейший способ получить адрес данного редактора – вставить слово WINWORD.EXE в поле поиска Проводника, а когда результаты поиска будут готовы, выделить найденный объект и скопировать его путь.

    Совет! Если у вас несколько дисковых томов, а вы не помните, на каком из них установлен офисный пакет, поиск лучше производить из окна «Мой компьютер».

  3. Встроенный редактор «WordPad»
    Если вы не удаляли этот дополнительный компонент операционной системы и желаете пользоваться им чаще, то используйте во время добавления записей в реестр такой путь:
    C:\Program Files\Windows NT\Accessories\wordpad.exe

Отрицательные моменты и их нейтрализация

К сожалению не все текстовые форматы будут иметь в своих контекстных меню эти добавленные связи, а только те, что напрямую ассоциированы с данным типом. Кроме TXT-файлов сюда относятся INI, XML и некоторые другие.
Чтобы связать новые команды с другими форматами документов, нужно сделать то же, что мы делали с разделом «runas2», когда нужно было добавить функцию смены владельца для EXE-файлов (см. главу выше). Только на этот раз мы будем копировать/вставлять все ответвление «shell» (целиком). Итак:

  1. Выделите и скопируйте вышеназванный подобъект раздела «text».
  2. Прокручивайте дерево вверх, останавливаясь на тех расширениях, которые без проблем могут быть открыты в вышеупомянутых текстовых редакторах.
  3. Выделяйте эти разделы и вставляйте скопированный элемент.

Основные форматы, поддерживающие ассоциацию с добавленными приложениями, имеют расширения «.odt», «.rtf», «.doc» и «.docx».

Помимо этих разделов, можно вставить скопированные данные в «.htm», «.html», «.mht» плюс некоторые другие объекты, соответствующие веб-страницам. Однако тут есть нюансы, требующие отдельного разбора.

Веб-страницы

Для интернет-страниц нет специального файлового типа, поэтому, для модификации их контекстных меню необходимо использовать разделы форматов, находящиеся непосредственно в ветви «HKEY_CLASSES_ROOT», либо подобъекты раздела «SystemFileAssociations», одноименные расширениям.
Второй вариант удобней, тем более что мы уже реализовали здесь некоторые изменения. Осталось подкорректировать их еще чуть-чуть.
Дело в том, что приложения, которые мы только что добавили, более подходят для редактирования, а не для чтения. «Wordpad» и вовсе открывает интернет-документы как исходный код, а не как удобочитаемый текст с картинками. Значит, нужно присовокупить к ним командные ссылки удобных веб-браузеров, запускающихся быстро. Наверняка у вас такие есть.
Алгоритм действий вам уже знаком сполна – действуйте, организовывайте связи с имеющимися на вашем компьютере браузерами. Можете сначала присовокупить все, а затем, испытав их в действии, удалить те, что запускаются медленно или открывают страницы не совсем адекватно.

Пример:

  • Разверните раздел «.htm»
  • • Сделайте в подразделе «shell» новые записи с использованием имени и адреса «IE»: C:\Program Files\Internet Explorer\iexplore.exe
  • Если у вас установлен «Notepad++», о котором речь шла в начале статьи, то «Wordpad» становится здесь лишним (удалите этот ярлык) – «Notepad++», как редактор исходного кода, несравнимо лучше
  • Очень удобен для чтения интернет-страниц браузер «Opera», но только какой-нибудь ранней версии (не позже 10.60)
  • Возможно, вы имеете специальный редактор сайтов «Dreamweaver» – присовокупите его тоже

Изображения

За этот тип отвечает раздел «image», а записи, присутствующие в его подразделе «shell», воспроизводятся контекстными меню распространенных растровых форматов изображений.
Внедрив сюда командные ссылки ваших графических редакторов и браузеров, вам станет очень удобно открывать картинки в любом из них. Также можно удалить отсюда «print», так как распечатывать изображения лучше из графических браузеров или редакторов – оттуда управление печатью намного функциональней.

Теперь, посмотрев на контекст-меню какого-нибудь графического файла, вы увидите, что там присутствуют пункты, которыми вы возможно никогда не пользуетесь. Это:

  • «3D Edit» – отправляет картинку в приложение «Paint 3D». Этой ссылкой пользуются считанные единицы пользователей и, скорее всего, вы не из их числа.
  • Команда системных Параметров, назначающая выбранную картинку обоями стола. Вряд ли вы меняете обои настолько часто, чтобы данный пункт «мозолил» глаза.
  • «Повернуть вправо» и «Повернуть влево». Эти команды лучше никогда не применять, если вы дорожите качеством своих фотографий, так как они реально поворачивают изображение (перестраивают растр), а не изменяют метаданные EXIF.

Без этих элементов работать с контекстным меню гораздо удобней, но, естественно, решать вам.

Если надумаете удалить их, то это придется делать для каждого расширения отдельно. То есть прокручивать дерево вверх, разворачивать нужные вам разделы, затем удалять из них подразделы «shell» и «shellex».

Видео и музыка

Таким же образом обрабатываются типы «video» и «audio», а также их распространенные расширения. Подробно останавливаться на этом не будем – думается, что и так все понятно. А вот о форматах стоит поговорить детально.

Редактирование контекст-меню отдельных файловых форматов

Для начала рассмотрим, чем отличаются друг от друга расширения и форматы. Как вы, наверное, уже заметили, одни названия разделов в ветви «HKEY_CLASSES_ROOT» начинаются с точки, другие – сразу с буквы или цифры. Те, что с точкой, соответствуют расширениям, остальные – разным элементам файловой системы, протоколам, но главным образом форматам.
Default-параметр раздела, название которого начинается с точки, закрепляет текущее расширение за определенным форматом. Чтобы было понятней, рассмотрим все на примере раздела «.dll». Значение основного параметра которого – «dllfile». Это имя раздела, с которым ассоциируется данное расширение и которое, по сути, является его форматом.

Мы не случайно выбрали для примера разделы, принадлежащие этой разновидности библиотек – попутно добавим сюда одну очень полезную запись. Это командная ссылка, отсылающая DLL-файл к серверу регистрации объектов:

  1. Перейдите в раздел «dllfile». Делается это очень легко – кликните правой клавишей по этому слову, затем нажмите третью строку выпавшего контекст-меню.
  2. Развернув данный элемент, вы заметите, что здесь отсутствует ответвление «shell». Поэтому надо его создать.
  3. Далее нужно сформировать подраздел «RegDLL» и ввести какой-нибудь понятный текст, такой как «Зарегистрировать Библиотеку».
  4. Затем сформируйте подобъект «command» и вставьте следующую информацию как содержимое default-параметра: "C:\Windows\System32\regsvr32.exe" "%1"

    Этот принцип поможет вам, если вы захотите подредактировать меню других форматов.

 

WinNOTE
Добавить комментарий