Ich schreibe ein Programm, das wie ein externes Plug-in eine Verbindung zur Design-Software herstellt und dann Mausbewegungen und Ereignisse überwacht. Es werden Aktionen basierend auf dem Status der verbundenen Software-Mausereignisse ausgeführt.
Die Idee ist, dass die externe Anwendung die Möglichkeit haben wird, sich an mehrere ähnliche Programme anstelle von programmspezifischen Plugins anzuschließen.
Der Prototyp und möglicherweise die Produktionssoftware wird unter Verwendung der Tkinter-GUI-Bibliothek in Python geschrieben. Der Versuch ist es einfach und tragbar zu machen.
Ich war leicht in der Lage, die Mausposition auf "OS" -Pegel zu nehmen (echter Bildschirm X, Y), ohne dass das Tkinter-Fenster aktiv sein musste. Mein Problem ist, dass ich keine Möglichkeit finde, die Mausklick-Ereignisse von Tkinter zu bekommen. Ich kann Ereignisse nur über das aktive Tkinter-Fenster sammeln.
Tkinter liefert dies für die Mausposition:
%Vor%Ich kann ähnliche Ergebnisse für Mausereignisse nicht finden. Es gibt Bibliotheken wie selfspy und Pymouse (jetzt Teil von PyUserInput), die Ereignisse überwachen, aber hauptsächlich zur Steuerung der Eingabegeräte dienen. Meine Backup-Idee besteht darin, diese Bibliotheken als Referenz für das Schreiben meines eigenen Überwachungsprogramms zu verwenden.
Meine zwei Hauptplattformen sind Mac und Windows.
Lange Rede kurzer Sinn:
Danke für Ihre Zeit
Unter Mac ist die einfachste Option wahrscheinlich NSEvent
s addGlobalMonitorForEventsMatchingMask:handler:
: Ссылка :
Beachten Sie, dass dies speziell für Ereignisse gilt, die an andere Anwendungen gesendet werden und nicht an Ihre eigenen.
Auf einer niedrigeren Ebene können Sie auch die Verwendung von Quartz Event Taps überprüfen. Einfaches Beispiel mit PyObjC:
%Vor%(Ich fürchte, ich kann keine detaillierten Angaben zu einer Windows-Lösung machen.)