WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 12.07.2003, 14:00   #1
cndg
bitte Mailadresse prüfen!
 
Registriert seit: 26.12.2002
Alter: 41
Beiträge: 140


Böse 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?
cndg ist offline   Mit Zitat antworten
Alt 13.07.2003, 11:06   #2
Sonic
Master
 
Registriert seit: 28.03.2000
Alter: 45
Beiträge: 691


Sonic eine Nachricht über ICQ schicken
Standard

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
____________________________________
__________________
|»»»»»SONIC««««««|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Sonic ist offline   Mit Zitat antworten
Alt 14.07.2003, 13:24   #3
cndg
bitte Mailadresse prüfen!
 
Registriert seit: 26.12.2002
Alter: 41
Beiträge: 140


Standard

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

mfg
cndg
cndg ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:46 Uhr.


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