Зміна контекстного меню файлів і каталогів

У цій статті мова піде про додавання до контекстного меню ВСІХ файлів і папок якихось дій. Ви, напевно, звернули увагу на нові пункти, що з`являються при установці WinRAR`a. А ось як їх додавати самому?

Аналогічне питання мені попадався на якомусь форумі, ось я і вирішив написати невелике керівництво :). Цікаво? Тоді поїхали.

Відео: 087. Команди контекстного меню для копіювання, вставки, видалення файлів і папок

Звичайно, можна спробувати додавати до кожного розширення команду, але це зробити практично нереально (скільки всього правити доведеться ...). Але, є спосіб краще! В галузі HKEY_CLASSES_ROOT є розділ з назвою "*". Якщо в ньому додати пункт, то він буде застосовуватися до всіх розширень файлів. Давайте я спробую проілюструвати це на прикладі додавання пункту меню на архівацію файлу.




Відкривайте розділ HKEY_CLASSES_ROOT * і створюйте там підрозділ shell (у мене його не було). У ньому треба створити підрозділ з якимось унікальним ім`ям - я назвав його arj. У пункті "За замовчуванням" цього розділу треба ввести назву пункту меню, яке буде у вас виводитися на екрані. Задаємо "Архивировать ARJ". Тепер в розділі arj треба створити розділ command, в параметрі "За замовчуванням" якого треба ввести виконувану команду, тобто "Arj a arc% 1". Тут arc - ім`я нашого архіву, а% 1 - передає в якості параметра ім`я файлу, на якому ми скликали мишкою. Звичайно, здорово було б створювати архів з ім`ям обраного файлу, але я не знаю, як з переданого параметра виокремити це ім`я (воно передається разом з шляхом, а це викликає помилку архиватора). Якщо хтось знає, як це зробити і поділиться інформацією, я буду дуже радий.

Відео: Урок # 48 Контекстне меню файлів і папок

Для наочності напишу, як це все буде виглядати в reg-файл:




REGEDIT4
[HKEY_CLASSES_ROOT * shell arj]
@ = "Архивировать ARJ"
[HKEY_CLASSES_ROOT * shell arj command]
@ = "Arj a arc% 1"

Що цікаво: якщо файл не зареєстрованого типу, то ця дія буде використовуватися для нього за умовчанням. Тобто ви можете клацнути по ньому двічі мишкою, і файл буде автоматично заархівований. Для зареєстрованих файлів цей пункт треба вибирати з контекстного меню. Таким чином можна зробити відкриття незареєстрованих файлів в блокноті, досить ввести в параметр "За замовчуванням" розділу command рядок "notepad.exe% 1". Тепер по даблклік такі файли будуть автоматично відкриватися в блокноті!

А як же бути з каталогами? Їх ми теж не обійдемо стороною. Шукайте в HKEY_CLASSES_ROOT розділ Folder. Послідовність дій для нього аналогічна описаному вище. Тільки, краще якщо ви використовуєте команду "arj a arc% 1 -r" щоб архівувати зі збереженням дерева вкладених каталогів.

Тепер ви зможете модифікувати це меню під себе так, як вам буде зручно. Правда, є і деякі обмеження: ви зможете додавати пункти тільки в перший блок меню (вони поділяються горизонтальною лінією). Додавання в інші блоки мабуть, можливо, але як це зробити я не знайшов. Справа в тому, що у зовнішніх програм, що додають туди пункт меню, використовується в якості параметра "За замовчуванням" код CLSID для модуля ActiveX. Ці пункти додаються до підрозділу shellex. Можете спробувати там покопатися, головне не забудьте оберігаючи ... еее, зберігатися! А якщо у вас щось вийде, напишіть мені, я обов`язково допрацюю статтю.


Поділися в соц. мережах:

По темі: