Wie können Sie Tastatureingaben zu lesen, wenn das Python-Programm nicht im Vordergrund steht?

StackOverflow https://stackoverflow.com/questions/1054380

Frage

Ich versuche, meine Tastenanschläge in dem nächsten Monat zu analysieren und mag gemeinsam ein einfaches Programm werfen, dies zu tun. Ich möchte nicht, genau die Befehle protokolliert, sondern einfach um allgemeine Statistiken über meine Tastendrücke zu erzeugen.

Ich bin die bequemste dieser Codierung in Python, aber ich bin offen für andere Vorschläge. Ist dies möglich, und wenn ja, welche Python-Modulen soll ich aussehen? Ist dies bereits geschehen?

Ich bin auf OSX sondern auch in tut dies auf einer Ubuntu-Box und Windows XP interessiert sein.

War es hilfreich?

Lösung

Es sieht aus wie Sie benötigen http://patorjk.com/keyboard-layout-analyzer/

Dieses praktische Programm wird einen Textblock analysieren und Ihnen sagt, wie weit die Finger es reisen mußten eingeben, dann optimales Layout empfehlen.

Ihre ursprüngliche Frage zu beantworten, auf Linux können Sie lesen, von / dev / Event * für die lokale Tastatur, Maus und Joystick Ereignisse. Ich glaube, Sie könnten zum Beispiel einfach cat /dev/event0 > keylogger. Die Ereignisse sind Instanzen von struct input_event. Siehe auch http://www.linuxjournal.com/article/6429 .

Pythons struct Modul ist ein bequemer Weg, um binäre Daten zu analysieren.

Für OSX, werfen Sie einen Blick auf den Quellcode logkext. http://code.google.com/p/logkext/

Andere Tipps

Wenn Sie nicht auf das Schreiben der Schnittstellen planen selbst, werden Sie einige Bibliothek benötigen, da als andere Plakate haben darauf hingewiesen, müssen Sie von der Desktop-Umgebung verwaltet Low-Level-Tastendruck-Ereignisse zugreifen zu können.

Unter Windows ist die PyHook Bibliothek würden Sie die Funktionalität, die Sie benötigen.

Unter Linux können Sie mit der Python X-Bibliothek (vorausgesetzt, Sie eine grafische Desktop ausgeführt werden ).

Beide sind mit guter Wirkung verwendet von pykeylogger . Sie würden am besten aus der Quelle herunterzuladen (siehe zum Beispiel pyxhook.py) spezifische Beispiele dafür, wie Tastendruck-Ereignisse erfaßt werden, um zu sehen. Es sollte trivial sein, dies zu ändern, um die Verteilung der Schlüssel zu summieren, anstatt die Reihenfolge der Aufnahme.

Wie der aktuelle X-Server Datensatz Erweiterung scheint gebrochen zu werden, wird mit pykeylogger für Linux nicht wirklich helfen. Schauen Sie sich auf evdev und seine demo Funktion statt. Die Lösung ist fieser, aber es hat zumindest zu arbeiten.

Es kommt auf einen Haken an das Gerät zur Einrichtung

import evdev
keyboard_location = '/dev/input/event1'  # get the correct one from HAL or so
keyboard_device = evdev.Device(keyboard_location)

Dann regelmäßig das Gerät abfragen, den Status der Schlüssel und andere Informationen zu bekommen:

keyboard_device.poll()

Je nachdem, welche Statistik Sie sammeln möchten, vielleicht müssen Sie dies selbst nicht schreiben; das Programm Workrave ist ein Programm, das Sie daran zu erinnern, kleine Pausen zu machen und tut dies durch Tastatur- und Mausaktivitäten zu überwachen. Es führt eine Statistik dieser Tätigkeit, die Sie wahrscheinlich verwenden könnte (es sei denn, Sie wollen sehr detailliert / speziellere Statistik). Im schlimmsten Fall, dass Sie an der Quelle (C ++) aussehen könnten, zu finden, wie es gemacht wird.

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