Total commander как написать плагин

Обновлено: 07.07.2024

1.Установка Total Commander
2.Настройка Тотал Коммандера
3.Как закрепить в файловой панели часто используемые папки
4.Подключаем редактор Notepad++ к Total Commander
5.Настройка горячих клавиш в Total Commander
6.Плагины для Total Commander
7.Управления параметрами ОС Windows через Total Commander
8.Быстрые вкладки и файлы в Total Commander
9.Панель управления Total Commander
10.Соединение FTP в Total Commander
11.Подключение сетевых накопителей в Total Commander
12.Основные операции с папками/файлами в Total Commander
13.Поиск по файлам в Тотал Командере
14.Разбивка файла на фрагменты

Для хранения INI-файлов я выбрал каталог программы (удобно, когда программа используется из разных операционных систем). Если Вы используете на своем компьютере несколько версий Total Commander, то тогда INI-файлы лучше хранить в каталоге Windows.

Пользовательский интерфейс Тотал Коммандера выполнен в классическом двухпанельном виде, что очень удобно при выполнении самых различных манипуляций с файлами и папками.

Инструкция Total Commander (Тотал Коммандер), изображение №1

Настройка Тотал Коммандера

Пройдемся по настройкам Тотал Коммандера, для этого нужно из верхнего меню выбрать "Конфигурация" — "Настройка". Вид окна - здесь сосредоточены одни из самых важных настроек, которые определяют внешний вид окна файлового менеджера.

Создать карусель Добавьте описание

Для того, чтобы добавить или удалить те или иные компоненты основного окна достаточно снять или установить галочку в чекбоксе, после нажатия кнопки "Применить" можно увидеть воочию внесенные изменения. Если Вас все устаивает – жмите "ОК".
На вкладке "Содержимое панелей" предоставляется возможность настроить работу с файлами и папками на панелях менеджера.

Пункты настроек: "Значки", "Шрифты" и "Цвета" выставьте по своему вкусу.
Во вкладке "Табуляторы" настраиваем позиции табуляторов (размер, тип файла, дата), а также задаем шаблон для отображения размера файлов. Лично для меня удобней, когда размер файлов (папок) будет показан не в байтах, а в Mb, Gb или Kb.

Далее настраиваем "Вкладки папок". Приведенные на скриншоте настройки, на мой взгляд, являются самыми оптимальными.

Согласитесь, что не очень удобно часто открывать папку, которая расположена где –то в глубине директории.
Часто используемые вкладки можно закрепить в файловой панели следующим образом. Откройте нужную папку и щелкните по ней правой кнопкой мыши. Из контекстного меню выберите вариант "Заблокировать вкладку" или "Переименовать/Заблокировать вкладку". Можно также воспользоваться горячими клавишами:Ctrl+T - создание вкладки, Ctrl+W - удаление вкладки.

Если заблокированных вкладок много, то их можно равномерно распределить по обеим панелям менеджера просто перетаскивая мышью. Не забудьте сохранить изменения из верхнего меню "Конфигурация" — "Сохранить позицию" и "Сохранить настройки". Теперь у вас появились нужные вкладки, которые не исчезнут до тех пор, пока вы не поменяете настройки. Во время длительной работы с программой может случиться, что у вас будет открыто много вкладок. Для того, чтобы их закрыть на любой из вкладок кликните правой клавишей мыши и выберите в меню пункт "Закрыть все вкладки" или нажмите на сочетание горячих клавиш "Ctrl+Shift+W". После этого закроются все незаблокировнные и неактивные вкладки на той панели файлового менеджера, которую вы выбрали.
Следующий немаловажный пункт настроек "Основные операции".

Подключаем редактор Notepad++ по умолчанию к Total Commander (Тотал Коммандер)

Лучшим редактором текстовых файлов, по моему мнению, является Notepad++. Как же сделать его редактором по умолчанию в Тотал Коммандере? На следующей вкладке настроек "Правка/Просмотр" вы сможете подключить внешние программы для просмотра и редактирования файлов в Тотал Коммандере при нажатии на кнопку F3 (просмотр) или F4 (редактирование).
Выбираем Программу-редактор - откроется окно выбора пути, где нужно найти Notepad++ у Вас на компьютере.

Настройка горячих клавиш в Total Commander

Стоит отметить, что Total Commander по умолчанию имеет огромное количество клавиатурных сочетаний для работы. Список горячих клавиш можно посмотреть кликнув по кнопке "Справка" в правом верхнем углу Total Commander. Примечательно, что в пункте настроек "Разное" можно переопределить горячие клавиши в менеджере по своему усмотрению. Зададим, к примеру, показ и скрытие системных файлов сочетанием клавиш Ctrl+H - cm_SwitchHidSys.

