Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Интерфейс для создания TC плагинов с помощью .NET Framework

 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
olegy



Joined: 01 Oct 2014
Posts: 4
Location: Des Plaines, USA

Post (Separately) Posted: Tue Oct 21, 2014 00:49    Post subject: Интерфейс для создания TC плагинов с помощью .NET Framework Reply with quote

Представляю на ваш суд новый интерфейс для разработки TC плагинов с использованием .NET Framework.

Линк на wincmd.ru
Линк на totalcmd.net

Это Open-Source проект, распространяется под лицензией MIT.

Страница проекта на SourceForge
Исходный код на SourceForge

Достаточно подробная документация (HTML, English) содержится в загружаемом архиве.

Жду ваших замечаний и предложений.
_________________
Regards,
Oleg Y
Back to top
View user's profile Send private message
olegy



Joined: 01 Oct 2014
Posts: 4
Location: Des Plaines, USA

Post (Separately) Posted: Thu Oct 30, 2014 01:26    Post subject: Reply with quote

Version 1.1.
Добавлено: Поддержка для QuickSearch плагинов (tcmatch.dll)
_________________
Regards,
Oleg Y
Back to top
View user's profile Send private message
olegy



Joined: 01 Oct 2014
Posts: 4
Location: Des Plaines, USA

Post (Separately) Posted: Tue Feb 17, 2015 01:27    Post subject: Reply with quote

Release version 1.2

Добавлено: Поддержка Lister плагинов с WPF интерфейсом.
Исправлено: Некорректная работа с плагинами, созданными под .NET Framework 4.0 и выше (CLR4).
Добавлено: Пример Lister плагина с WPF интерфейсом.
Добавлено: Пример FS и Lister плагинов, созданных под Framework 4.0 и выше (CLR4).
_________________
Regards,
Oleg Y
Back to top
View user's profile Send private message
olegy



Joined: 01 Oct 2014
Posts: 4
Location: Des Plaines, USA

Post (Separately) Posted: Wed Apr 01, 2015 08:21    Post subject: Reply with quote

2015-03-25 Release version 1.3

Добавлено: Lister плагины - клавиатурные команды в родительское Lister окно.
Исправлено: Проблемы с таймаутом для некоторых типов плагинов.
Обновлено: WrapperBuilder строит 32- и 64-битные версии TC плагина за один проход.
_________________
Regards,
Oleg Y
Back to top
View user's profile Send private message
max_acoustic



Joined: 20 Oct 2015
Posts: 1

Post (Separately) Posted: Tue Oct 20, 2015 22:11    Post subject: Reply with quote

Добрый день!

Пытаюсь использовать ваши интерфейсы. Создал сборку для .net 4.0, добавил в зависимости TcPluginInterface.dll. Создал класс - наследник ListerPlugin, переопределил метод Load. Собрал, выполнил WrapperBuilder.

WrapperBuilder падает с ошибкой
Code:
Installation archive
====================
ERROR: The system cannot find the file specified


Я так понимаю, что это не критично. Проблема, судя по коду, заключается в том, что в программу захардкожен путь к zip-архиватору.

Так или иначе, я получаю два файла: wlx и wlx64. При попытке добавить их в TC он падает без симптомов. Подскажите пожалуйста, с какой стороны копать?
Back to top
View user's profile Send private message
GODiDS



Joined: 08 Sep 2011
Posts: 2
Location: Russia

Post (Separately) Posted: Mon Feb 15, 2016 18:51    Post subject: Reply with quote

olegy
max_acoustic

Не удаётся заставить работать даже примеры.
Использую ContentSample.

Всё что делаю:
1. WrapperBuilder'у, по причине отсутствия SDK v6 скормил ildasm от SDK v7.0A (но при сборке файлов плагинов всё работает - файлы генерируются)
2. Сконвертировал проект в солюшен для VS 2015 (собственно это ничего не изменило)
3. Вызываю сборку - сборка выполняется, правда ругается на отсутствие rc.exe (не может собрать архив для установщика)
4. Подключаю плагин в списке плагинов TC (x64), сразу же вываливается ошибка (окно ".NET Plugin Error"):
Code:
RemotingException: Невозможно преобразовать тип аргумента "System.EventHandler`1[OY.TotalCommander.TcPluginInterface.PluginEventArgs]" в тип параметра "System.EventHandler`1[OY.TotalCommander.TcPluginInterface.PluginEventArgs]".

