Bibliothek zum Implementieren von Windows Explorer-Symbolüberlagerungen

Ich möchte ein Tool entwickeln, um Symbolüberlagerungen im Windows Explorer anzuzeigen.
Ähnlich wie Dropbox oder TortoiseGit, Beispiel:

Symbolüberlagerungen

Welche Bibliothek würde dies so einfach und zuverlässig wie möglich machen?

Anforderungen:

  • Open Source (kompatibel mit GNU-GPLv3)
  • Zuverlässigkeit ist das Wichtigste, wichtiger als die Sprache
  • Idealerweise C# oder etwas, das eine C#-DLL laden und aufrufen kann
  • Ich würde es vorziehen, Benutzer möglichst nicht dazu zu zwingen, zusätzliche Software wie JRE zu installieren
  • Funktioniert mit Windows 7+

Antworten (4)

Schauen Sie sich den Overlay Server von TortoiseHG an :

  • es ist Open Source, GPL2, und stützt sich meines Wissens nicht auf irgendwelche nicht freien Software-Tools
  • implementiert in einer einzigen Datei, TortoiseHgOverlayServer.py , mit derzeit 553 Zeilen einschließlich Kommentaren und Leerzeilen.
  • Funktioniert mit Windows XP bis 10.
  • Sehr zuverlässig, aber mit der Einschränkung, dass alle diese Windows-Tools mit einer begrenzten Anzahl von Overlay-IDs konfrontiert sind, die in Windows verfügbar sind, sodass die verschiedenen Overlay-Server um deren Verwendung konkurrieren.
  • Implementiert in Python, so einfach zu lesen und verwendet kostenlose Tools.
  • Sie können es nach IronPython portieren, um es in Ihrem C#-Code zu verwenden.

Schildkröten-Icon-Overlay

Auf der Homepage steht: „ Acknowledgement: The TortoiseHg installer for Windows contains the TortoiseOverlays handler, as provided by the TortoiseSVN project. “ also sollte ich vielleicht stattdessen damit arbeiten? Oder hat TortoiseHG es verbessert?
@NicolasRaoul - Gut entdeckt - Ich bin mir nicht sicher, ob das aktuell ist und die TortoiseHgOverlayServer.py ersetzt wurde oder ob er etwas veraltet kommentiert.

Liferay Nativity ist eine plattformübergreifende Bibliothek zum Hinzufügen von Symbolüberlagerungen und Kontextmenüs zu Dateibrowsern.

  • Open Source: Ja, LGPL
  • Zuverlässig: Es wird in einem kommerziell unterstützten Produkt verwendet, also denke ich, aber nicht getestet
  • Die Kommunikation erfolgt über JSON/sockets, sodass es vermutlich nach ein wenig Entwicklung auf der C#-Seite mit C# kommunizieren kann
  • Leider scheint eine JRE erforderlich zu sein
  • Funktioniert mit Windows Vista+ und sogar Mac OS X 10.7+ und Linux GNOME Nautilus 3.x

Liferay Sync-Symbolüberlagerung

SharpShell klingt wie die perfekte Lösung: Implementieren Sie eine einfache C#-Schnittstelle, und SharpShell erledigt all die dunklen C-Sachen.

Lizenz: MIT
Quellcode: https://github.com/dwmkerr/sharpshell
Tutorial: http://www.codeproject.com/Articles/545781/NET-Shell-Extensions-Shell-Icon-Overlay-Handlers

Leider ist das Ergebnis selbst nach wochenlanger Entwicklung mit dem Icon-Overlay-Teil immer noch nicht zuverlässig (manchmal werden die Overlay-Icons nicht angezeigt) und es hat Fehler . Das ist bedauerlich, da andere Teile von SharpShell (wie Shell-Kontextmenüs) sehr gut funktionieren.

SharpShell-Symbolüberlagerung

Funktioniert es auch mit Windows-Ordnern?
@shiv.mymail Gute Frage, ich weiß es nicht.