[Gelöst] Fenster auflisten
-
Moin,
ich möchte gerne ein Programm schreiben, das aufzeichnet, welche Programme man wann und wie lange benutzt.
Unter Windows hatte ich es so gemacht, dass ich mit EnumWindows periodisch alle Fenster aufgelistet habe, die dazugehörigen Prozesse ausfindig gemacht habe und mit GetForegroundWindow festgestellt habe, welches Fenster im Vordergrund ist (was i.d.R. dasjenige ist, das man gerade benutzt).
Welche Möglichkeiten gibt es, unter Linux Fenster aufzulisten? Wie das ganze mit Prozessen geht weiß ich ja, aber damit erfährt man nicht, welches Programm gerade "benutzt" wird. Die ganzen Daemons und irgendwelche Musikplayer (wenn man nicht gerade drin herumklickt) sollen ja nicht mitgezählt werden.
Ich habe auch schon probiert, die Windows-Version mit Wine laufen zu lassen, aber das Programm registriert dann nur Fenster von anderen Wine-Programmen.
-
ps -ef
welches Programm gerade "benutzt" wird
Und nur weil ein Fenster offen ist, heisst das noch lange nicht, dass das Programm "benutzt" wird. Die Deamons herauszufiltern ist noch das leichteste Problem.
irgendwelche Musikplayer
Fuer gewoehnlich werden sie benutzt, um Musik zu spielen.
Welche Möglichkeiten gibt es, unter Linux Fenster aufzulisten?
Frag den X Server. Anhaltspunkte gibt es vielleicht hier oder hier
-
knivil schrieb:
Und nur weil ein Fenster offen ist, heisst das noch lange nicht, dass das Programm "benutzt" wird. Die Deamons herauszufiltern ist noch das leichteste Problem.
Nein, aber wenn man auch berücksichtigt, ob der Mauszeiger bewegt oder Tasten gedrückt werden, dann funktioniert das recht gut. Lediglich wenn man sich Videos anschaut, wird mit der Methode fälschlicherweise keine Aktivität registriert. Macht aber nichts, da ich sowieso selten Filme am PC schaue.
Fuer gewoehnlich werden sie benutzt, um Musik zu spielen.
Ja, aber ich möchte nur die Zeit messen, die der Benutzer aktiv mit dem Programm verbringt. Während der Musikplayer im Hintergrund läuft, soll er also nicht gezählt werden, wenn man gerade z.B. durch die Titelliste scrollt, dann schon.
Frag den X Server. Anhaltspunkte gibt es vielleicht hier oder hier
Danke für die Links. Bin auf XQueryTree gestoßen, das scheint für meinen Fall recht interessant zu sein.
Ich hatte gehofft, mich für das Tool nicht näher mit dem X Server auseinandersetzen zu müssen, aber beim näheren Hinsehen scheint's gar nicht so wild zu sein.