2017-07-27 2 views
1

Ich möchte ein paar der kleinen Aufgaben automatisieren, die ich jeden Tag sowohl in meinem gemieteten als auch im Büro zu Hause mache.Erhalten der lokalen Mausposition innerhalb des Fensters mit Python

Ich habe untersucht, wie ich die lokale Cursor-/Mausposition in einem Fenster anstelle der globalen Position auf dem Bildschirm erreichen würde, aber soweit ich online gelesen habe, scheint es keine leichte Aufgabe zu sein.

Ich weiß, dass ich Bilderkennung mit PyAutoGui, PyWinAuto, Lackey oder dem Java/Python-Hybrid SikuliX verwenden könnte. Dies funktioniert natürlich, aber es scheint, als würden kleine Abweichungen in Bildschirmgrößen und Fenstergrößen die meisten der zuvor aufgenommenen Bilder effektiv unbrauchbar machen und Sie müssen die meisten, wenn nicht alle, erneut aufnehmen.

Die Beziehung zwischen Elementen innerhalb des Fensters bleibt gleich. (Sie skalieren nur auf der Grundlage der Fenstergröße nach oben/unten)

Ist so etwas möglich? Wie viel Arbeit betrachte ich hier? Ich schätze jeden Anstupsen in die richtige Richtung und bin offen für die Verwendung anderer Module, wenn verfügbar.

Bitte und danke.

Antwort

1

Unter Linux können Sie xdotool Dienstprogramm verwenden. Sie können es bei den meisten bekannten Distributionen nicht tun. Z. B auf Ubuntu mit:

sudo apt-get update 
sudo apt-get install xdotool 

Nach manual können Sie xdotool mousemove Befehl mit Koordinaten relativ zum angegebenen Fenster verwenden.

Es gibt auch eine Python-Bindung für dieses Werkzeug - python-libxdo. Um es zu installieren in Python:

pip install python-libxdo 

Auf Fenster gibt es AutoIt Scripting-Dienstprogramm. Und pyautoit Pythonbindung. Aber ich habe es nie getestet, also kann ich nicht sagen, ob es Ihnen bei Ihren Automatisierungsaufgaben helfen kann.

+0

Oh, das ist brilliant @ running.t! Weißt du, ob es Windows-Entsprechungen gibt? – Dixos

+0

@Dixos: Se meine edited Antwort. –

+0

[pywinauto] (http://pywinauto.github.io/) ist auch für Windows, und es ist nicht bildbasiert, sondern verwendet Texteigenschaften, die zuverlässiger und wartbarer sind. Außerdem unterstützt AutoIt die MS UIAutomation-Technologie nicht, die für viele moderne Apps ein Muss ist. –

Verwandte Themen