Pythonを使ってマウスやキーボードを自動操作することができる「PyautoGUI」を使ってみませんか? PyautoGUIを使えば、マウスを動かしたり、キーボードで文字を打ち込んだり、マウスのクリックを自動で行うことが可能です。さらに、スクリプトを書いてプログラムを作ることもできます。PyautoGUIを使えば、自動操作で仕事を効率化したり、ゲームを楽しめたりと、様々な用途があります。今すぐPyautoGUIを使って、マウスやキーボードを自動操作してみましょう!
PC作業の自動化ってどうやったらいいんですか?
最近だと、RPAツールが複数販売されています。Powor automate desktopなどもありますが、やはり自由度の点から、PyautoGUIがおすすめです。簡単にpythonですべて完結できるので、使えると便利です。
Pythonの使い方もあまり詳しくないので、簡単なやり方を教えてください!
では実際に5分程度で作れる簡単なコードを書いてみましょう。これができると、日ごろの同じ作業を自動化することができます!
【記事の対象者】
・自動化ツール(RPA)を作ってみたい
・初心者で、Pythonによるデスクトップ作業に興味がある
・PyautoGUIに興味がある
PyautoGUIでマウスやキーボードを自動操作してみよう
PyautoGUIとは、Pythonでマウスやキーボードを自動操作するためのモジュールです。マウスを動かしたり、キーボードを押したりすることで、自動化された操作を実行できます。例えば、特定のウィンドウを開いたり、特定の場所をクリックしたり、テキストを入力したりといった操作を、自動的に行うことができます。PyautoGUIを使えば、あらゆる操作を自動化して時間を節約できます。
PyautoGUIの基本的な使い方
使い方は非常に簡単で、マウスやキーボードを操作したい場所にカーソルを移動させたり、クリックしたり、キー入力を行ったりするコードを書くだけです。PyautoGUIを使うことで、手動で行う作業を自動化して効率よく作業を行うことができます。
インストール方法
Pythonのパッケージ管理ツール「pip」を使用して、PyautoGUIをインストールすることができます。まず、ターミナルを開き、「pip install pyautogui」と入力します。インストールが完了すると、「import pyautogui」をPythonで実行することで、PyautoGUIを使用する準備が整います。
pip install pyautogui
インストールが完了したら、ターミナル上でpythonと入力しpythonの対話モードでimport pyautoguiを入力してください。下図のようにエラーが出なければ問題なくインストールされております。
マウスの操作
PyautoGUIを使うと、マウスを特定の位置にマウスを移動させたり、クリックしたり、ドラッグしたり、右クリックしたりすることができます。それぞれの操作は、pyautogui.moveTo()、pyautogui.click()、pyautogui.dragTo()、pyautogui.rightClick()などの関数を使って行うことができます。また、pyautogui.position()を使うと、現在のマウスの位置を取得することもできます。PyautoGUIを使えば、マウスの操作を自動化することができます。
簡単なコードを下に書きます。コードとしてはわかりやすいと思います。実際に実行すると、少し待つと自動でマウスが動作する様子が確認できます。
PyautoGUIでマウスを操作する簡単なコード
import pyautogui
from time import sleep
sleep(2)
# マウスを(100,100)の座標に移動させる
pyautogui.moveTo(100, 100)
sleep(2)
# マウスを(200,200)の座標にドラッグする
pyautogui.dragTo(200, 200)
sleep(2)
# マウスを(300,300)の座標にクリックする
pyautogui.click(300, 300)
sleep(2)
# マウスを(400,400)の座標にダブルクリックする
pyautogui.doubleClick(400, 400)
sleep(2)
# マウスを(500,500)の座標に右クリックする
pyautogui.rightClick(500, 500)
例えばデスクトップのアイコンの座標を調べるためには、こちらのコードでマウスの座標を取得することができます。excelなどのソフトウェアを開きたい時には、このような方法で開くこともできます。プログラムで開くこともできますが、感覚的には、わかりやすいと思います。
x, y = pyautogui.position()
print(x, y)
今回は上記コードでGoogle-Chromeの座標を調べました。結果は(55,441)ですので、これをもとにダブルクリックキーボード入力してみましょう。
キーボードの操作
キーボードの操作では、キーを入力したり、押したり、放したりすることができます。キーの入力には、文字を入力する「typewrite()」関数を使います。また、キーを押したり放したりするためには、「keyDown()」関数と「keyUp()」関数を使います。例えば、Ctrlキーを押しながら、Aキーを押す操作を行う場合は、「keyDown(‘ctrl’)」関数でCtrlキーを押した状態にした後、「typewrite(‘a’)」関数でAキーを押し、最後に「keyUp(‘ctrl’)」関数でCtrlキーを放します。
実際にコードを
キーボードを操作するコマンドとコードは以下の通りです。
・キーを押す:pyautogui.press(‘キー名’)
・キーボード入力:pyautogui.typewrite(‘yahoo.co.jp’)
・キーを押しながら他のキーを押す:pyautogui.hotkey(‘キー名1’, ‘キー名2’)
・キーを押し続ける:pyautogui.keyDown(‘キー名’)
・キーの押し続けを終了する:pyautogui.keyUp(‘キー名’) 例: Ctrlキーを押しながらaキーを押す pyautogui.hotkey(‘ctrl’, ‘a’)
では実際のコードを書いてみます。下記コードで、クリックしたい座標を取得します。実際に動かした動画を下記に残します。
import pyautogui
from time import sleep
while True:
try:
x, y = pyautogui.position()
print(x,y)
sleep(1)
except KeyboardInterrupt:
print('\n終了。')
break
Google chromeのショートカットの座標は大体(55,441)だったので、この座標にマウスを動かして、ダブルクリック、yahoo.co.jpと入力してもらいます。流れはこんな感じ。
- マウスを(55,441)に移動(Google Chrome)
- ダブルクリック
- yahoo.co.jpと入力
- Enter
普段人間が作業する流れと同じです。実際に書きのコードで動かしてみましょう。
import pyautogui
from time import sleep
sleep(2)
# マウスを座標に移動させる
pyautogui.moveTo(55, 441)
sleep(2)
pyautogui.doubleClick(55, 441)
sleep(2)
pyautogui.typewrite('yahoo.co.jp')
sleep(1)
pyautogui.press('enter')
このように人が行っていたPC作業をすべて自動化することができ、かなり便利だと思います。今回は座標をクリックするにしましたが、そのほかにも画像が一致する場所をクリックするなどもできますので、Excel作業や事務的な作業はすべて代用可能と思われます。
twitter(X)を自動で投稿する方法(Pyautogui)
コメントで自動投稿するプログラムの依頼がありましたので、下記プログラムになります。
事前の準備としては、プログラムの保存フォルダにupdated_result.csvとクリックしたい画像ファイル(image1.png)を保存します。今回はimage1.png。ただ、画像がPCのデスクトップサイズやツイッター画面によって変化するので、自分のPCの画像をスクリーンショットでとって保存してください。
自分の時はこれでした。
下記画像:image1.png
import pyautogui
import webbrowser
import time
import csv
import pyperclip
# Twitterのホームページにアクセス
url = 'https://twitter.com/home?lang=ja'
webbrowser.open(url)
# ウェブページが完全にロードされるまで待機
time.sleep(5)
# ブラウザウィンドウを最大化
pyautogui.press('f11') # F11キーを押して全画面表示に切り替え
time.sleep(2)
# 'updated_result.csv' ファイルからテキストを読み込む
with open('updated_result.csv', newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
text = row[0] # 各行の最初の列をテキストとして取得
try:
# 'image1.png' 画像をスクリーン上で探してクリック
time.sleep(2)
location = pyautogui.locateCenterOnScreen('image1.png')
time.sleep(1)
pyautogui.click(location)
time.sleep(1) # クリック後、操作を続行する前に少し待機
# テキストをクリップボードにコピーしてペースト
pyperclip.copy(text)
pyautogui.hotkey('ctrl', 'v') # Ctrl+V を押してテキストをペースト
except pyautogui.ImageNotFoundException:
# 'image1.png' が見つからなかった場合のエラーメッセージ
print("image1.pngが見つかりませんでした。")
try:
# 'post.png' 画像をスクリーン上で探してクリック
time.sleep(2)
location = pyautogui.locateCenterOnScreen('post.png')
time.sleep(1)
pyautogui.click(location)
# ここには、クリック後の追加操作(例えば投稿ボタンのクリック)を挿入
except pyautogui.ImageNotFoundException:
# 'post.png' が見つからなかった場合のエラーメッセージ
print("post.pngが見つかりませんでした。")
updated_results.csv(下記内容を入れてます。自由に入れてください。)
この内容がツイートされるようになります。この場合、下記4件がツイートされます。
ChatGPTで自動化すると、仕事や趣味がもっと楽しくなりますよ。ChatGPTはあなたの質問に答えたり、アイデアを出したり、クリエイティブなコンテンツを作ったりできます。ChatGPTを使って、新しいことに挑戦してみませんか?
ESP32はWi-FiとBluetoothに対応した便利なマイコンボードです。電子工作初心者におすすめのESP32開発ボードは、Espressif純正のESP-WROOM-32D開発ボード/ESP32-DevKitC-32Dです。このボードはArduino IDEでプログラムできるので、手軽にIoTを実現できます。ESP32で電子工作の世界を広げましょう!
Pythonのseleniumは、ブラウザを自動操作するためのライブラリです。seleniumを使えば、ウェブスクレイピングやテストの自動化などができます。seleniumは簡単にインストールでき、多くのブラウザと互換性があります。seleniumでウェブの力を引き出しましょう!
chatGPTは、OpenAIが開発した対話型AIです。chatGPTは自然言語処理のモデルで、人間のような会話を生成できます。chatGPTは最近、画像認識やウェブ検索などの機能が追加され、ますます便利になりました。chatGPTはあなたのパートナーとなり、楽しくおしゃべりします。chatGPTと仲良くなってみませんか?