![]() |
laufende Tasks
ich möchte die Anwendungen (also die die ein sichtbares Fenster haben und im Taskmanager angezeigt werden) ermitteln. Ich habe code hier aus dem Forum um alle Processe zu ermitteln. Aber nach welchen Kriterien kann ich jetzt die Prozesse ausfiltern die im Taskmanager und im zeiten Fall als Symbol im Systray zu sehen sind? Das ganze soll nur unter Windows 2000/XP funzen.
Gibts da ProzessID's die für sichtbare Applicationen/ oder im Systray stehen? |
Re: laufende Tasks
Delphi-Quellcode:
Ich glaube, das sollte ausreichen. :mrgreen:
function Getwin(Handle: THandle; List: TStringList): boolean; stdcall;
var Buffer : array[0..255] of Char; begin //get the window caption SendMessage(Handle, WM_GETTEXT, 255, integer(@Buffer[0])); List.Add(Buffer); //continue enumeration Result :=True; end; procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Clear; EnumWindows(@Getwin, LParam(ListBox1.Items)); end; |
Re: laufende Tasks
durch diese Funktion werden aber nicht nur die Anwendungen aus der Taskbar gefunden sondern auch eine ganze Menge anderer unsichtbarer Fenster.
|
Re: laufende Tasks
Delphi-Quellcode:
Das könnte eine schnelle Lösung sein.
function EnumWinProc(Wnd: THandle; LParam: LongInt): Boolean; stdcall;
var WinCaption : string; Len: integer; begin Result := True; Len := GetWindowTextLength(Wnd); SetLength(WinCaption, Len); GetWindowText(Wnd, PChar(WinCaption), Len+1); if Trim(WinCaption) <> '' then Form1.Listbox1.Items.Add(Format('%.6x : %s', [Wnd, WinCaption])); end; procedure TForm1.Button1Click(Sender: TObject); begin EnumWindows(@EnumWinProc, 0); end; |
Re: laufende Tasks
Liste der Anhänge anzeigen (Anzahl: 1)
komisch der angegebene Code liefert bei mir das in dem Bild gezeigte Ergebnis. Wieso bekomme ich immer alle Fenster angezeigt
|
Re: laufende Tasks
Warum alle Fenster?
Alles was ein Handle (typ HWND) und keine leere Caption besizt wird angezeigt, egal sichtbar oder nicht. Zitat:
|
Re: laufende Tasks
Zitat:
|
Re: laufende Tasks
ja, aber mit welcher Funktion kann ich nun nur die in der Taskbar sichtbaren Applicationen ermitteln?
|
Re: laufende Tasks
Wenn ich verstehe was du meinst dann ist das ,dass richtige für dich
![]() Mfg ReDoX |
Re: laufende Tasks
Danke für den Link, das ist genau das was ich gesucht habe :-D
|
Re: laufende Tasks
als ich gestern den Tipp von "ReDoX" auf meinem Windows2000 Rechner gestestet habe, wurden alle Anwendungen und nur die Anwendungen aus der Taskleiste angezeigt (so wies sein soll). Als ich heute den selben Code auf meiner WindowsXP - Maschine getestet habe wurden noch drei Einträge "GDI+ Window" angezeigt welche nicht im Taskmanager angezeigt werden. Hat jemand ne Idee wie ich die noch ausfiltern kann?
|
Re: laufende Tasks
Bei mir ist alles in Ordnung. (WinXP)
|
Re: laufende Tasks
Seltsam :shock:
Vielleicht sollte ich es mal noch auf meiner WindowsXP - Prof Workstation zusätzlich testen. Ich verstehe es eh nich ganz warum mir dieser Code Fenster anzeigt die gar nicht sichtbar sind. :gruebel: |
Re: laufende Tasks
habs rausgefunden warum stellenweise noch ein falscher Eintrag mit drinnen stand:
ich habe folgende Zeile auskommentiert und dann gings:
Delphi-Quellcode:
es werden trotzdem alle Anwendungen angezeigt auch wenn diese Minimiert sind.
{or IsIconic(wnd)}
Mfg Matthias |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 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 by Thomas Breitkreuz