Entwickler-Ecke

Sonstiges (.NET) - Eigene Thumbs


VampireSilence - Sa 14.01.12 12:12
Titel: Eigene Thumbs
Hallo Zusammen,

habe da mal wieder eine Frage, aber diesmal auch im Bezug auf Windows 7. Dieses legt ja Thumbs an für allerhand Sachen und dies auch für Dateien systemfremder Typen, sofern ein Programm installiert ist, dass die Dateien lesen und eine Vorschau erzeugen kann (bspw *.pdf). So, wenn ich jetzt ein solches Programm selber schreiben wollte, wie müsste ich es unter Windows einbinden, um die entsprechenden gerenderten Bitmaps als Dateivorschau angezeigt zu bekommen ?

mfg
- VampireSilence


Th69 - Sa 14.01.12 13:26

Hallo,

da wirst du wohl auf Systemebene ansetzen müssen.
Mittels COM steht folgendes Interface dafür zur Verfügung: IThumbnailCache interface [http://msdn.microsoft.com/en-us/library/bb774628.aspx]
Alternativ gibt es auch die IShellItemImageFactory::GetImage [http://msdn.microsoft.com/en-us/library/bb761082.aspx] Methode.

Du müßtest mal ein bißchen im Internet recherchieren wie man diese dann von C# aus aufruft (z.B. Artikel bei CodeProject.com).

P.S. Die Links dazu habe ich übrigens von den "References" unter http://en.wikipedia.org/wiki/Windows_thumbnail_cache


VampireSilence - Sa 14.01.12 18:33

Ok danke schonmal, aber dass ich aktiv Code anwenden muss, bedeutet dann also, dass die Anwendung permanent laufen und reagieren muss ? Also zweckmäßigerweise dann als Windows-Service ?

Die Links zeigen außerdem nur Wege, Thumbs zu lesen bzw. zu extrahieren. Ich will aber selbst welche erzeugen, also genau das umgekehrte. ^^

mfg
- VampireSilence


Th69 - Sa 14.01.12 20:03

Hallo VampireSilence,

ok, dann suchst du wohl nach IExtractImage interface [http://msdn.microsoft.com/en-us/library/bb761848%28v=vs.85%29.aspx] bzw. ab Vista IThumbnailProvider interface [http://msdn.microsoft.com/en-us/library/bb774614%28v=vs.85%29.aspx]

Einige weitere Links findest du unter http://superuser.com/questions/267392/how-would-i-create-a-thumbnailer-for-windows-7-explorer (bei den "Answers")

Hier in Kürze:
http://www.codeproject.com/KB/shell/thumbextract.aspx
https://shaunkime.wordpress.com/2010/01/07/creating-a-windows-thumbnail-control-iextractimage/
http://msdn.microsoft.com/en-us/library/bb776853%28v=vs.85%29.aspx
http://stackoverflow.com/questions/1439719/c-sharp-get-thumbnail-from-file-via-windows-api

Selber gearbeitet habe ich auch noch nicht damit, aber lese dich erstmal ein und dann schreib mal zurück, wie weit du gekommen bist.


VampireSilence - So 15.01.12 18:32

Ja, genau das ist es. Ich habe den Code nun schonmal überflogen und verstehe sogar das meiste, aber es gibt bestimmte Sachen, da wüsste ich beim besten Willen nicht, wie ich das in C# übersetzen sollte. Wird wohl ne Weile dauern, bis ich da wirklich was vorweisen kann.

mfg
- VampireSilence