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.

  • Multiprocessing und GUI-Aktualisierung - Qprocess oder Multiprocessing?
  • Die Checkbox kann nicht in TreeView ausgewählt werden
  • Ich möchte eine Qt-QML-Combobox auf eine PyQt5-Objekt-Eigenschaft setzen
  • PySide / PyQt - Das Starten eines CPU-Intensiv-Threads hängt die gesamte Applikation
  • PyQt Tableview Zeilen Hintergrundfarbe basierend auf Zellenwert
  • QT QItemSelectionModel ignoriert Spalten?
  • PySide QPropertyAnimation nicht starten
  • Wie gehst du pyqt .ui Code in Python?
  • 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.