Hallo,
ich versuche vergebens, das Icon aus einer Datei zu extrahieren, mit dem diese Datei verbunden ist.
Beispiel:
MP3-Dateien sind auf dem aktuellen Rechner mit Winamp verknüpft, also haben alle MP3s ein Winamp-Symbol.
Ich such nach einer Möglichkeit, die mir für die Dateiendung .mp3 (oder eine konkrete .mp3-Datei) das entsprechende Icon/Bild liefert, so wie es im Explorer angezeigt wird.
Habe leider mit der Forensuche nichts finden können 🙁
Grüße,
Mario
Hallo snoop83,
Ich such nach einer Möglichkeit, die mir für die Dateiendung .mp3 (oder eine konkrete .mp3-Datei) das entsprechende Icon/Bild liefert, so wie es im Explorer angezeigt wird.
da bist du nicht der Erste. Entsprechend ist das Forum und das Netz voll von Lösungen. 🙂 Bitte benutze die Forumssuche und poste die besten Treffer hier. Vielen Dank!
Suchbegriffe sind HKEY_CLASSES_ROOT, DefaultIcon für das Ermitteln des Icons und StolenIcon zum Herausholen.
herbivore
Danke für die Tipps, damit findet sich natürlich was 🙂
Der Thead hier könnte somit gelöscht werden..
Nö,
es wäre Sinvoller wenn Du gute Ergebnisse als Link einstellst. Denn wenn jemand diesen Beitrag findet weil hier die passenden Keywords stehen, kommt diese Person weiter. Löscht man den Thread einfach, löscht man auch Wissen aus.
Z.B. ist an diesem Beitrag die Information nach was man suchen kann Wertvoll. Sowas löscht man nich einfach 😮)
Mit den 3 von dir genannten Stichwörtern findet man die Beiträge schnell. Ich poste mal einen Sample-Code von mir:
private void loadACDSeeImage()
{
tryToLoadIcon(@"C:\Programme\Gemeinsame Dateien\ACD Systems\PlugIns2\IDE_ACDStd.apl", 2);
}
private void tryToLoadIcon(String pPath, int pIndex)
{
// HKEY_CLASSES_ROOT
// DEFAULTICON
uint iconNum = ExtractIconEx(
pPath, // filepath
-1, // start
null, // large icon out
null, // small icon out
0); // number of icons
if (iconNum > 0)
{
this.labelIconNum.Text = iconNum.ToString() + " Icon(s)";
if (pIndex < iconNum)
{
IntPtr[] largeIcons = new IntPtr[1];
IntPtr[] smallIcons = new IntPtr[1];
ExtractIconEx(
pPath, // filepath
pIndex, // start (index)
largeIcons, // large icon out
smallIcons, // small icon out
1); // number of icons
this.pictureBoxLarge.Image = Bitmap.FromHicon(largeIcons[0]);
this.pictureBoxSmall.Image = Bitmap.FromHicon(smallIcons[0]);
DestroyIcon(largeIcons[0]);
DestroyIcon(smallIcons[0]);
}
else
{
this.labelIconNum.Text = "wrong icon index";
}
}
else
{
this.labelIconNum.Text = "no icons found";
}
}