PyQT Listen für SystemWide Key und Maus Ereignisse

Ich versuche, eine Anwendung zu schreiben, die auf systemweite Schlüssel- und Mausereignisse hört, die mit bestimmten Mustern übereinstimmen und auf sie antworten.

Ich plane, die Anwendung im Hintergrund laufen zu lassen. Nein, es ist kein Keylogger, es ist eine legitime Anwendung mit einer guten Absicht.

Ich plane den Benutzer PyQT oder eher PySide für diese Anwendung. Es ist ziemlich einfach, auf Ereignisse zu hören, wenn ein Anwendungsfenster fokussiert ist, aber wie würde ich es tun, wenn es überhaupt kein Fenster gibt?

Ich arbeite speziell an OS X, aber ich würde lieber eine Cross-Plattform-Lösung.

  • Installieren von PySide - Windows 8
  • Python QT QNetworkRequest beendet mit "(Prozess: 3265): GLib-ERROR **: Erstellen von Rohren für GWakeup: Zu viele offene Dateien"
  • Chained QSortFilterProxyModels
  • Hyperlinks in QTreeView
  • Fehler beim Erstellen einer eigenständigen Python / Qt-Anwendung mit cx_freeze (oder Py2App) auf Mac
  • Qt Tooltip wie zu verhindern, dass der Text nach der eingebauten Verzögerung verschwindet?
  • Wie nutze ich in Qt Designer in pyqt4?
  • Multiprocessing-GUI-Schemata zur Bekämpfung der "Not Responding" -Blockierung
  • One Solution collect form web for “PyQT Listen für SystemWide Key und Maus Ereignisse”

    Ich denke, du wirst sicherlich eine Drittanbieter-Bibliothek dafür brauchen.

    Ich habe keine Erfahrung, es zu benutzen, aber die Qxt- Erweiterungsbibliothek hat eine QxtGlobalShortcut- Klasse, und es gibt PyQt-Bindungen für sie die Form von pygs . Beide Projekte scheinen alle wichtigen Plattformen zu unterstützen.

    BEARBEITEN

    Sorry, ich habe deine Frage nicht richtig gelesen. Sie brauchen offensichtlich mehr als globale Verknüpfungen 🙁

    Nachdem ich ein wenig mehr Forschung gemacht hatte, sah es aus wie QAbstractEventDispatcher.setEventFilter hätte vielversprechend sein können. Allerdings stellt sich heraus, dass Qt nur Ereignisse filtert, die an die Applikation gesendet werden – niemals systemweite Ereignisse. So sieht es definitiv aus wie eine Drittanbieter-Bibliothek benötigt wird, um dieses Problem zu lösen.

    Python ist die beste Programmiersprache der Welt.