Раздвигаем доспехи: Shell Extension

Раздвигаем доспехи: Shell Extension

Shell Extension… Эта тема просто необъятна и, на мой взгляд, безумно интересна. Многие ругают "Эксплорер" за его простоту, ошибочно называя ее "убогостью". Подобным знойным личностям стоило бы немного прогуляться по бескрайним просторам Сети. Возможности стандартного файлового менеджера Windows расширяются практически безгранично, и, будучи неотъемлемым компонентом ОС, он позволяет использовать свои новые способности и в другом установленном ПО.

В переводе на великий и могучий Shell Extension означает (приблизительно, разумеется) "расширитель скорлупы" или "раздвижение доспехов". В компьютерном варианте это "расширение оболочки" — как правило, компонент файлового менеджера.
Какими же бывают экстеншны? Давайте перечислим те из них, которые реализованы сейчас, и подумаем, как их можно использовать.

1. Namespace extensions. Данные расширения создают в файловой системе ОС новые "отделения". Типичными примерами таких расширений могут служить известные всем Сетевое окружение, Панель управления и элементарная Корзина. Из других сейчас могу припомнить только Bluetooth Devices, которые появились в дереве Проводника после инсталляции Синезубого адаптера и Internet Neighborhood — что-то вроде Сетевого окружения для доступа к FTP-серверам Всемирной паутины. В Windows XP появилось полезное, но несколько примитивно реализованное расширение такого рода — работа с архивами. Признаюсь, старый ZIP Magic мне нравился куда больше, был несравнимо более функциональным, но он, увы, отказался работать под XP.
2. Property Sheets — это дополнительные вкладки, появляющиеся в окошке Свойства, которые вы можете вызвать из контекстного меню файла, ярлыка, папки или другого объекта файловой системы (как правило, это последний пункт меню). Это же окно вызывается сочетанием клавиш Alt+Enter.
3. Вы ни разу не задумывались, почему *.EXE-файлы имеют разные иконки, в то время как для остальных файлов картинки одинаковые? Еще одним примером может послужить любой файл *.ICO, отображающий в Проводнике свое содержимое. Shell Extension под названием Icon Handler позволяет заменить стандартную иконку файла определенной картинкой. Библиотека Jpeg2Icon, например, показывает вместо стандартной иконки файла *.JPG уменьшенную копию содержимого. Многие программы при инсталляции регистрируют в системе собственные библиотеки, весьма полезные при работе. Так поступает широко распространенный Corel Draw. Просмотреть папку с логотипами проще, когда для определения одного нет нужды открывать все.
4. ToolTip handler отображает ярлычок-подсказку, если на файл навести курсор мыши. Как правило, отображаются размер, тип, дата последнего изменения, но можно найти и более полезные экстеншны — для картинок, например, существует ToolTip с уменьшенной копией картинки, а для текстов — ярлычок, показывающий первые несколько строк текста.
5. Copy-Hook Handlers. Благодаря этому расширению можно перехватывать не только копирование (что понятно из названия), но и другие операции с файлами. В свое время я видел пример из руководства по программированию на Delphi: он перехватывал функцию удаления и выводил дополнительное предупреждение при удалении непустой папки даже если стандартное сообщение было отключено в свойствах Корзины. Область его применения огромна — например, можно организовать альтернативную Корзину для файлов определенного типа или запретить копирование файлов, в названии которых есть слово "Password" — дело только за фантазией программистов.
6. Thumbnail Image Handlers создает превью для графических и гипертекстовых файлов в режиме просмотра Эскизы страниц. Это же расширение создает увеличенную картинку предпросмотра в режиме Диафильм. Не понимаю, почему до сих пор в такой удобной ОС, как Windows, не появилась возможность предпросмотра текстовых файлов? Ведь документы MS Office таким образом отображаются. Недосмотр.
7. Drag&Drop Handlers — это просто песня, которую программисты почему-то очень редко поют. Вы ни разу не пробовали перетаскивать файлы правой кнопкой мыши? Зря. При таком перетаскивании появляется меню, в котором можно выбрать операцию перетаскивания: копирование, перемещение, создание ярлыка. Программы могут добавить в это меню дополнительные пункты для всех или отдельных типов файлов. WinZIP, например, позволяет при такой транспортировке упаковать или распаковать данные, а Internet Explorer при сбрасывании URL предлагает создать "элемент Active Desktop" — эдакий мини-браузер, встроенный в десктоп. Лично мне приходится много работать с графикой, и я с удовольствием установил бы себе экстеншн, который позволял бы таким образом конвертировать графические файлы. Поставил бы (эх…), если бы нашел.
8. Shell Change Notifier — просто способ сэкономить процессорную мощность, когда нужно отслеживать изменения содержимого файла или папки. Ощутив нужду в такой функции, мой знакомый написал программу, которая тупо перечитывала атрибуты файла и выводила предупреждение, когда дата последнего изменения обновлялась, а ведь можно было заставить ОС просто послать соответствующее сообщение нужному компоненту программы. Грубая сила — не всегда лучший выход. Ты согласен, Добрыня Никитич?
9. Folder Columns Provider пригоден главным образом для сортировки файлов. Это расширение добавляет новые колонки Проводника при переключении в режим Таблица. Для записей на аудиокомпакте это может быть имя исполнителя и продолжительность трека в секундах, для фотографий — размеры в пикселях, экспозиция, место съемки, для e-mail — имя отправителя или тема сообщения. Это расширение напомнило мне работу с атрибутами BFS в операционной системе БеОС: немного косо реализовано, труднее модифицировать, но… Молодцы, потихонечку реализуем идеи пятилетней давности, и даже успешно выдаем за свои.
10. Icon Overlay Handler похож на уже описанный Icon Handler, но отвечает за другую функцию. Это небольшое украшение на иконки, которое накладывается при соответствии файла или папки определенному критерию. Именно это расширение добавляет стрелочку к вашим ярлыкам, подкладывает оранжевую ладошку под расшаренные папки и ставит галочку на принтере по умолчанию. Несмотря на кажущуюся простоту является очень полезным добавлением к интерфейсу Windows.
11. И, наконец, Shortcut Menus Shell Extension — одно из самых нужных (по частоте употребления) и разнообразных по реализации расширений оболочки Windows. Многие программы добавляют в меню Проводника свои функции — архивирование (Win-RAR), подготовку к публикации (Acrobat), копирование, перемещение, конвертацию (Power-Desk Pro) и многое другое. Одна из особенностей этого экстеншна, которая редко используется, но приносит большую пользу, — возможность внедрять в контекстное меню битмапы. Благодаря этому стало осуществимым создание программ для просмотра содержимого и свойств графических (и не только) файлов простым щелчком правой кнопкой мыши. Давайте рассмотрим несколько программ этого класса.

