Array mit Prozessen

Deutschsprachiges X#-Forum – German language forum

Moderator: wriedmann

lagraf
Posts: 450
Joined: Thu Jan 18, 2018 9:03 am
Location: A

Array mit Prozessen

Post by lagraf »

Hallo,
bei der Funktion

Code: Select all

FUNCTION GetWinList() AS ARRAY PASCAL
	// Ermittelt die aktiven Tasks und speichert ProcessName und MainWindowTitle in ein Array
	LOCAL aWin := {} AS ARRAY

	FOREACH oProcess AS Process IN Process.GetProcesses()
		AAdd(aWin, {oProcess:ProcessName, oProcess:MainWindowTitle})
	NEXT
	RETURN aWin
werden die Captions meiner ShellWindows nicht korrekt ermittelt. Der ProcessName ist zwar da, aber beim MainWindowTitle ist meist ein Leerstring drin. Kann man die Caption irgendwie damit ermitteln oder muss ich auf Wolfgangs Funktion mit EnumWindowsProc zurückgreifen?
FFF
Posts: 1580
Joined: Fri Sep 25, 2015 4:52 pm
Location: Germany

Array mit Prozessen

Post by FFF »

Seltsam.
"Meine" Captions werden aufgelistet.

Ich hätte ja gesagt: "...Einem Prozess ist nur dann ein Hauptfenster zugeordnet, wenn der Prozess über eine grafische Benutzeroberfläche verfügt. Wenn der zugeordnete Prozess nicht über ein Hauptfenster verfügt (sodass MainWindowHandle NULL ist), ist MainWindowTitle eine leere Zeichenfolge ("")....
Aber wenn Du schreibst, "Shellwindows", dann ist offensichtlich eine GUI im Einsatz.
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
lagraf
Posts: 450
Joined: Thu Jan 18, 2018 9:03 am
Location: A

Array mit Prozessen

Post by lagraf »

Hallo Karl,
du hast Recht, an der Stelle, wo ich abfrage, ist das ShellWindow noch nicht geöffnet, dadurch darf ich die abfragende App nicht mitzählen. Die Anzahl der gleichen Fenster muß ich deshalb auf > 0 statt auf > 1 abfragen, dann funktionierts!
Post Reply