Итак, я рекомендую назначить следующие комбинации горячих клавиш:
"Ctrl+W" - cm_CopyNamesToClip - копировать в буфер обмена имена файлов. Можно копировать один или сразу несколько имен файлов.
"Alt+W" - cm_CopyFullNamesToClip - копировать в буфер обмена имена файлов с путями их расположения. Существенно экономит время!
"Shift+Home" - cm_OpenDesktop - открыть вкладку "Рабочий стол" в окне Total Commander. Часто работу удобно начинать именно с рабочего стола, а уже отсюда можно перейти и в Панель управления и т.д.
"Shift+BackSpace" - cm_GoToRoot - перейти в корневой каталог диска из любого места. Тоже очень полезная штука. Нажав "Ctrl+\" вы также, по умолчанию, переходите в корневой каталог диска. Ну а просто клавиша "BackSpace" по умолчанию в Тотале осуществляет переход на один уровень выше.

Плагины для Total Commander

На официальном сайте разработчика Total Commander можно найти и скачать великое множество плагинов: http://www.ghisler.com/plugins.htm. Если Вам не хочется замарачиваться с переводом их описания на русский язык, то посетите русскоязычный сайт http://wincmd.ru. Новые плагины доступны также с неофициального сайта TC (http://www.totalcmd.net/).
Если Вы откроете вкладку "Плагины" в настройках Тотал Коммандера, то увидите, что сами по себе плагины делятся на четыре типа: Архиваторные плагины (имеют расширение WCX), Плагины файловой системы (WFX), Плагины внутреннего просмотрщика (WLX) и Информационные плагины (WDX).

Архиваторные плагины позволяют работать с архивами, которые изначально в файловом менеджере не поддерживаются или поддерживаются с ограничениями. С помощью архиваторных плагинов реализуется поддержка работы с рядом других файловых форматов — CHM, MSI, ICL, DLL и пр. Плагины файловой системы позволяют обращаться к дискам, недоступным из Windows, удаленным системам, внутренним модулям Windows, носителям с другими файловыми системами. Плагины внутреннего просмотрщика позволяют просматривать файлы различных форматов, в т.ч. не поддерживаемых внутренним просмотрщиком Lister, таких как изображения, таблицы, базы данных и т.п. Информационные плагины предназначены для получения доступа к расширенным сведениям о файлах (тэгам MP3, атрибутах изображений и т.п.)
Устанавливать плагины можно двумя способами: автоматически и вручную. Автоматическая установка сложностей не вызывает: достаточно просто открыть в панели Total Commander скачанный архив с плагином и менеджер сам предложит установить обнаруженный модуль. Правда, автоматическая установка предусмотрена не для всех плагинов.

Подключение дополнительных плагинов вручную также не составит особого труда. Чтобы установить плагин, распакуйте содержимое архива в отдельную папку. Лучше всего в каталоге с менеджером Total Commander создать подкаталог "Plugins", где уже и создавать отдельные папки для каждого плагина в отдельности. В дальнейшем такая политика позволит вам избежать неразберихи в папках Тотал Коммандера.
Теперь необходимо открыть настройки Total Commander Конфигурация - Настройка, где в разделе Плагины следует щелкнуть по кнопке "Настройка" с нужным типом плагина. В выпадающем окне нажимаем "Добавить" и выбираем файл с расширением .wfx (wdx, wcx или wlx) - собственно файл устанавливаемого плагина из созданной нами папки. Все! Плагин установлен.

Для того, чтобы посмотреть какие плагины каждого вида установлены в вашей сборке Тотал Коммандера нажмите кнопку "Настроить" в соответствующей области. Архиваторные плагины в моей сборке менеджера я подчеркнул.

Благодаря установленным плагинам можно просмотреть любые папки и файлы на соседней панели Total Commander используя комбинацию горячих клавиш "Ctrl+Q". Если Вы будете перемещаться по файлам в одной панели, то в соседней панели просмотра будет отображаться их содержимое.

Инструкция Total Commander (Тотал Коммандер), изображение №3

Существует много программных средств для управления параметрами ОС Windows — это и встроенные в систему плагины, и разные твикеры, и системные утилиты. Для Total Commander разработано немало плагинов, которые решают ту же самую задачу. Использование плагинов файловой системы ТС обеспечивает возможность держать руку на пульсе ОС Вашего компьютера из привычного и очень удобного интерфейса файлового менеджера ТС и выполнять многие операции гораздо быстрее, чем через встроенный в Windows инструментарий.

Плагины файловой системы доступны в Total Commander через Сетевое окружение

Инструкция Total Commander (Тотал Коммандер), изображение №4

Очень удобен в применении плагин Uninstaller 64, который предназначен для быстрой деинсталляции приложений, находящихся в списке "Установка и удаление программ" панели управления Windows. Плагин позволяет просмотреть все записи, в том числе скрытые, и работает гораздо быстрее встроенного в Windows деинсталлятора. Для деинсталляции приложения этим плагином требуется выделить строку с именем программы и нажать клавишу Enter. Плагин также используется для удаления недействующих ссылок (кнопки Del или F8) и просмотра команды на деинсталляцию (F3 или Ctrl+Q).

Инструкция Total Commander (Тотал Коммандер), изображение №5

Благодаря плагину ProcFS Task Manager можно просматривать запущенные процессы на ПК, в том числе те, которые могут прятаться от стандартного диспетчера задач Windows. На панели показано имя процесса, его тип, объем занимаемой процессом памяти и время его запуска. Плагин позволяет просматривать свойства запущенных процессов и используемые ими библиотеки (F3), изменять у процессов приоритеты (двойной щелчок на процессе) и выгружать их (Del).

Плагин Services2 - это удобный инструмент для работы с сервисами Windows. Этот плагин позволяет просматривать список сервисов, причем по внешнему виду иконок сразу можно понять, работает сервис или остановлен. Плагин позволяет быстро изменить режим запуска конкретного сервиса (ручной, автоматический, отключен), можно приостановить работу сервиса, удалить или запустить сервис. Все перечисленные операции производятся в окне свойств сервиса, открываемом двойным щелчком мыши по строке сервиса или при нажатии клавиши Enter.

Инструкция Total Commander (Тотал Коммандер), изображение №6

Быстрые вкладки и файлы в Total Commander

Откройте папку в Total Commander, которую хотите сохранить и иметь к ней быстрый доступ, и нажмите сочетание клавиш "Ctrl + D" или нажмите на звёздочку в правом верхнем углу панели. В Google Chrome данное сочетание клавиш добавляет в закладки, а в Total Commander – в меню быстрого доступа. В контекстном меню выберите "Добавить текущий каталог".

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

Вы можете выбрать любой из предложенных видов подменю. Нажав ещё раз на звёздочку или сочетание клавиш "Ctrl + D" вы можете просмотреть список ваших каталогов, к которым у вас есть быстрый доступ. Вызывается это меню еще и с помощью мышки - двойным нажатием по названию текущей директории.

Панель управления Total Commander

Инструкция Total Commander (Тотал Коммандер), изображение №7

Добавить ярлыки к программам, внутренним командам, а также к любой системной команде на панель инструментов Total Commander довольно просто. Надо или потянуть exe файл программы на саму панель либо прописать путь к программе вручную.
Первый вариант. Зайдите в папку "Program Files" и потяните мышкой exe файл программы на панель Total Commander.

Второй вариант. Щелкаете правой кнопки мыши по пустому месту панели инструментов и далее "Изменить". В открывшемся окне жмем "Добавить" и добавляем программу указав полный путь к ее exe файлу. Я предпочитаю пользоваться первым вариантом.

Если после нажатия кнопки "Добавить" кликнуть маленькую кнопку с лупой, то перед вами откроется грандиозный список команд предусмотренных в Total Commander.

Инструкция Total Commander (Тотал Коммандер), изображение №8

В нижней части окна в поле "Фильтр", укажите, например, номер команды 2400 (групповое переименование) и нажмите "ОК". В панели инструментов появится дополнительный значек, кликнув по которому, вы сможете переименовать сразу целый список файлов.

Панель инструментов Тотала интересна еще и тем, что с закрепленными здесь программами могут взаимодействовать другие файлы и папки. Перетащите, например, папку в которой находятся mp3-файлы на иконку AIMP3-плеера в панели инструментов. Ваши аудио-файлы начнут воспроизводится один за другим. Точно также перетащите CSS-файл на иконку текстового редактора Notepad++ и программа тут же откроет его. Drag'n Drop (бери и бросай) из файловых панелей на ярлыки созданных нами ранее папок вызовет копирование файлов в эти папки!
Если ваш Total Commander стоит в автозагрузке, то благодаря установленным иконкам запуска программ прямо из панели инструментов менеджера ТС, вам не нужно будет устанавливать лишние ярлыки на рабочий стол. При необходимости ненужные значки легко убираются из панели инструментов таким же образом, как и устанавливаются: выделив ненужный значок, нажмите на кнопку "Удалить" и значок исчезнет.
В нижней части менеджера расположены кнопки функциональных клавиш

Данные кнопки также поддерживают Drag'n Drop, поэтому удобнее всего ими пользоваться не нажимая сами кнопки F3, F4, F5, а перетаскивая выделенные файлы и папки на эти кнопки. Поверьте, так удобнее. А если нажать правой кнопкой мышки на кнопку F8, то откроется контекстное меню, где можно очистить корзину или посмотреть ее свойства.

Соединение FTP в Total Commander