Context ThumbView
www.contextmagic.com
Довольно приятная, не обремененная излишествами вещь. Умеет просматривать BMP, GIF, JPEG, PNG, TIFF, WMF, EMF, а также файлы Power-Point (правда, только первую страницу). Единственная программа в обзоре, которая ориентирована именно на работу с превьюшками — умеет сохранять их в буфер обмена, в файл, отправлять по электронной почте.
Этот экстеншн интегрирован с другим продуктом этой же фирмы — Instant Thumb-View, который создает Tooltip с картинкой, содержащейся в файле. Щелчок по картинке предпросмотра запускает приложение, с которым ассоциирован данный тип файла. Размеры картинки, появляющейся в меню, можно настраивать в опциях — добраться до них можно из того же контекстного меню.
В окне опций выставляется и ограничение на размер файла, который разрешено отображать (вы ведь не хотите ждать, пока программа полностью загрузит и отрисует какой-нибудь 300-мегабайтный TIFF с макетом новых фотообоев?). Впрочем, для таких исключений достаточно удерживать клавишу Ctrl — в этом случае расширение активизироваться не будет.

ImageContext 2
www.castillobueno.com
Приятная мелочь: функция copy an image to the clipboard копирует собственно картинку в буфер обмена. Больше ничего приятного обнаружить не удалось. Можно использовать для просмотра картинок в форматах PCX, TIF, JPG, BMP, GIF. Как и прочие экстеншны из этого обзора, не позволяет просматривать медиа-файлы, даже в анимированных GIF'ах отображает лишь первый кадр.
При щелчке по картинке запускает собственный вьювер, указанное вами приложение или ассоциированное с данным форматом картинок приложение Windows. Собственную смотрелку сложно назвать пригодной для использования — набор горячих клавиш донельзя беден, никаких дополнительных фунций нет. Единственное, что можно сделать при помощи этой программы, — распечатать рисунок или сохранить его в форматах JPG, BMP, PCX. Удивить кого-то богатством функций будет нелегко.
Настройки меню также не порадовали. Единственное, чем данный экстеншн существенно отличается от других — он НЕ ПОЗВОЛЯЕТ настроить размер изображения, появляющегося в контекстном меню. 200 на 200 пикселей или вообще ничего. И точка.

