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?
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)
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!