2017-06-30 3 views
0

Ziel: Sammeln von Informationen über Benutzer interaktives Programm in Tracking-App.hat Xlib einen Bibliotheksaufruf für die Fenster-assoziierte Prozess-ID?

am effizientesten Weg ist durch Prozess ID. die einzige Möglichkeit, die ich mir vorstellen kann ist XlibWindow zugeordneten Prozess ID, geht andere Wege?

durch Dokumentation gehen, und Quellcode, keine Ahnung, für Fenster zugehörigen Prozess ID Attribut, vielleicht Xlib nicht halten PID, oder doch?

nicht effiziente Lösung ist durch Window Namensattribut.

Antwort

1

Xlib hält keine Prozess-IDs - es wurde entwickelt, um auf einer Vielzahl von Betriebssystemen mit verschiedenen Prozessabstraktionen und über Netzwerke hinweg zu arbeiten, wo eine PID auf einer Maschine auf einer anderen Maschine nicht sehr nützlich ist.

Da jedoch die meisten X-Anwendungen heute auf Unix-ähnlichen Maschinen ausgeführt und lokal und nicht über das Netzwerk angezeigt werden, haben viele moderne Toolkits eine Konvention zum Speichern der Prozess-ID in einer Eigenschaft im Fenster dieser Anwendung übernommen. Einzelheiten finden Sie in der Spezifikation _NET_WM_PID section der Spezifikation Extended Window Manager Hints.

1

Der X-Server hat diese Information nicht. Tatsächlich ist möglicherweise nicht einmal eine PID verfügbar - Clients können sich über das Netzwerk mit einem X-Server verbinden.

Wenn Sie lediglich angeben müssen, welches Programm verwendet wird, können Sie sich die Fenstereigenschaft WM_CLASS ansehen. Diese Eigenschaft enthält ein Paar Zeichenfolgen, mit denen das Fenster für den Fenstermanager identifiziert wird, und enthält normalerweise den Namen der Anwendung.

Verwandte Themen