AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster-Icon aus hWnd ermitteln

Ein Thema von Marphy · begonnen am 10. Jun 2005 · letzter Beitrag vom 17. Mär 2011
 
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#27

Re: Fenster-Icon aus hWnd ermitteln

  Alt 22. Jun 2005, 19:13
Und hier die Delphi Umsetzung:

Delphi-Quellcode:
const
  ICON_SMALL2 = 2;

function get_window_icon_small(hwnd: HWND): HICON;
var
  Icon: HICON;
begin
  Icon := 0;
  SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 1000, DWORD(Icon));

  if Icon = 0 then
    SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 1000, DWORD(Icon));

  if Icon = 0 then
    SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 1000, DWORD(Icon));

  if Icon = 0 then
    Icon := HICON(GetClassLong(hwnd, GCL_HICONSM));

  if Icon = 0 then
    Icon := HICON(GetClassLong(hwnd, GCL_HICON));

  if Icon = 0 then
    SendMessageTimeout(hwnd, WM_QUERYDRAGICON, 0, 0, 0, 1000, DWORD(Icon));

  Result := Icon;
end;


function get_window_icon_big(hwnd: HWND; allow_from_class: Boolean): HICON;
var
  Icon: HICON;
begin
  Icon := 0;
  SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 1000, DWORD(Icon));

  if Icon = 0 then
    SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL2, 0, SMTO_ABORTIFHUNG, 1000, DWORD(Icon));

  if Icon = 0 then
    SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 1000, DWORD(Icon));

  if allow_from_class then
  begin
    if Icon = 0 then
      Icon := HICON(GetClassLong(hwnd, GCL_HICON));

    if Icon = 0 then
      Icon := HICON(GetClassLong(hwnd, GCL_HICONSM));
  end;

  if Icon = 0 then
    SendMessageTimeout(hwnd, WM_QUERYDRAGICON, 0, 0, 0, 1000, DWORD(Icon));

  Result := Icon;
end;
Angehängte Dateien
Dateityp: zip getwindowicon_993.zip (265,5 KB, 15x aufgerufen)
Thomas
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz