Поддержка плагинов для файлового менеджера ФАР, созданных с использованием средств Microsoft .Net Framework.
АРХИТЕКТУРАДиспетчер .NET-плагинов (COM-объект "Far.Plugins.NET") запускается плагином SHPCE. После запуска диспетчер загружает из сборок и текстовых файлов в папке bin\Plugins классы, являющиеся наследниками базового класса Far.Net.FarNetPlugin. Плагины, в которых установлено соответствующее поле, помещаются в меню плагинов (F11), остальные выводятся в меню после выбора в меню плагинов пункта ".NET Plugins". Плагины могут регистрировать обрабатываемые ими префиксы командной строки. Плагины можно добавлять и подгружать без перезагрузки ФАРа.УСТАНОВКА:- Компоненты функционируют на компьютерах с Windows 98/2000/XP/2003
- Необходимо установить последнюю версию Microsoft .NET Framework (не ниже 1.1)
- Необходимо установить последнюю версию плагина SHPCE(не ниже b1).
- Извлеките из архива и запустите установщик Far.Net.2.Setup.msi (команда "Установить" в контекстном меню плагина EMenu или аналогичного).
- В файл plugins.cfg в каталоге Far\Plugins\SHPCE\cfg добавьте строчку "Far.Plugins.NET", запускающую диспетчер .Net-плагинов.
- Перезапустите ФАР.
Плагины в поставке- Hello.dll - говорит "Привет" в разных видах.
Также может служить заготовкой для новых плагинов.- HelloSrc.vb - то же, без компиляции.
- HelloFromJsSrc.js - то же, на языке jscript.net
Написан на языке VB.NET. - CsHello.dll
Говорит "Привет" в меню плагинов по F11 (строка "Hello from C#, user"). Написан на языке C#. - HelloSrc.vb
Говорит "Привет" в меню плагинов по F11 (строка "Hello from VB.NET Source, user"). Написан на языке VB.NET. - js7.dll - исполняет программы на jscript.net
По префиксу js7: выполняется программа, находящаяся в командной строке или в файле. Например: js7:Far.Msg("Hello!") или js7:js.hello (js.hello - файл с текстом программы) - guid.dll - вставляет в буфер обмена значение GUID
По префиксу guid:[empty] или при выборе соответствующего пункта меню плагинов в буфер обмена помещается значение guid. - md5.dll - выполняет операции с md5-дайджестами
По префиксу md5n:<имя файла> выполняются действия с "md5-checksum": - Если имя файла в команде имеет расширение .md5dig, ищется файл с именем без этого расширения, считается для него дайджест и сравнивается с содержимым файла-параметра
- Если имя файла в команде имеет любое другое расширение, для него вычисляется дайджест и записывается в файл <имя файла>.md5dig и в Clipboard
- Если имя файла не указано (или плагин вызван из меню плагинов), указанные действия выполняются для всех выделенных файлов.
- SplitFile.dll - выполняет деление файла на заданные части
По префиксу sm:<имя файла> <размер части> формируются части файла и вспомогательные "сборочные" файлы.- Размер части указывается в байтах (напр., 120000), килобайтах (напр., 120к) или мегабайтах (напр., 12м).
- При вызове из меню плагинов разрезается текущий файл на части с размером по умолчанию (можно изменить в файле конфигурации).
- Вместо имени файла можно использовать "." в качестве имени текущего выделенного файла.
Программирование плагиновПапка src\plugins содержит исходные тексты поставляемых плагинов и заготовку в файле Template.txt. Руководствуясь файлом документации Far.Net.chm, комментариями в файлах исходных текстов, документацией к плагину SHPCE и др., опишите класс, производный от Far.Net.FarNetPlugin, реализующий необходимые Вам алгоритмы. Скомпилируйте Ваш плагин с использованием команды make.cmd YourPlugin.vb Результат компиляции поместите в папку bin\plugins, перезагрузите плагины через пункт меню .NET Plugins → == Reload ==.
Замечание. В ту же папку поместите сборки (библиотеки), используемые Вашим плагином. Замечание 2. При наличии в папке bin\plugins файла debug.flg выводится сообщение о количестве загруженных .net-плагинов. Замечание 3. Простые плагины на VB.NET/JS.NET можно поместить в папку bin\plugins в виде исходных текстов, без компиляции. Папки Source\C# и Source\vb содержат проекты MS VS 2003 для программирования плагинов на C# и VB.NET соответственно. К проектам необходимо подключить сборки Far.Net.Plugin.dll и SHPCE.NET.dll и пространства имён Far.Net и SHPCE.Net |