FTP клиент, интегрированный в Total Commander, позволяет без всяких проблем подключаться к вашему сайту (блогу) и выдает необходимую информацию. Для выбора подключения достаточно нажать комбинацию клавиш CTRL+F, а если еще ни одного соединения вы не настроили, то в открывшемся окне просто нажмите на кнопку "Добавить".

Настройки FTP- соединения мало чем отличаются от настроек FTP-клиента FileZilla, поэтому что делать дальше – вы уже знаете.

Подключение сетевых накопителей в Total Commander

Включите "Сеть" в настроечном меню Total Commander. Выберите функцию "Подключить сетевой диск".
В появившемся окне, выберите диск и папку в которой желаете хранить информацию. Можно указать путь к сайту на котором будут храниться изображения и докумены.

Основные операции с папками/файлами в Total Commander

Все действия с папками/файлами в файловом менеджере производятся предельно просто, буквально, нажатием одной-двух кнопок.

Выделение файлов

Прежде чем производить операции сразу с несколькими объектами, их сначала нужно выделить. Сделать это можно, кликнув на каждый объект правой клавишей мышки или же левой кнопкой, предварительно зажав и удерживая клавишу Ctrl.

Переименование файлов

Наведите курсор на нужный файл/папку и дважды кликните по объекту (но не очень быстро!) левой кнопкой мышки, при этом объект окрасится в синий фон, а потом задайте новое имя.

Удаление файлов

Выберите нужный файл/папку или сразу выделите несколько штук. Затем, нажмите F8 - клавишу удаления.

Инструкция Total Commander (Тотал Коммандер), изображение №9

Копирование/перемещение файлов

Выделите в одной панели файлового менеджера нужный файл/папку или сразу несколько штук. Затем, в другой панели, выберите папку, куда вы хотите скопировать/переместить данные объекты и нажмите кнопку F5 или F6 соответственно.

Инструкция Total Commander (Тотал Коммандер), изображение №10

Групповое переименование файлов

Выделите на любой панели нужное количество файлов, которые нужно будет переименовать по определенной маске и нажмите комбинацию клавиш Ctlr+M.

Внутренние ассоциации

Настройка внутренних ассоциаций доступна из меню "Файлы". Все файлы, которые вы открываете в Total Commander с помощью двойного клика можно ассоциировать т.е. настроить их открытие любыми программами на вашем компьютере.

Работа с архивами

Вы можете упаковывать (Alt+F5), распаковывать (Alt+F9) и проверять (Alt+Shift+F9) архивы с помощью архивных плагинов, установленном в Total Commander. Кроме того можно входить внутрь архивов как в обычные папки, что существенно экономит ваше время.

Поиск по файлам в Тотал Командере

Чтобы побыстрее отыскать на диске важные папки или файлы, воспользуйтесь функцией поиска, интегрированной в файловый менеджер, нажав на значок "лупа" на инструментальной панели или воспользуйтесь комбинацией клавиш Alt+F7. Если будете осуществлять поиск по файлам на русском языке, то не забудьте поставить галочку в чекбоксе "UTF-8". Все дополнительные настройки (размер, дата создания, имеющиеся атрибуты) для поиска вы найдете во вкладке "Дополнительно".

Инструкция Total Commander (Тотал Коммандер), изображение №11

Разбивка файла на фрагменты

Разбивка большого файла на фрагменты заданного размера доступна из меню "Файлы". Разрезанный файл можно будет собрать в обратном порядке через это же меню. Такая функция может пригодиться, например, при пересылке больших файлов по емейл-почте.

Модули для TC представляют собой DLL фалы имеющие расширения WCX, WFX, WLX, WDX и содержащие определенный набор экспортируемых функций (согласно категории модуля). Все бы хорошо, только не все авторы позаботились об 64 битных версиях. А исходный код не доступен, как правило…

Вопрос — Можно использовать существующие 32 битные версии?
Ответ — Да, но не все так просто.

Если обобщить до загрузки динамической 32 битной библиотеки в 64 битный процесс, то окажется, что задача не нова и поиск решения в интернете не заставит ждать. Все сводится к созданию суррогатного процесса, способного загрузить библиотеку и взаимодействию с этим процессом посредством IPC (меж процессное взаимодействие). К исходникам TC у нас нет доступа и добавить механизм работы с суррогатным процессом мы не можем. Но можем создать библиотеку. Библиотека будет выдавать себя за модуль и общаться с суррогатным процессом, а тот в свою очередь будет дергать функции модуля и возвращать результат. И выгладить все это будет вот так:


С возможными вариантами IPC можно ознакомится на MSDN — Interprocess Communications. Для своего проекта я выбрал Pipes. Это возможно не самый быстрый способ, но он позволяет неявно следить за здоровьем суррогатного процесса. Если падает суррогатный процесс, то и разрывается канал pipe-а и наша библиотека узнает об этом. Далее описание происходящих процессов.

  • генерация уникального имени для pipe-а
  • создание pipe-а
  • создание суррогатного процесса
  • передача суррогатному процессу имени pipe-а
  • ожидание и подключение клиента через pipe
  • отключить клиента от трубы
  • завершить суррогатный процесс
  • закрыть pipe (в общем освободить выделенные ресурсы)
  • отключится от pipe-а
  • выгрузить модуль