Server stack trace:
   в System.Runtime.Remoting.Messaging.Message.CoerceArg(Object value, Type pt)
   в System.Runtime.Remoting.Messaging.Message.CoerceArgs(MethodBase mb, Object[] args, ParameterInfo[] pi)
   в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]:
   в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   в OY.TotalCommander.TcPluginInterface.TcPlugin.add_TcPluginEventHandler(EventHandler`1 value)
   в OY.TotalCommander.TcPluginTools.TcPluginLoader.GetTcPlugin(String wrapperAssembly, PluginType pluginType)
   в OY.TotalCommander.WdxWrapper.ContentWrapper.get_Plugin()
   в OY.TotalCommander.WdxWrapper.ContentWrapper.SetDefaultParams(PluginDefaultParams& defParams)

InvalidCastException: Объект должен реализовывать интерфейс IConvertible.
   в System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
   в System.Runtime.Remoting.Messaging.Message.CoerceArg(Object value, Type pt)


В чём может быть дело. Единственное, что вызывает сомнения в моих действиях, это использование SDK v7 вместо SDK v6. Но хотелось бы узнать ваше мнение прежде чем искать и качать целый Windows SDK.
Тем более описание ошибки и наличие аналогичных проблем у других пользователей даёт основания полагать что проблема всё таки присутствовала изначально.
Back to top
View user's profile Send private message
GODiDS



Joined: 08 Sep 2011
Posts: 2
Location: Russia

Post (Separately) Posted: Tue Feb 16, 2016 17:31    Post subject: Reply with quote

SDK v6 и VS2008 не спасли положения. Всё таки косяки где то во враперах/интерфейсе. Попытки поковырять исходники dll врапера, и даже просто скомпилить без изменений приводят различного рода ошибкам "совместимости" определить природу которых... как то лень.
Жаль, потенциально полезная разработка, лично мне сильно упростила бы разработку.

На всякий случай, то что я использовал:
Win 10 Pro x64
VS2015 Pro / VS2008 Pro
TC 8.52 x64 / TC 8.52a x64 / TC 8.52a x86
Back to top
View user's profile Send private message
Marcus



Joined: 06 Apr 2016
Posts: 2

Post (Separately) Posted: Wed Apr 06, 2016 16:12    Post subject: ошибка выполнения Reply with quote

Олег, добрый день!
я скомпилировал ваш пример FSSample_clr4 и получил wfx файл, но при попытке добавить плагин в TC (v.8.01 x32) он выдает ошибку Exception in function DllMain, а при попытке использования падает с непонятной ошибкой.
Скажите, можно ли получить вашу консультацию по Skype, например?
Готов оплатить консультацию в размере 1-2 тыс. руб.
Ошибка при попытке использования:
Code:
---------------------------
Total Commander 8.01
---------------------------
External exception E0434352.
External exception E0434352
Windows 7 SP1 6.1 (Build 7601)

Please report this error to the Author, with a description
of what you were doing when this error occurred!

Windows exception: E0434352
Stack trace:
759980D7
6545DE  65606E  6560E3  4DAF98  4DC0D8  638BD5
444C24  444AD1  4460A5  444A0F  446DD6  444AD1
446A22  >423F38  445FE3  423F38  445F51  423F38
4460A5  446A22  423F38  445FE3  423F38  429604
42969C  6D9F34 
Raw:
6545DE  65606E  6560E3  6D0070  6AB50A  5F0059
5F0063  4E7EAD  446D7E  444AD1  446CF1  435E92
446033  4460A5  446A22  446A45  423F38  445FE3
423F38  637047  636B3F  637047  402E4A  444AD1
402E4A  444AD1  446CF1  4460A5  425C14  4460A5
446A22  446A45  423F38  445F51  423F38  446D9B
447158  4360F3  446A22  423F38  6B9E66  6B6A47
4DAF98  6D0070  670063  445F51  423F38  446D9B
444AD1  446CF1  4460A5  446A22  446A45  423F38
445FE3  423F38  45A5FE  4EBBA3  416A7B  445F51

Press Ctrl+C to copy this report!
Continue execution?
---------------------------
Да   Нет   
---------------------------
Back to top
View user's profile Send private message
Marcus



Joined: 06 Apr 2016
Posts: 2

Post (Separately) Posted: Wed May 25, 2016 12:28    Post subject: ответ на собственный вопрос Reply with quote

моя проблема решилась копированием dotNET dll плагина в корневой каталог, т.к. totalcmd.exe ищет ее в своем каталоге.
Пробовал на версии clr4
Back to top
View user's profile Send private message
G2G3G4



Joined: 04 Jul 2016
Posts: 14
Location: Белгород

Post (Separately) Posted: Wed Jul 06, 2016 12:06    Post subject: Reply with quote

olegy,
Вы ещё поддерживаете свой проект?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group