[WinApi] Lista otwartych okien

0

Witam,
Mam problem potrzebuję zrobić listę otwartych okien w systemie, ale tylko tych, które są na pasku zadań
np. mam otwartego Firefoxa i Gadu-Gadu na liscie powinien znalezc się tylko Firefox (ponieważ ikony Gadu-Gadu nie ma na pasku zadań).

Próbowałem na różne sposoby m.in. pobrać ExStyle okna i sprawdzić czy jest WS_EX_APPWINDOW jednak to nie działało,
próbowałem też pobrać uchwyt paska zadań i tam szukać otwartych programów (ChildWindow na pasku zadań) ale nic z tego.

Może ktoś ma jakiś pomysł ? Czekam na propozycje.

0
function IsWindowOnTaskbar(h:THandle):boolean;
begin
  result := IsWindowVisible(h) and (GetWindow(h, GW_OWNER) = 0) and
            (GetParent(h) = 0) and
            (GetWindowLong(h, GWL_EXSTYLE) and WS_EX_TOOLWINDOW = 0);
end;

//zrodlo: madCollection - http://www.madshi.net/
0

Bardzo dziękuje :)

0

mam podobny problem
z tym, że ta funkcja zwraca tylko informację czy okno jest wyświetlane a skąd wziąć listę okien które mają być sprawdzane, tak żeby można było to wrzucić np do listboxa?

0

Skorzystaj z funkcji EnumWindows, przed którą czyścisz ListBoxa, a w której sprawdzisz uchwyty IsWindowOnTaskbar i dodasz do ListBoxa. Więcej informacji na google i chocicażby w ostatnio napisanym temacie na: http://4programmers.net/Forum/Delphi_Pascal/182317-lista_okien_w_systemie_-_blad .

1 użytkowników online, w tym zalogowanych: 0, gości: 1