Laden...

Image von Verknüpfung auslesen

Erstellt von Taladan vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.434 Views
Taladan Themenstarter:in
582 Beiträge seit 2008
vor 14 Jahren
Image von Verknüpfung auslesen

Hallo,

Windows verknüpft Dateien mit verschiedenen Programmen. Die Dateierweiterungen erhalten dann hübsche kleine Icons. Wie kann man diese Icons auslesen und im eigenen Programm darstellen?

Gruß dat Tala

446 Beiträge seit 2004
vor 14 Jahren

Die Icons für die Dateierweiterungen werden in der Registery gespeichert.

Eine Option wäre also, in der regedit einen entsprechenden Schlüssel zu setzen.
Siehe auch:

Eigenes Dateiformat einrichten

Schaut mal im IRC vorbei:
Server: https://libera.chat/ ##chsarp

Taladan Themenstarter:in
582 Beiträge seit 2008
vor 14 Jahren

Hallo,

falsch rum. Ich möchte keine Dateierweiterung registrieren. Sondern lediglich das Icon einer registrierten Dateierweiterung auslesen. Beispielsweise bei .PDF dieses typsiche PDF Symbol was man im Explorer sehen kann. Dieses Symbol möchte ich dann auch in meinen Programm für entsprechende Dateierweiterungen in einer Dateiliste verwenden.

Gruß dat Tala

Taladan Themenstarter:in
582 Beiträge seit 2008
vor 14 Jahren

*push* Hat jemand zumindest Schlagworte für mich, wonach ich suchen kann?

Gruß dat Tala

1.820 Beiträge seit 2005
vor 14 Jahren

Hallo!

Ein entsprechendes Stichwort wurde schon gegeben: Registry.

Dort werden alle Dateiendungen und die dazugehörigen Symbole vermerkt, und zwar im Unterordner HKEY_CLASSES_ROOT (und dort als Standard-Wert im Unterordner DefaultIcon des jeweiligen Dateityp-Ordners). Allerdings befinden sich die meisten Symbole als Resource in einer Exe-Datei, welche der jeweiligen Dateiendung zugeordnet ist.
Ich meine auch, dass hier im Forum mal ein Programm zur Bildextraktion gepostet wurde.

Nobody is perfect. I'm sad, i'm not nobody 🙁

821 Beiträge seit 2009
vor 14 Jahren

Jap, mach es so wie oben beschrieben und extrahier dir dann die Resource über ein entsprechendes Tool:

http://www.pe-explorer.com/de/peexplorer-feature-list.htm

Eine Suche bei google über "Resourcen extrahieren" bringt dir noch zahlreiche weitere Tools.

Taladan Themenstarter:in
582 Beiträge seit 2008
vor 14 Jahren

Habe gerade eine einfachere Lösung gefunden, die komplett ohne Registry funktioniert und das ist genau das was ich wollte.


        private BitmapFrame getIconFromString(string Path)
        {
            Icon ico = Icon.ExtractAssociatedIcon(this.FileLocation);
            MemoryStream strm = new MemoryStream();
            ico.Save(strm);
            IconBitmapDecoder ibd = new IconBitmapDecoder(strm, BitmapCreateOptions.None, BitmapCacheOption.Default);
            return (BitmapFrame)ibd.Frames[0];
        }

Gruß dat Tala