まめ - たんたんめん

備忘録 C# / WPF 多め

(python3.6)pyAutoGuiでアプリを操作するプログラムを作ってみた

こんにちは、今回はpyautoguiを使って外部のアプリケーションを自動操作する方法を紹介します。
今回扱うのは2つのモジュールです。

メモ帳を起動して文字列を入力します。( コンソールのタイトルにローカルフォルダが表示されているのでモザイク処理しています)
f:id:at12k313:20180430100803g:plain

pyAutoGuiはキーボードだけではなくマウス操作やスクリーンの状態を加味した操作もできるのでもっと実用的なこともできそうです。

それでは今回のソースコードです。
50行足らず、相変わらずpythonの短さには脱帽します。

import pyautogui,pyperclip
import subprocess
from time import sleep

# !エントリポイント
def Main():
	Initialize()
	while 1:
		if(MainOperation()):
			break

# 操作間隔
WAIT_SEC = 0.1
def Initialize():
	pyautogui.FAILSAFE = True
	pyautogui.PAUSE = WAIT_SEC

# !pyAutoGuiに合わせて関数に待ち時間を設ける
def Pause(function):
	sleep(WAIT_SEC)

def MainOperation():
        # メモ帳の起動
	Pause(subprocess.Popen("notepad"))

	# キーボード入力
	key = "Hellow World"
	for c in key:
		pyautogui.typewrite(c)
		
        # 改行
	pyautogui.typewrite('\n')

	# 日本語入力はクリップボード経由で行える
	key = "こんにちは 世界"
	pyperclip.copy(key)
	pyautogui.hotkey('ctrl','v')
	return 1
	
if __name__ == '__main__':
	Main()