WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   API: Bitmap-Icons zeigen Bitmap-Inhalt (http://www.wcm.at/forum/showthread.php?t=102420)

cndg 12.07.2003 14:00

API: Bitmap-Icons zeigen Bitmap-Inhalt
 
Hallo!

Mit der API-Funktion
Code:

Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long
lese ich Icons von Dateien aus, um diese mit ihrem jeweiligen Icon anzeigen zu können. Das funktioniert auch perfekt - bis auf eine Ausnahme: Bei Bitmaps erhalte ich nicht das Bitmap-Datei-Icon, sondern den Inhalt der Bitmap-Datei.
Als letzten Parameter der Funktion kann ich einen Icon-Index angeben, da eine Datei mit mehreren Icons assoziiert sein kann:
Code:

FileIcon = ExtractAssociatedIcon(App.hInstance, Files(i), 0)
Normalerweise ist der Index 0. Wenn ich bei Bitmaps als Index 1 angebe, erhalte ich das richtige Icon.
Daher meine Fragen:
Ist das nur bei Windows XP so?
Bei welchen Dateitypen kann mir so etwas noch blühen?
Wie das Programm feststellen, welcher Icon nun der richtige ist?

Sonic 13.07.2003 11:06

Hi!

Das Problem mit ExtractAssociatedIcon ist das sie, per definition, nicht die zugewiesenenn icons bei dlls oder bitmaps anzeigt (bei exe ist das auch nicht unbedinngt der fall) stadtdessen solltest du die funktion SHGetFileInfo benutzen. Mit der bekommst du genau das icon das auch der Explorer anzeigt.

Bei About Visual Basic gibt es einen interessanten Artikel über dieses Problem.

Hoffe das hilft dir weiter!

LG

cndg 14.07.2003 13:24

Danke :) ! Ich habe zwar inzwischen bei VB-Fun ein ähnliches Beispiel gefunden, aber bei AboutVB ist es viel besser erklärt!

mfg
cndg


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag