Creating a Plugin / Addon

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
Wojtek
Junior Member
Junior Member
Posts: 65
Joined: 2010-02-07, 11:58 UTC
Location: Germany

Creating a Plugin / Addon

Post by *Wojtek »

Hi,

I have one simple question and I couldn't find anything on this in the forums.

What do I need to make my own plugin for TC?

- what skills?
- which programming language?
- what software?
- etc.
Asus Maximus VIII Hero · Win10 Pro x64
Crucial MX500 1TB SSD · 64GB Corsair Vengeance LPX · nVidia GeForce RTX 3060 · Intel i7 7700K

Lenovo ThinkPad X1 Yoga 2.Gen · Win10 Pro x64
512GB SSD · 16GB RAM · intel HD620 · i7-7600U

TC 11.02 32-bit #347308
User avatar
Dalai
Power Member
Power Member
Posts: 9364
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: Creating a Plugin / Addon

Post by *Dalai »

Are your questions just out of curiousity or do you intend to write a plugin?

The more specific you ask your questions the more specific the answers can be. I'll give it a try.
Wojtek wrote: 2022-07-19, 16:03 UTCWhat do I need to make my own plugin for TC?
First, you need some idea on what your plugin should do. Next, you need to understand the different kinds of TC plugins (WCX, WDX, WFX and WLX), what they can do and where they can be used. Based on that knowledge you can decide which kind of plugin would be best suited for the data you want the plugin to show. For each of the plugin types there's an interface description available that explains which functions a plugin type provides and what they do. See for example https://www.ghisler.com/plugins.htm (look for "plugin guide") or https://github.com/ghisler/.
- what skills?
Well, that depends ;). No seriously, it depends on what kind of data you want a plugin to provide. A general understanding of programming definitely helps.
- which programming language?
That doesn't matter much. There are plugins written in C++, C#, Delphi, Java (IIRC), PowerBasic and probably others. Maybe even scripting languages (via wrapper), not sure.
- what software?
Well, that obviously depends on the programming language. If it's not a scripting language, you need a compiler and an editor. Or an IDE like Visual Studio, Delphi/Free Pascal, Eclipse. It definitely depends.

Regards
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Wojtek
Junior Member
Junior Member
Posts: 65
Joined: 2010-02-07, 11:58 UTC
Location: Germany

Re: Creating a Plugin / Addon

Post by *Wojtek »

Wow, thanks!

I'm asking, because there are some things that TC can not handle right now and there are no plugins or addons which do that too.

So I thought, if my coding skills (Java, Web, VBA, Batch) are sufficient enough I could give it a try.

The major problem is not the language or the coding skills, but what I would call "Object Reference".
That means which "objects" are available and what are their properties and functions.

Like in Java you have the GUI (Swing) where you can add some shiny buttons aso.
or in Web, where you have the DOM (Document Object Model) where you can manipulate the various parts of a web document.
Etc. etc.

Is there such a documentation for TC plugins?
Asus Maximus VIII Hero · Win10 Pro x64
Crucial MX500 1TB SSD · 64GB Corsair Vengeance LPX · nVidia GeForce RTX 3060 · Intel i7 7700K

Lenovo ThinkPad X1 Yoga 2.Gen · Win10 Pro x64
512GB SSD · 16GB RAM · intel HD620 · i7-7600U

TC 11.02 32-bit #347308
User avatar
Dalai
Power Member
Power Member
Posts: 9364
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: Creating a Plugin / Addon

Post by *Dalai »

Wojtek wrote: 2022-07-19, 17:17 UTCThe major problem is not the language or the coding skills, but what I would call "Object Reference".
You can't pass objects between a host program (TC in this case) and a DLL (a plugin). What a DLL/plugin does internally doesn't matter to the host program and vice versa. But it matters when these two copy data to each other. The plugin interface sets the ground rules. Usually simple data types like numeric values, pointers to character arrays and the like are used in such interfaces, so that anyone can use that interface. You could call it the least common denominator. Very similar to how most of the Win32 API is designed.
Is there such a documentation for TC plugins?
Sure. See the links I posted above.

Regards
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Post Reply