OpenArchive — первая функция которую вызывает TC после загрузки модуля. Ей передается указательна структуру типа tOpenArchiveData.

Вызываются наши подставные функции, которые проведут связь (с библиотекой).

Все это сопровождается обработкой ошибок в виде аварийного завершения суррогатного процесса, подстановкой функций-заглушек и возврат дефолных значений.

Отрицательная сторона решения: все это замедляет скорость работы модуля.

Пожалуй на этом все…

Что осталось

В действительности есть еще целый ряд вопросов, для которых надо выбрать решения. Реализован только минимум в рамках demo. Набор функций в рамках модуля расширения несколько больше, а о доступных возсожностях модуля говорит таблица экспорта. Динамически подстраиваться по это нельзя. Не все понятно с WLX модулями, в частности взаимодействие с окном. И т.д.

Функциональность программ зачастую могут улучшать не только их непосредственные разработчики, но и другие люди. Они, как правило, являются пользователями тех программ, которые хотят улучшить. Возможно это в тех случаях, когда программа поддерживает различные дополнения. Дополнения эти обычно реализуются в виде плагинов.


Что такое плагины?

Конечно, возможны всякие вариации, но обычно под плагином понимается какая-то динамически компонуемая библиотека (DLL - Dynamic Link Library) специального формата, которая благодаря находящимся в ней функциям расширяет возможности "родительского" приложения. Конечно, в широком смысле слова под плагинами можно понимать не только DLL'ки, а, например, и такие комплексные вещи, как дополнения к Mozilla Firefox. Но обычно плагин - это именно специальная динамическая библиотека.

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

Универсального формата плагинов, который подходил бы всем приложениям, не существует. Причина этого проста: очень разные функции выполняют разные программы, и было бы странно пользоваться плагинами к Adobe Photoshop из Sound Forge. Но, тем не менее, свои стандарты есть, а потому приложения, выполняющие сходные функции, часто "понимают" плагины своих конкурентов. Например, среди графических приложений стандартом де-факто стали уже упоминавшиеся плагины к Photoshop, а среди приложений для работы со звуком распространён формат VST.


Какие плагины писать?

Плагин зачастую включает в себя такое множество сложных вещей, что его можно считать самостоятельным программным продуктом. В первую очередь, это относится к профессиональным плагинам для сложных программ - например, к тому же 3D Studio MAX. Чтобы создавать такие плагины, нужна не только высокая программистская квалификация разработчика, но и хорошие знания в той области, в которой работает программа. Как правило, над графическими и звуковыми фильтрами работают команды из нескольких человек, и большая часть времени уходит не на написание кода, а на математическое моделирование преобразований, реализуемых в плагине.

Чтобы продемонстрировать вам основные принципы написания плагинов на практике, я расскажу, как написать собственный полнофункциональный плагин для популярного файлового менеджера Total Commander. Почему именно для него? Потому что писать к нему плагины достаточно просто, а сам Total Commander я считаю лучшей из программ этого класса.


Итак, пишем?

Писать плагины можно на любом языке программирования, код на котором можно скомпилировать и скомпоновать в динамическую библиотеку. Но сейчас для простоты и наглядности я буду пользоваться Delphi, поскольку с этим языком может работать практически каждый, кто в школе научился Паскалю. Да и сам Total Commander, как известно, написан именно на Delphi.

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

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

Чтобы особо не мучиться с идеей для нашего плагина, будем писать плагин для показа RTF-файлов. Хоть "Командир" это умеет и без того, сейчас наша цель - научиться, а не сотворить нечто поражающее воображение.


Итак, пишем!

Ну вот, если вы всё скачали, то можно переходить непосредственно к действиям. Запустите среду Delphi и в окне создания нового проекта выберите "DLL" (в некоторых версиях Delphi это называется "DLL Wizard", но это не принципиально: главная идея такова, что проект должен быть проектом динамически компонуемой библиотеки).

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

В разделе uses главного файла проекта нужно добавить модули Windows, поскольку нам понадобятся некоторые типы данных оттуда для экспорта функций нашим плагином. Всего же функций, которые нам необходимо экспортировать, три. Вот как они выглядят:

Первая из них вызывает плагин для работы. Её параметры - это дескриптор окна Lister'а (с его помощью мы будем поддерживать связь между окном плагина и окном Lister'а), имя загружаемого файла и комбинацию настроек Lister'а. Но настройки нам пока что не понадобятся, так что на ShowFlags сейчас можно не обращать внимания. Вторая функция (вернее, в терминах Delphi это процедура) вызывается, когда завершается работа приложения, и требуется закрытие окна. Её параметр - тоже дескриптор окна Lister'а. Третья функция позволяет Lister'у определить, может ли плагин правильно разобраться с переданным ему файлом, или лучше его отобразить с помощью какого-то другого плагина. В общем-то, можно обойтись и без второй по счёту функции, поскольку в случае её отсутствия окно плагина будет само уничтожено стандартными средствами Windows API.

Добавьте в проект форму ("File"->"New"->Form) и удалите из файла формы глобальную переменную Form1: TForm1. Особенности написания DLL на Delphi таковы, что глобальные переменные во время этого процесса под запретом. На форму положите компонент RichEdit (он находится на вкладке "Win32" палитры компонентов Delphi). Установите его свойство Align на alClient (для этого нужно использовать окно Object Inspector, находящееся в левой части среды).

Окно нашего плагина не должно иметь рамки и заголовка, иначе окно Lister'а будет выглядеть, мягко говоря, странновато. Поэтому для создания окна мы должны переопределить одну процедуру. В секции Protected класса окна нужно записать следующее:

В теле процедуры пишем следующее:

Первая строчка вызывает унаследованный стандартный метод. Вторая обрезает рамку окна, чтобы оно не выглядывало из окна Lister'а неподобающим образом. Третья резервирует место для того, чтобы мы могли потом уничтожить окно (глобальными переменными пользоваться нельзя - помните?).

Теперь можно перейти к непосредственному заполнению тела экспортируемых функций. Тело процедуры ListDetectString будет коротким:

Эта функция копирует строку "FORCE | EXT="RTF"" в переменную DetectString. А строка сообщает Lister'у, что мы будем открывать своим плагином файлы с расширением "RTF" и при этом переопределяем стандартную функциональность просмотрщика.

Тело ListLoad будет уже гораздо более длинным:

Переменная Form1 - это и есть, собственно, окно плагина. Мы проверяем расширение подсунутого плагину файла, загружаем его, показываем окно, сохраняем указатель на него, чтобы при случае изничтожить. Потом устанавливаем фокус на наш RichEdit и возвращаем дескриптор окна плагина. Поскольку код находится в DLL-библиотеку, помещаем всё внутрь блока try. except, чтобы сбой плагина не привёл к сбою "командира".

Код ListerCloseWindow таков:

Получаем сохранённый адрес формы, закрываем её и освобождаем память. Нужно только не забыть объявить переменную Form1 и "обернуть" всё, что происходит внутри процедуры try. except'ом.

В списке файловых менеджеров Total Commander (в дальнейшем TC) является самым популярным. И это неудивительно, ведь программа обеспечивает очень удобную работу с дисками, папками и файлами и, помимо предоставления стандартных возможностей, характерных для данного класса приложений, имеет немало интересных особенностей, упрощающих работу. В частности, она запоминает часто используемые каталоги, поддерживает работу с закладками, обеспечивает проведение быстрого поиска (в том числе внутри файлов), позволяет настраивать горячие клавиши и т.д. Кроме того, в программе предусмотрена поддержка популярных архиваторов и имеется встроенный FTP-клиент, позволяющий скачивать файлы в несколько потоков, поддерживающий докачку и умеющий работать по расписанию. А ее возможности могут быть расширены за счет подключаемых плагинов. Знакомству с наиболее интересными из них и будет посвящена данная статья, но вначале кратко остановимся на типах плагинов и нюансах их установки.

Какие бывают плагины и как их установить

Существует четыре типа плагинов к TC: архиваторные плагины (имеют расширение WCX), плагины файловой системы (WFX), плагины внутреннего просмотрщика (WLX) и контентные плагины (WDX). Архиваторные плагины используются для работы с архивами, которые изначально в файловом менеджере не поддерживаются или поддерживаются с ограничениями. Помимо этого с помощью архиваторных плагинов реализуется поддержка работы с рядом других файловых форматов — CHM, MSI, ICL, DLL и пр. Плагины файловой системы доступны в TC через Сетевое окружение (рис. 1) и обеспечивают доступ к дискам, удаленным системам, внутренним модулям Windows, носителям с другими файловыми системами. Плагины внутреннего просмотрщика позволяют просматривать файловые форматы, не поддерживаемые внутренним просмотрщиком Lister, — изображения, таблицы, базы данных и т.п. Контентные плагины предназначены для получения доступа к расширенным сведениям о файлах — тэгам MP3, информации в заголовках EXIF в JPEG-изображениях и т.п.

Рисунок

Рис. 1. Окно TC с открытым на левой панели Сетевым окружением

