![]() |
Anwendungen in der Taskleiste sichtbar?
Wie findet man heraus, welche Anwendungen in der Taskleiste als Button sichtbar sind?
|
IsIconic sagt dir, ob die Anwendung minimiert ist oder nicht.
|
IsWindowVisible und IsIconic ist klar, nur wie gehe ich die Handles durch?
|
Warum sagst du nicht gleich, dass du nicht weißt wie du die Handles bekommst? :x
Kuck mal in der Code-Library, da solltest du fündig werden. |
Leider nicht wirklich. :cry:
Ich habe mir das jetzt so gedacht, dass ich alle Prozesse durchgehe und abfrage, ob das Handle des Prozesses IsWindowVisible(SnapHandle) or IsIconic(SnapHandle) ist. Vielleicht ist der Weg aber auch total blödsinnig und ich komme daher nicht weiter?! Wie kann ich denn sonst laufende Anwendungen finden? |
Du mußt die Fensterhandle durchgehen und nicht die Prozesse.
|
OK, wo ist denn jetzt mein Denkfehler? Dami bekomme ich zu viele Einträge.
Delphi-Quellcode:
var MyHandle: THandle;
begin MyHandle:=GetWindow(Handle, GW_HWNDFIRST); If MyHandle > 0 then begin postinLV(InttoStr(MyHandle),'Taskleiste'); while MyHandle > 0 do begin MyHandle:= GetWindow(MyHandle, GW_HWNDNEXT); If (IsWindowVisible(MyHandle))or(IsIconic(MyHandle)) then postinLV(InttoStr(MyHandle),'Taskleiste'); end; end; |
Moin TPercon,
such mal nach Beispielen für EnumWindows. Etwas ganz ähnliches hatten wir vor kurzem erst. |
Bei EnumWindows komm ich leider mit der CallBack Funktion nicht klar.
Ich benutze jetzt die folgende Methode, die auch funktioniert!
Delphi-Quellcode:
procedure TForm1.GetProgList;
procedure getTitle(MyHandle:THandle); var i:integer; s: Array[0..MAX_PATH] of char; begin i:= GetWindowTextLength(MyHandle); If i > 0 then begin GetWindowText(MyHandle,s,SizeOf(s)); ListView3.Items.Add; i:=ListView3.Items.Count-1; ListView3.Items[i].Caption:=s; ListView3.Items[i].SubItems.Add('Status'); end; end; var MyHandle: THandle; begin MyHandle:=GetWindow(Handle, GW_HWNDFIRST); If MyHandle > 0 then begin getTitle(MyHandle); while MyHandle > 0 do begin MyHandle:= GetWindow(MyHandle, GW_HWNDNEXT); If ((IsWindowVisible(MyHandle)) or (IsIconic(MyHandle))) and((GetWindowLong(MyHandle, GWL_HWNDPARENT) = 0)) then getTitle(MyHandle); end; end; end; |
Moin Tpercon,
hier hatte ich mal ein Beispiel dafür gepostet und dokumentiert ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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