Es gibt mehrere Ansätze, um die Beschreibung und Standard-Icon für eine bestimmte Erweiterung (kein vollständiger Pfad) zu holen, zB für "* .doc" Ich möchte "Microsoft Word-Dokument" und das zugehörige Symbol erhalten die schnellste sie eine der folgenden:Schnellster Weg, um den Namen und das Symbol der Erweiterung durch eine Dateierweiterung zu erhalten?
der Registrierung suchen: "HKCR {extension}"
- in der Registry, gehen sie auf den Standardwert lesen (nennen wir es filetype)
- in "HKCR {filetype} \ DefaultIcon", lesen Sie den Standardwert: Dies ist der Pfad zu der Symboldatei (oder das Symbol enthalten er Datei, wie eine .exe mit einer eingebetteten Symbolressource)
- Verwenden Sie bei Bedarf die bevorzugte Methode zum Extrahieren der Symbolressource aus der genannten Datei.
Aufruf API ShGetFileInfo. Ich glaube, das ist ein bisschen langsam.
Rob Laut, hier: How to get icon and description from file extension using Delphi?
Ruft die IExtractIcon Schnittstelle ein "flexibler und effizienter" Alternative. Die empfohlene Reihenfolge besteht jedoch darin, eine IShellFolder-Schnittstelle zu verwenden. Rufen Sie dann GetUIObjectOf auf, um die IExtractIcon-Schnittstelle der Datei abzurufen, und rufen Sie anschließend GetIconLocation und Extract dazu auf, um das Handle des Symbols abzurufen. (aber diese Methode kann die Erweiterung Beschreibung nicht lesen?)
Da die Geschwindigkeit ist sehr wichtig, weil ich die Informationen für alle Dateitypen im System lesen müssen.
Vielen Dank!
+1 für "Test testen und erneut testen" – thijs