PyAutoGUIを用いてマウスクリックやキー入力を自動化する
※pythonの勉強法とその手順を記事にしました。
1. はじめに
前回、PyAutoGUIを用いてマウスの移動を自動化しました。
今回はキーボードの入力やマウスドラッグやクリックを自動化します。
また今回はPyAutoGUIはインストール済みとして進めます、まだお済でない方は#1の過去記事をご覧ください。
2. 説明:キーボード操作
2.1 冒頭GIF画像のコード例
上記コードを実行すると記事冒頭のGIF画像のように自動で英字と日本語でタイピングが始まります。
3.2 文字入力:typewrite()
文字入力をする場合、typewrite()を使います。
例えば上記の場合、メモ帳をアクティブしておけば「Hello world」と英字が入力されます。
また 日本語を入力したい場合は、次のようにpress()を使います。
'kanji'は「半角/全角ボタン」を意味します。
半角/全角切り替え以外にも例えばスペースを押したい場合は、'space'とします。
その後ローマ字打ちで入力します。
※注意:下のように日本語を直接入力しても反応しませんのでご注意ください。
3.2 コピーペースト:keyDown(),keyUp(),hotkey()
keyDown("ctrl)でctrlキーを押しっぱなしにできます。
その状態でpress()でCを押すことで「ctrl+c」が成立しコピーができます。
なお最後に忘れずにkeyUp()でctrlキーを解除しましょう。
これを忘れると今後の処理が全て「ctrl+OO」になってしまいます。
またペーストしたい場合はc⇒vに変えればOKです。
なおhotkey()を使えば、コピーペーストをもっと簡単にできます。
上記でもコピーペーストができます。hotkey()を使うとコードが簡潔になるのでいいですね。
3.3 その他
その他にも例えば右矢印は'right'など様々なキー入力ができます。
Googleで「pyautogui キーボード 一覧」で調べると沢山でてきますので、ぜひ調べてみて下さい。
3. 説明:マウス操作
3.1 コード例
上記を実行するとデスクトップ右上(正確には座標1(1000,200)~座標(1800,500)の間の領域)のファイルを、自動で複数選択してコピーペーストします。
3.2 マウスドラッグ:dragTo()
dragTo()をすると現在位置~任意の位置までマウスドラッグしながら動きます。
因数は左から、x座標、y座標、動く速度、挙動になります。
まず、マウスの位置を決めるために過去記事#1で紹介したmoveToを用いてマウスドラッグを開始したい位置まで移動させます。
その後、dragTo()でマウスドラッグしながら動かすという流れになります。
3.3 別の方法:mouseDown(),mouseUp()
mouseDown()は左クリックを押してる状態、mouseUp()は左クリックを離した状態なので、次のように組み合わせることでマウスドラッグすることも可能です。
3.4 マウスクリック:click()
click()を使うことでクリック動作も可能です。
その場でクリックしたい場合はxとyはいりません。
ダブルクリックをしたい場合は、clicks=2、button="left"、interval無しにすればOKです。
おすすめ書籍
PyAutoGUIの使用方法が載っている書籍を紹介します。
この2つは非常に丁寧に書かれているのでお勧めです。
「PythonでGUI自動化しよう」については、Amazonの月額読み放題サービス「Kindle unlimited」に加入していれば読み放題です。
初回30日間は無料、退会も簡単なので試しに読んでみてもよさそうです。
4. 最後に
いかがだったでしょうか。
PyAutoGUIで面倒くさい作業は自動化しちゃいましょう!