ShellPicture
www.baxbex.com
Этот образчик вполне мог бы стать моим фаворитом, если бы не досадные ошибки. Не помешала бы и чуть более гибкая настройка (хотя, должен признать, настройки выглядят весьма прилично на фоне многих других программ подобного рода). При разработке программа была интегрирована с irfanview и irfanview context menu extension, речь о которых пойдет в следующих статьях.
Во время инсталляции жесткий диск сканируется на предмет графических приложений, которые потом вносятся в собственное подменю экстеншна Open with. У меня был обнаружен и с гордостью выставлен напоказ Corel Draw, а вот "Фотошоп" и народная смотрелка ACD See то ли не нашлись, то ли не были сочтены программами для работы с графикой. Недочет. Как инсталлятор, так и сам экстеншн позволяют выбрать язык, но в стандартной поставке есть библиотеки только для немецко- и англоязычного населения. Впрочем, не считаю это большой проблемой: наше отечество богато народными умельцами, которые не то что язык к программе прикрутят — Word под Linux перекомпилируют. Окно настроек может быть вызвано из контекстного меню изображения либо через иконку, которая поселится в трее после запуска экстеншна. Здесь можно выбрать не только рабочий язык программы, но и максимальный размер файла, для которого будет создаваться предпросмотр, программу, которая будет запускаться при щелчке по превью (выбранная вами или собственный вьювер), а также определить размер иконки для контекстного меню (подменю) файла.
Единственная из всего обзора, ShellPicture порадовала меня давно разыскиваемой особенностью — она умеет показывать предпросмотры текстовых файлов. В опциях вы можете выбрать не только расширения таких файлов, но и размер, цвет шрифта и фона, сам шрифт, отступы при табуляции и другие параметры. По умолчанию для просмотра текста нужно удерживать клавишу Ctrl, но такое поведение утилиты меняется одним щелчком мыши.
В подменю экстеншна для картинок указываются размер, тип, цветовая глубина изображения. Еще одно подменю — Создать — расширяется пунктом Image from clipboard. Эта функция, пожалуй, пригодилась бы любому, кто работает с графикой.
При вызове меню иконки из трея вы наверняка заметите функции работы с кэшем. Оказывается, ShellPicture резервирует для себя часть оперативной памяти и хранит там информацию о просматриваемых файлах и их превью. Это же меню иконки даст вам информацию об их количестве, размере занимаемой памяти и покажет подменю из сохраненных картинок. Нажатие на один из пунктов этого списка будет идентичным щелчку правой кнопкой мыши по файлу, чью иконку ShellPicture заботливо сохранил. Щелчок левой кнопкой мыши по иконке деактивизирует экстеншн, давая вам возможность безнаказанно щелкать по графическим файлам большого размера и не ожидать их загрузки. Впрочем, этого же можно добиться, удерживая клавишу Ctrl.
Почти все, что можно сказать об этом произведении программистов Baxbax Soft-ware, положительно, но бочка меда, как всегда, оказалась чем-то разбавлена. При работе в системных папках (Рабочий стол) экстеншн не всегда срабатывает либо работает со странностями — например, вместо параметров картинки выдает в подменю несколько вопросительных знаков. Еще один глюк, обнаруженный при тестировании этого образца, — при отключении функций превью на графических файлах все равно выводится меню с картинкой, но не с той, по которой был произведен щелчок, а с последней из помещенных в кэш. Что делать, все преимущества программы сведены на нет парочкой досадных ляпов. Но если авторы озаботятся исправлением ошибок и обогатят ее дополнительными функциями, у нее есть все шансы на лидерство.

mPowerTools (в девичестве PicaView)
www.acdsystems.com
В данный момент я пользуюсь именно этим экстеншном как самым функциональным. Теснейшая интеграция с ACD See позволяет ему использовать те же плагины, благодаря чему возможно прослушивание и просмотр медиа-файлов непосредственно в контекстном меню. Для просмотра картинок используется собственный вьювер, который практически является облегченной версией популярного ACD See. Прямо из меню проводника доступны данные об изображении, его размере, величине файла, цветовой глубине картинки.
В подменю есть функции настроек, конвертации изображения в другие форматы и доступ к богатству ACD — плагинам. Ничего не стоит найти дубликаты изображения, заархивировать их, создать HTML-галерею из выбранных картинок, без потерь качества повернуть JPEG или отправить рисунки по почте.
Большим достоинством данной программы я считаю ее умение проверять любые файлы вне зависимости от расширения. Картинки иной раз обнаруживаются в таком виде и в таких местах, где их присутствие никак нельзя было заподозрить. Настраивается практически все: гамма изображения, кэширование, качество/скорость декодирования картинки и даже режим совместимости, поскольку некоторые программы (например, файловый менеджер PowerDesk Pro) не любят работать с данным расширением оболочки.
Впрочем, это не сильно мешает, а посему в данном обзоре экстеншну присваивается звание лидера.

Minipicture
Эта малышка — чистое воплощение предпросмотра в меню. Единственное, что она умеет, — показать ненастраиваемую картинку для файлов самых распространенных форматов — GIF, JPEG, BMP — и указать их размер в точках. Настроек не имеет вообще, быстра, как черт на помеле, и проста как колесо. При щелчке по превью запускает ассоциированное с данным типом файлов приложение. Сразу должен сказать, что пользоваться ею можно только если вы никогда не делаете с картинками чего-либо, кроме просмотра. Впрочем, костяные счеты всегда были надежнее калькулятора, а калькулятор надежнее компьютера. Может быть, для этой простой утилиты найдется своя ниша?

Итог
Среди перечисленных Shell Extension я так и не нашел идеального варианта. Может быть, ShellPicture, доведенный до ума, когда-нибудь приблизится к моему идеалу, а пока я буду заниматься поисками и экспериментами.
Удачи вам и до новых встреч.

Поляков Александр, http://www.vallena.biz/lecosson, Lecosson@mail.ru

компьютерная газета


Компьютерная газета. Статья была опубликована в номере 42 за 2004 год в рубрике soft :: файлы

©1997-2024 Компьютерная газета