Ich schreibe ein Programm, das wie ein externes Plug-in eine Design-Software verbindet und dann Mausbewegungen und Ereignisse überwacht. Es werden Aktionen basierend auf dem Status der verbundenen Software-Mausereignisse ausgeführt.Mausereignisse außerhalb des Tkinter-Fensters in Python erhalten
Die Idee ist die externe Anwendung wird die Fähigkeit haben, zu mehreren ähnlichen Programmen anstelle von programmspezifischen Plugins zu verbinden.
Der Prototyp und möglicherweise die Produktionssoftware wird mit der Tkinter-GUI-Bibliothek in Python geschrieben. Der Versuch ist es einfach und tragbar zu machen.
Ich war leicht in der Lage, "OS" Ebene Mausposition (wahre Bildschirm X, Y) zu greifen, ohne dass das Tkinter-Fenster aktiv sein muss. 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 bietet dies für Mausposition:
coord = self.gui.winfo_pointerxy()
ich nicht für Mausereignisse ähnlich 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:
- Kann tkinter geben Sie mir Ereignisse Maus, wenn die Ereignisse außerhalb des sind Tkinter Fenster.
- Wenn nicht, gibt es andere Optionen "out of the box", die mir Maus X, Y und Maus Ereignisse geben können.
- Wenn es keine Out-of-the-Box-Lösungen gibt, einige Empfehlungen zu Ansatz und API. (Sieht aus wie win32api für Fenster, Quarz und/oder Cocoa in Mac und Xlib in Linux)
Vielen Dank für Ihre Zeit
Danke für die Buchung. Dies scheint sehr hilfreich für die Mausposition und -bewegung zu sein, aber sind Button/Click-Ereignisse außerhalb des App-Fensters auch mit diesen APIs verfügbar? Das einfachste Beispiel, das ich von Art der Funktionalität, nach der ich suche, ist eine Screenshot-Anwendung, die Sie klicken und ziehen außerhalb des App-Fensters müssen. Sie müssen in der Lage sein, Mausklicks mit der Mausbewegung/-position zu sehen. – TravisT
Außer auf Witwen glaube ich nicht, dass es Methoden gibt, Mausklick Ereignisse außerhalb Ihres Fensters zu bekommen. –