PyAutoGui
現在業務でpostgres、linux、python、エクセルを触り始めることになったので、勉強がてら何かできないか模索中。
今日はpythonのライブラリ PyAutoGuiの開拓を頑張ります。
<目的>
◇Windows上でPythonを用いてGUI操作を自動化してみる。
※簡単な自動化だけならばUWSCのほうが楽そうで汎用性も高そう。今後差異を見ていく。
Pywinauto - pywinautoも便利そうなので今後検討
<環境>
◇windows7,jupyternotebook,Python3.6.1,PyAutoGUI-0.936
<作業>
◇PyAutoGuiのインストール
Windows PowerShell上で "pip install pyauto" を実行
◇動作確認
pyautoguiをインポートしてスクリーンショットを撮ってみる
import pyautogui s = pyautogui.screenshot(region=(200, 200, 1600, 400))#X座標200~1600,Y座標200~400の範囲のSSを撮影 s.save('Pictures\python\Picturespicture.png')#カレントフォルダからパスを指定して保存
座標は左上が(X,Y)=(0,0)
画面サイズは
pyautogui.size()
で取得可能
次に指定した画像の座標の取得ができるpyautogui.locateOnscreen()を使用してみる
返り値は、(x座標, y座標, 幅, 高さ)のタプル型
返り値から画像の中央座標の算出に "pyautogui.center()" を使う
実際にyahooの雨マーク
を使用して画像の位置にカーソルを移動
import pyautogui a = pyautogui.locateOnScreen('Pictures\python\\ame.png')#雨画像検出 x, y = pyautogui.center(a)#雨画像の中央座標算出 pyautogui.moveTo(x,y)#カーソルを算出先へ
yahooのTOPでプログラムを実行してみるとちゃんと動いた。
ただかなり処理時間が遅く、UWSCの10倍は時間がかかっていると思う。