Frage

Ich habe eine Verpflichtung der Lage sein, zu verfolgen, wie viel ein Benutzer interagiert mit den verschiedenen Anwendungen auf ihrem Computer ausgeführt wird. Was mir logisch schien, war ein Protokoll der Fenster Fokus-Ereignisse mit Zeitstempel zu halten, die Sie würde sagen, welche Anwendungen im Fokus im Laufe des Tages waren.

Wir haben einige andere Dinge in dieser Anwendung zu tun, die in Java einfach sein würde. Ich habe jedoch keine GUI-Programmierung in Java getan, damit ich bin mir nicht sicher, ob es möglich Informationen über OS-Level-Fenster durch das AWT-API zu erhalten. Ist das überhaupt möglich? Gäbe es eine andere Möglichkeit, dies durch JNI zu tun, oder würde eine native Anwendung erforderlich sein, dies zu tun?

PS: Ich weiß, dass diese Forderung ein wenig schändliche klingt, aber ich bin hier nur um festzustellen, ob dies technisch möglich ist. Bitte nicht den Boten schießen, das war nicht meine Idee. :)

War es hilfreich?

Andere Tipps

Mit heraus zu nativem Code zurückzugreifen Ich glaube nicht, dies möglich sein wird.

Sie können für ein Fenster Test Bibliothek finden - einige von denen sind zu schaffen gemacht und Intercept win32 nativen Ereignisse

.

Ich glaube nicht, das möglich ist, AWT verwenden. Java hat keine Möglichkeit, die Prozesse für die anderen Anwendungen zuzugreifen.

Ich denke, Sie sollten mit einer anderen Sprache betrachten.
Es gibt auch andere Sprachen wie C ++ beispielsweise, die für diese Art von Problemen predistinated sind:)

Sie sind im Grunde bitten, dass Ihre Anwendung auf OS-Benachrichtigungen an anderen Anwendungen enthalten sein. Sie werden wahrscheinlich entweder brauchen eine App zu haben, die anderen Anwendungen als Kindprozesse startet oder so etwas wie ein Rootkit API verwenden, um Berechtigungen zu etablieren oben, was eine normale Anwendung gewährt wird.

Wenn das Ziel, wie viel Zeit, um zu sehen ist ein Benutzer mit der Anwendung interagiert, könnten Sie einige grobe Ideen zu erhalten, indem man die CPU-Zeit schauen, um Ihre Anwendung geplant werden oder einige, wie bei Verzögerungen zwischen I / O-Ereignisse und Mapping-Suche diejenigen in Statistiken darüber, wie aktiv der Benutzer ist.

Ansonsten halte ich Sie mit einigen Spyware-Entwickler kontaktieren möglicherweise in der Lage zu bekommen, was Sie brauchen.

Wenn Sie dies von Java tun wollen und wollen nicht Ihren eigenen nativen Code schreiben, können Sie versuchen, SWT . Ich bezweifle es plattformunabhängige Möglichkeiten zur Ausführung hat, was Sie wollen, aber Sie können in den Windows-spezifischen Klassen herumzuzustochern, insbesondere org.eclipse.swt.internal.win32.OS.

können wir auch Fenster überwachen Taskliste die Anwendung von einem Benutzer verwendet zu verfolgen, und seine einfachen Java-Konsole zu lesen und Sie können auch die Prozessdaten von ihm erhalten, aber Sie werden in ihm, bcz all wenig schwer String-Verarbeitung müssen die Daten, die Sie im String-Format erhalten werden, und Sie haben Ihre erforderlichen Daten von ihm zu bekommen, es zu machen, sehr nützlich, wenn Sie weitere Hilfe benötigen ich den Code geben kann, dass für das Aufspüren, zu überwachen und diese Daten zu speichern, aber diese Lösung wird nicht das Fenster Ereignis außer Kraft setzen, wird sein, die die Aufgabeninformationen,

geben
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top