Einzelnen Beitrag anzeigen

r29d43

Registriert seit: 18. Jan 2007
287 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: PID eines prozesses merken, Anwendung ähnlich Taskleiste

  Alt 3. Aug 2009, 16:26
FindWindow gibt immer nur das zuerst gefundene Handle zurück. Und weil das so ist, ist das für dich hier auch nicht geeignet ...eben weil Du immer nach Windows suchen musst, die bzgl. ihres Class-Namens und bzgl. ihres Title-Textes quasi zueinander identische Windows sind.

Mit FindWindowEx geht das aber. Dabei muss der erste Parameter immer die Null sein, was soviel heißt wie: Es werden immer Windows gesucht, die gerade auf dem Desktop laufen ...wobei für alle diese auf dem Desktop laufenden Windows dann gilt, dass sie damit auch quasi Child-Windows dieses Desktops sind. Ergo wirst Du mit

Prog1 := FindWindowEx(0,0,ClassName,TitleText);

dann auch das erste von dir gesuchte Window finden. Und für die Suche nach dem zweiten solchen Window musst Du jetzt einfach nur hinter diesem ersten Fund mit der Suche weitermachen, also:

Prog2 := FindWindowEx(0,Prog1,ClassName,TitleText);

usw. usf...

Und genauso suchst Du dann natürlich auch immer nach einer bestimmten Handle, von der Du z.B. wissen willst, ob es sie denn überhaupt noch gibt (bzw. ob das dazugehörende Programm noch läuft)...
  Mit Zitat antworten Zitat