AGB  ·  Datenschutz  ·  Impressum  







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

laufende Tasks

Ein Thema von MatthiasW · begonnen am 13. Feb 2005 · letzter Beitrag vom 14. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#1

laufende Tasks

  Alt 13. Feb 2005, 16:09
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?
Hilfe wir stürzen ab!!!
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: laufende Tasks

  Alt 13. Feb 2005, 16:50
Delphi-Quellcode:
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;
Ich glaube, das sollte ausreichen.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#3

Re: laufende Tasks

  Alt 13. Feb 2005, 19:45
durch diese Funktion werden aber nicht nur die Anwendungen aus der Taskbar gefunden sondern auch eine ganze Menge anderer unsichtbarer Fenster.
Hilfe wir stürzen ab!!!
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: laufende Tasks

  Alt 13. Feb 2005, 20:25
Delphi-Quellcode:
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;
Das könnte eine schnelle Lösung sein.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#5

Re: laufende Tasks

  Alt 13. Feb 2005, 21:20
komisch der angegebene Code liefert bei mir das in dem Bild gezeigte Ergebnis. Wieso bekomme ich immer alle Fenster angezeigt
Miniaturansicht angehängter Grafiken
bild1_152.jpg  
Hilfe wir stürzen ab!!!
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: laufende Tasks

  Alt 13. Feb 2005, 21:28
Warum alle Fenster?
Alles was ein Handle (typ HWND) und keine leere Caption besizt wird angezeigt, egal sichtbar oder nicht.
Zitat:
The EnumWindows function enumerates all top-level windows on the screen by passing the handle of each window, in turn, to an application-defined callback function. EnumWindows continues until the last top-level window is enumerated or the callback function returns FALSE.

Remarks

The EnumWindows function does not enumerate child windows.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#7

Re: laufende Tasks

  Alt 13. Feb 2005, 21:28
Zitat von MatthiasW:
Wieso bekomme ich immer alle Fenster angezeigt
Weil EnumWindows nun mal alle TopLevel Fenster ermittelt.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#8

Re: laufende Tasks

  Alt 13. Feb 2005, 21:42
ja, aber mit welcher Funktion kann ich nun nur die in der Taskbar sichtbaren Applicationen ermitteln?
Hilfe wir stürzen ab!!!
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#9

Re: laufende Tasks

  Alt 13. Feb 2005, 22:35
Wenn ich verstehe was du meinst dann ist das ,dass richtige für dich http://www.swissdelphicenter.com/de/showcode.php?id=485
Mfg ReDoX
  Mit Zitat antworten Zitat
MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#10

Re: laufende Tasks

  Alt 13. Feb 2005, 22:57
Danke für den Link, das ist genau das was ich gesucht habe
Hilfe wir stürzen ab!!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:32 Uhr.
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