Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fenster-Icon aus hWnd ermitteln (https://www.delphipraxis.net/47420-fenster-icon-aus-hwnd-ermitteln.html)

Marphy 10. Jun 2005 21:17


Fenster-Icon aus hWnd ermitteln
 
Hallo zusammen,
kaum ist das eine Problem gelöst, gibt's schon wieder ein neues... :?

Gegeben ist ein Fenster-Handle (mal wieder eines "echten" Fensters, also keines Controls o.ä.).
Gesucht das Fenster-Icon, welches in dessen TitleBar angezeigt wird, und zwar in den Größen 32x32 und 16x16 Pixeln.

Könnt ihr mir weiterhelfen? Die WNDCLASSEX hat ja entsprechende Einträge, kann man diese evtl. mit GetWindowLong() auslesen?

Gruß, Marco

Luckie 10. Jun 2005 21:22

Re: Fenster-Icon aus hWnd ermitteln
 
Dazu brauchst du nicht das Fenster, sonder die Exe. da sich in der Ressource der Exe das Icon befindet: Hier im Forum suchenSHGetFileInfo

Marphy 10. Jun 2005 21:36

Re: Fenster-Icon aus hWnd ermitteln
 
Hallo Luckie,
antworte doch bitte auf meine Frage :(

Das Icon der EXE-Datei ermittle ich bereits über ExtractIconEx. Ich will aber zusätzlich noch das Icon des Formulars selbst... Formular-Icon <> EXE-Icon, das weißt du doch. :wink:

Gruß, Marco

c113plpbr 10. Jun 2005 21:48

Re: Fenster-Icon aus hWnd ermitteln
 
Vielleicht hilft dir ja nen Handle zum Icon weiter, welches du über SendMessage und WM_GETICON herausfinden könntest.

ciao, Philipp

Marphy 12. Jun 2005 14:19

Re: Fenster-Icon aus hWnd ermitteln
 
Hallo Philipp,
Zitat:

Zitat von c113plpbr
Vielleicht hilft dir ja nen Handle zum Icon weiter, welches du über SendMessage und WM_GETICON herausfinden könntest.

hab das nun implementiert, funktioniert aber leider nur bei einigen wenigen Fenstern...

Gruß, Marco

SirThornberry 12. Jun 2005 14:22

Re: Fenster-Icon aus hWnd ermitteln
 
ich denk mal es funktioniert nur bei den Fenstern den explizit ein eigenes Icon zugeordnet wurde.

Marphy 12. Jun 2005 18:06

Re: Fenster-Icon aus hWnd ermitteln
 
Hallo,

Zitat:

Zitat von SirThornberry
ich denk mal es funktioniert nur bei den Fenstern den explizit ein eigenes Icon zugeordnet wurde.

:? Ich werde es doch noch hinbekommen, Titelleisten ohne und mit Icons auseinanderzuhalten?!

Ich will nur ein Handle auf das kleine Symbol ermitteln können, welches in der Titelleiste eines Fensters mit dem Handle hWnd angezeigt wird...
Ist das so schwer? :stupid:

Gruß, Marco

SirThornberry 12. Jun 2005 19:10

Re: Fenster-Icon aus hWnd ermitteln
 
also bei mir gehts ohne problem. Natürlich bekomm ich nur Icons von Fenstern die ein Icon haben. Also von Panels etc. bekomm ich kein Icon aber von anderen Fenstern schon...
Delphi-Quellcode:
  LIconHandle := SendMessage(TheWindowHandle, WM_GETICON, ICON_BIG, 0);
  if LIconHandle = 0 then
    ImgIcon.Picture.Graphic := nil
  else begin
    LIcon := TIcon.Create;
    LIcon.Handle := LIconHandle;
    ImgIcon.Picture.Graphic := LIcon;
    LIcon.Free;
  end;
allerdings sollte man dabei beachten das die Abfrage von ICON_BIG 0 sein kann aber von ICON_SMALL2 hingegen ein gültiges handle hat. Also am besten wenn beim ersten aufruf nix zurück kommt noch die anderen icongrößen abfragen in der Hoffnung das dafür ein Handle hinterlegt ist.

Marphy 13. Jun 2005 16:29

Re: Fenster-Icon aus hWnd ermitteln
 
Hello Sir,

Zitat:

Zitat von SirThornberry
allerdings sollte man dabei beachten das die Abfrage von ICON_BIG 0 sein kann aber von ICON_SMALL2 hingegen ein gültiges handle hat. Also am besten wenn beim ersten aufruf nix zurück kommt noch die anderen icongrößen abfragen in der Hoffnung das dafür ein Handle hinterlegt ist.

ICON_SMALL2 ist nur auf Windows XP verfügbar. Beim Quellcodefenster der Delphi-IDE z.B. wird ein ICON_BIG ermittelt, ICON_SMALL aber nicht. Bei anderen Programmen (z.B. der Windows Editor) wird kein Icon - weder BIG noch SMALL - zurückgeliefert.
Sieht das bei dir anders aus? :gruebel:

Danke für deine Postings trotzdem, :mrgreen:
Marco

Marphy 14. Jun 2005 19:38

Re: Fenster-Icon aus hWnd ermitteln
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo zusammen,
scheint ja wirklich ne harte Nuss zu sein, mein Problem.... :x

Zum Austesten der Problematik habe ich (mal wieder) ein kleines Demo-Projekt geschrieben. Ladet es euch einfach aus dem Anhang runter, schaut es euch an und postet eure Erfahrungen/Tipps :-D

Danke! :thumb:

Grüße, Marco


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 Uhr.
Seite 1 von 4  1 23     Letzte » 

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz