Архивы: по дате | по разделам | по авторам

Редактируем контекстное меню Windows

АрхивСистема
автор : Евгений aka f2065    28.10.2005

Со временем контекстное меню "Проводника" Windows разрастается до неимоверных размеров, храня ссылки на различные программы, в том числе и ненужные.

Со временем в контекстном меню "Проводника" Windows появляется много ненужных (в этом меню) программ. В этой статье мы расскажем, как можно его отредактировать, удалив лишние ссылки на программы и приведя в божеский вид.

Начнём с теории. Контекстное меню хранится в реестре. Одни программы записываются в разделе HKEY_CLASSES_ROOT\*\shell, другие - в HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers.

С приложениями, которые записаны в HKEY_CLASSES_ROOT\*\shell, всё просто. Обычно достаточно удалить из реестра соответствующую папку. Перед удалением рекомендую сохранить папку реестра в файл, нажав на неё правой кнопкой мыши и выбрав пункт "Экспортировать". Изменения вступают в силу немедленно, перезагружать компьютер или "Проводник" не нужно.

С программами, записанными в HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers, ситуация несколько сложнее. Там многие приложения записывают не своё очевидное название, а внутренний идентификатор (например, {969223c0-26aa-11d0-90ee-444553540000}). Чтобы узнать, кому этот идентификатор принадлежит, необходимо скопировать его имя и затем поискать его в реестре в разделе HKEY_CLASSES_ROOT\CLSID. Найдя аналогичное имя, можно посмотреть подкаталоги и найти там в значениях какие-либо сопоставленные названия, либо имена используемых библиотек.

Но, несмотря на такую сложность выяснения программы-хозяина идентификатора, его можно просто отключать и включать. Для чего идём обратно в HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers и переименовываем идентификатор, который мы хотим выключить (добавляем в начале его имени знак "-"1). Изменение вступит в силу немедленно, поэтому сразу смотрим, какой пункт из контекстного меню пропал.

Замечу, что там есть и служебные идентификаторы, которые в меню не отображаются. Если вы отключили какой-то идентификатор, а из меню ничего не пропало, лучше включите этот идентификатор обратно.

Существует также более простой и наглядный способ отредактировать контекстное меню - воспользоваться утилитой ContextEdit. Правда, демо-версии разработчики не дают, и за неё надо сразу заплатить денег.

Тут всё просто. Слева выбираем, для какого режима меню мы хотим его редактировать: All files или regardless of extension. Затем справа, в окнах Shell commands и Context Menu Handlers снимаем галочки на тех пунктах, которые желаем убрать. Однако советую не снимать галочек на пунктах, которые и так в реальном меню не видны. Программа автоматически предусматривает возможность откатов, и в ней будут видны все ранее удалённые пункты (их можно включить обратно).

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


1. На самом деле переименовывать можно во что угодно (главное чтобы такого имени не оказалось в разделе CLSID), совет использовать "-" дан для совместимости с откатом изменений программы ContextEdit. [вернуться]

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.