Icon aus .exe oder .dll
-
Hallo zusammen!
Ich möchte in meinem Programm Dateien wie .exe oder .dll bildlich darstellen.
Dazu brauche ich eine entsprechende Icon, die der betroffenen Datei zugewiesen ist.Weiß jemand villeicht, wie das geht?
Danke im voraus.
-
Ich denke das dürfte dir helfen

Mit dieser Funktion holst du dir die Standard Icons der jeweiligen Extension, wie sie im Explorer angezeigt werden!
[cpp]SHFILEINFO sfi = { 0 };
SHGetFileInfo(szExt, // in dieser Variable muss die Erweiterung[Extension] stehen, z.b. exe, dll usw.
FILE_ATTRIBUTE_NORMAL, &sfi,
sizeof(sfi), SHGFI_USEFILEATTRIBUTES|SHGFI_ICON|SHGFI_SYSICONINDEX);
[cpp]In der sfi Struktur gibt es eine Variable die hIcon lautet - das ist das Handle zu dem Icon!
Wobei ich mir nicht mehr ganz sicher bin, ob in szExt ".exe" oder nur "exe" stehen muss - das müsstet du noch ausprobieren.
lG
-
Sry, hier nochmal formatiert:
SHFILEINFO sfi = { 0 }; SHGetFileInfo(szExt, // in dieser Variable muss die Erweiterung[Extension] stehen, z.b. exe, dll usw. FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_USEFILEATTRIBUTES|SHGFI_ICON|SHGFI_SYSICONINDEX);
-
Danke fur die schnelle Antwort.
Es hat geklappt
Jetzt aber noch ein Problem. Ich möchte diese Icons in ein Kontextmenu bringen.
Die Klasse CMenu kann aber nur mit Bitmaps umgehen. Wie kann ich HICON in CBitmap umwandeln?
Danke.
-
Erzeuge einen Memory DC und zeichne das Icon in diesen DC.
-
Ja, dachte ich auch...

... aber wie? Sowas habe ich noch nie gemacht.Hättest du villeicht ein Beispiel parat?
Danke.