Hallo zusammen,
danke erstmal an dich Toms für die Bereitstellung deines Codeschnipsels (und die Erweiterung der Demo
).
Unter
http://www.swissdelphicenter.ch/de/showcode.php?id=628 habe ich auch einen Codeausschnitt gefunden, der das Fenstericon ebenfalls über GetClassLong() + GCL_HICON auszulesen versucht. Dieser hat mich aber nicht überzeugt, da nur das große Icon zurückgeliefert wird, was nicht bei allen Anwendungen gut funktioniert.
Über GCL_HICONSM kann man auch das kleine Icon auslesen, was Toms' Code ja demonstriert. Das funktioniert meistens auch ganz gut, aber eben auch nicht immer:
- Hat der ein oder andere von euch AntiVir PE (laufen)? Bei mir wird statt dem roten Schirm-Icon des AntiVir Guard ("AnitVir PersonalEdition Classic - Guard") nur das Standard-Anwendungs-Icon angezeigt.
- Bei mir tritt das gleiche Problem wie bei SirThornberry auf: Gebt mal "fMain.pas" als Fenstertitel ein. Obwohl das Codefenster ein kleines Icon in der Titelleiste besitzt, kann nur das große ermittelt werden.
- Bei manchen Programmen wird als kleines Icon das große Icon ermittelt, dieses wird dann entsprechend auf 16x16 Pixel zugeschnitten.
Außerdem: Wie wird eigentlich das große Icon ermittelt? Eigentlich existiert ja nur ein kleines Icon in der Titelleiste, woher kommt dann das 32x32-Symbol?
Im Anhang findet ihr zu den einzelnen Punkten Screenshots...
Gruß, Marco