Сегодня существует уже не одна сотня плагинов к TC, и даже просто перечислить их в рамках статьи невозможно, да и особого смысла не имеет, поскольку немало плагинов если и не дуб­лируют друг друга, то имеют весьма близкое назначение. Мы остановимся лишь на тех решениях, которые могут быть интересны широкому кругу пользователей.

Устанавливать плагины можно автоматически и вручную. Автоматическая установка сложностей не вызывает: достаточно просто открыть в файловом менеджере скачанный архив с плагином и программа сама предложит установить обнаруженный модуль (рис. 2). Правда, такая автоматическая установка предусмотрена не для всех плагинов.

Рисунок

Рис. 2. Окно TC с предложением об установке плагина

Подключение дополнительных модулей вручную производится в окне настроек, вызываемом командой Конфигурация —> Настройка, где в разделе Плагины следует щелкнуть на кнопке с нужным типом плагина и указать расположение устанавливаемого модуля. Для архиваторных плагинов дополнительно в списке Файлы с расширением нужно будет указать расширение тех файлов, которые должны ассоциироваться с устанавливаемым плагином (рис. 3). Если подобных расширений несколько, то операция указания модуля с плагином производится несколько раз с вводом каждый раз другого расширения.

Рисунок

Рис. 3. Установка архиваторного плагина через окно Настройка

Комфортный просмотр

Рисунок

Рис. 4. Просмотр PDF-документа с помощью IEView

Рисунок

Рис. 5. Просмотр SWF-файла через SWF Lister

Рисунок

Рис. 6. Просмотр изображения в Imagine

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

Рисунок

Рис. 7. Прослушивание музыки в AmpView

Рисунок

Рис. 8. Просмотр ролика с помощью Mmedia

Создание архивов в формате 7-Zip

С помощью этого плагина в файловом менеджере станут возможными создание и распаковка архивов в формате 7z, а также просмотр их содержимого. Чтобы воспользоваться плагином, например, для упаковки файлов, нужно выделить их, нажать комбинацию клавиш Alt+F5, в открывшемся окне в списке расширений архиваторов выбрать вариант 7z и при необходимости подкорректировать настройки архивирования, щелкнув на кнопке Настройка (рис. 9).

Рисунок

Рис. 9. Создание 7z-архива с применением 7Zip Plugin

Работа с CD/DVD-дисками и образами

Для работы плагина, помимо его инсталляции в автоматическом режиме, требуется установить драйвер виртуального диска, вызвав в проводнике Windows из контекстного меню на файле Program Files\totalcmd\plugins\wfx\VirtualDisk\VD_Driver\vd_filedisk.inf команду Установить. А затем перезагрузить компьютер.

Принцип монтирования образов в созданный после установки модуля виртуальный привод очень прост: следует скопировать в файловом менеджере в папку VirtualDisk (данная папка появится в Сетевом окружении после установки плагина) нужные файлы­образы, а затем для монтирования одного из них на виртуальный привод дважды щелкнуть на данном образе, выбрать режим CD/DVD и щелкнуть на кнопке Подключить (рис. 10). Можно также включить флажок Восстанавливать при перезагрузке, что имеет смысл, если с монтируемым образом приходится работать регулярно. После этого в свитке дисков в TC и в окне проводника Windows появится нужный виртуальный привод с подключенным образом.

Рисунок

Рис. 10. Монтирование образа в виртуальный привод VirtualDisk

Рисунок

Рис. 11. Просмотр содержимого образа через плагин ISO

Каталогизация данных

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

Рисунок

Рис. 12. Сканирование компакт-диска в CDDataBase

Рисунок

Рис. 13. Поиск нужного диска в каталоге CDDataBaseм

Рисунок

Рис. 14. Создание каталога в DiskDir Extended

Управление системой

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

Рисунок

Рис. 15. Результат отключения из автозагрузки
в Startup Guard приложения Free Download Manager

Рисунок

Рис. 16. Просмотр команды на деинсталляцию приложения через Uninstaller

Рисунок

Рис. 17. Выгрузка процесса через ProcFS Task Manager

Рисунок

Рис. 18. Просмотр настроек параметров сервиса с помощью Services


Рис. 19. Просмотр списка установленного оборудования в Device Manager

Рисунок

Рис. 20. Изменение значения ключа
в системном реестре через плагин Registry

Рисунок

Рис. 21. Создание пункта в меню быстрого запуска
для перемещения в раздел HKEY_CURRENT_USER (плагин Registry)

Рисунок

Рис. 22. Копирование файлов на временную панель TempDrive

Заключение

Мы перечислили лишь несколько наиболее интересных для широкого круга пользователей плагинов к Total Commander. На самом деле подключаемых модулей разработано достаточно много и самой разной направленности — имеются плагины для работы с базами данных и редактирования программного кода с подсветкой синтаксиса, просмотра иконок в файлах и извлечения музыки и текстур из игровых архивов, конвертирования одних форматов в другие и прожига CD/DVD-дисков и пр. Так что все пользователи TC имеют реальную возможность оснастить файловый менеджер в соответствии с решаемыми на компьютере задачами.

Если же по какой-то причине необходимо подключить дополнительный модуль вручную, необходимо открыть окно с настройками программы (Configuration>Options) и перейти в раздел Plugins. Далее с помощью кнопки для соответствующего типа плагинов следует указать расположение модуля, который вы хотите установить, на жестком диске.

AceHelper 0.3.4 Этот плагин будет полезен тем, кто привык «держать руку на пульсе» системы. С его помощью можно следить за состоянием памяти, загруженностью процессора, управлять запущенными процессами, а также назначать каждому из них свой приоритет. В отдельном окне в режиме реального времени прорисовываются графические зависимости, которые отображают статистику работы системы.

В операционных системах XP и Vista можно почерпнуть информацию об открытых портах и установленных на данный момент соединениях. То количество функций, которое предлагает AceHelper, имеется далеко не в каждом менеджере процессов. Так, например, AceHelper отображает информацию об используемых процессом файлах, ключах реестра, драйверах и т.д. При необходимости, можно произвести выгрузку процесса из оперативной памяти. После установки плагин появляется в виде иконки в сетевом окружении. Imagine 0.9.7.0 По умолчанию Total Commander может просматривать очень ограниченное количество графических форматов. Конечно, для этой цели обычно используют дополнительную многофункциональную утилиту, такую как ACDSee. Однако поддержка встроенным просмотрщиком различных графических форматов позволяет в некоторых случаях обойтись без дополнительных программ. Установив модуль Imagine, в Total Commander можно просматривать графические файлы следующих форматов: JPG, GIF, PNG, BMP, PCX, TGA, PSD, TIF, TIFF, LBM, IFF, FLI, FLC, SPR, PCD, JPC, JP2, J2K (JPEG 2000), PBM, PGM, PPM, RAS, SGI, RGB, BW, JBG, JBIG, ICO, CUR, ANI, CLP, RLE.

Imagine показывает подробную информацию о графическом файле – разрешение, глубину цвета, количество кадров (например, для анимированных GIF), данные EXIF (для файлов JPEG). Анимированные файлы GIF можно экспортировать в видеофайл AVI. Некоторые параметры изображения можно редактировать, например, изменять глубину цвета, поворачивать, изменять размеры рисунка. Данный модуль очень удобно использовать и для быстрого просмотра с последующим переименованием изображений. Mmedia 2.46 Для того чтобы слушать музыку на компьютере, конечно, удобно использовать специальный проигрыватель. Однако когда требуется быстро просмотреть несколько медиа-файлов, запускать тяжелую утилиту каждый раз очень неудобно. С помощью этого модуля можно слушать и смотреть аудио/видеофайлы большинства популярных сегодня форматов (asf, wmv, avi, mpeg, aiff, ogg и многих других) непосредственно на панели Total Commander.

Кроме того, что файл будет проигран, в окне будет отображаться информация, заложенная в тэги ID3Tag V1 и ID3Tag V2 (тип кодека, битрейт, информация об альбоме и т.д.). Плагин запускается как просмотрщик по F3 или Ctrl+Q. VirtualDisk 1.30 Еще один тип программы, функции которой может выполнять плагин для Total Commander – эмулятор диска. Конечно, такой плагин не сможет заменить Alcohol120% или DaemonTools, ведь VirtualDisk имеет минимум настроек и не умеет эмулировать защищенные диски. Тем не менее, у этого модуля есть одно преимущество – он легко устанавливается и удаляется, не вызывая никаких сбоев в работе Windows. Его установка немного отличается от обычной установки плагинов. Помимо автоматической инсталляции при просмотре содержимого архива с модулем VirtualDisk, следует отдельно установить драйвер виртуального диска. Для этого нужно щелкнуть правой кнопкой мыши по файлу, вызвать контекстное меню и выбрать в нем пункт Install. После этого потребуется перезагрузка компьютера, и VirtualDisk готов к работе.

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

Программа может эмулировать диск в одном из трех режимов. В режиме HDD эмулируются образы с файловой системой FAT или NTFS. В режиме FDD эмулируется дисковод, нельзя подключить NTFS-образы. Последний режим эмуляции CD/DVD - эмуляция привода для чтения CD/DVD-дисков. В режимах HDD и FDD доступна дополнительная опция – только для чтения. Если ее задействовать, подключенные образы нельзя будет изменять в процессе обращения к виртуальному диску. MAIL_WFX 0.99b3 Этот модуль превратит файловый менеджер в почтовый клиент, работающий с протоколами POP3/SMTP. После настройки MAIL_WFX, почтовый ящик отображается как обычная папка, доступ к которой происходит через сетевое окружение и иконку Mail.

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

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

Читайте также: