2017-07-27 681 views
1

我想自動執行我在租用和家庭辦公室每天都會做的一些瑣事任務。在python窗口中獲取本地鼠標位置

我正在研究如何在窗口內獲取本地光標/鼠標位置,而不是屏幕上的全局位置,但據我在線閱讀,似乎這不是一件容易的事。

我知道我可以使用PyAutoGui,PyWinAuto,Lackey或java/python混合SikuliX進行圖像識別。這當然有效,但是在屏幕尺寸和窗口大小方面的小差異似乎有效地使以前拍攝的大部分圖像無法使用,並且最終不得不重新使用大部分(如果不是全部)。

窗口內元素之間的關係保持不變。 (他們只根據窗口大小放大/縮小)

是這樣的可能嗎?我在這裏看到了多少工作? 我很欣賞任何在正確方向上的微調,我願意使用其他模塊(如果有的話)。

請謝謝。

回答

1

在Linux上,您可以使用xdotool實用程序。你可以在大多數知名發行版上找不到它。 E.g上使用Ubuntu:

sudo apt-get update 
sudo apt-get install xdotool 

根據manual,您可以使用xdotool mousemove命令相對於指定的窗口座標。

這個工具還有一個python綁定 - python-libxdo。使用python安裝它:

pip install python-libxdo 

在windows上有AutoIt腳本實用程序。和pyautoit python綁定。但我從來沒有測試過,所以我不知道它是否可以幫助您完成自動化任務。

+0

哦,這太棒了@ running.t!你知道是否有任何Windows等價物? – Dixos

+0

@Dixos:Se我的eddited答案。 –

+0

[pywinauto](http://pywinauto.github.io/)也適用於Windows,它不是基於圖像的,但使用更可靠和可維護的文本屬性。此外,AutoIt不支持許多現代應用程序必須使用的MS UIAutomation技術。 –