マウス・キーボードが自動でうごく💻
今回やりたいこと
「kujou」です⛩
写真は京都哲学の道という桜の名所です。
そんな話はさておき、pythonの勉強をしているんですけど、マウスやキーボードを自動的に動かすことができるという情報を聞いたんです。そんな事できるんやったら、「あんな事やこんな事できるやん!」と悪だくみしようと思っちゃったという経緯から今回のテストをやることに至りました。
という事で、今回はお手持ちのマウス・キーボードを自動で動かして、windows PCのごみ箱を定期的に削除するという実用的なプログラムを試してみようと思いますm(__)m
pyautogui
マウスやキーボードを自動的に動かすことができるpythonライブラリが「PyautoGUI」です。PyautoGUIとは、PythonでGUI(グラフィカルユーザーインターフェース)を自動操作するための
強力なライブラリです。
※GUI...PCやスマホ画面のように、文字だけでなく「アイコン」「ボタン」などを使用して視覚的に操作できるようにしたもの。
👇具体的には以下のような事ができます👇
1.マウス操作
・マウス移動
・左クリック
・右クリック
・中央クリック
・ダブルクリック
・トリプルクリック
・マウス押しっぱなし
・ドラッグ&ドロップ
・上下にマウススクロール
2.キーボード操作
・文字列入力
・特殊キー操作(shift、Ctrl、Altなど)
・ショートカットキー(Ctrl+A)
3.画面操作
・現在の画面サイズ取得
・現在のマウスカーソル位置取得
・スクリーンショット(画面全体)
・スクリーンショット(一部画面)
4.画像認識
・画像検索
5.その他
・処理を数秒間一時停止
事前環境
自身のWindows PC上に以下のツール・ライブラリをインストールします。
1.python
python公式サイトまたはMicrosoft Storeから、pythonインストールしておきましょう。
2.pip
pipは、Pythonのパッケージをインストール・管理するためのツールです。
通常ならPythonをインストールする際に一緒にインストールされます。もし不安であればコマンドプロンプトを開いて、「pip --version」コマンド実行してインストールされているか確認しましょう。
3.PyautoGUI
「pip install pyautogui」コマンドでインストールしましょう。
4.time
python標準ライブラリ内に含まれているため、別途インストールする必要はないはずです。このモジュールは、プログラムの実行を一時停止させるなどの時間に関する操作を行う際に使用します。
テスト
ソースコードは以下のような感じです。
以下のプログラムは、筆者のデスクトップ環境に合わせたプログラムですので、下記のプログラムをそのまま使用すると、勝手にオンラインショップサイトなど開いて余計な商品など購入したり、大切なファイルなどを誤って削除してしまう恐れがあるので、そこは注意してください。
#PyAutoGUIライブラリとtimeモジュールをインポート
import pyautogui
import time
#ゴミ箱アイコンの座標をクリック
pyautogui.doubleClick(50, 30, button="left")
#ゴミ箱が開くまでの猶予を持つため処理を5秒停止
time.sleep(5)
#ゴミ箱内の適当なファイルをクリックして選択する
pyautogui.click(300, 170, button="left")
#ゴミ箱内の全ファイル選択
pyautogui.hotkey('ctrl', 'a')
#処理を1秒停止
time.sleep(1)
#「ゴミ箱を空にする」をクリック
pyautogui.click(700, 100, button="left")
#処理を1秒停止
time.sleep(1)
#「はい」をクリック
pyautogui.click(1050, 580, button="left")
#処理を1秒停止
time.sleep(1)
#「×」をクリック
pyautogui.click(1890, 10, button="left")
結果
以下のリンクをクリックすると、OneNoteに画面遷移するはずなので、「trash.py」という動画ファイルをクリックすると確認できます👀
まとめ
18秒くらいの動画になっていますが、マウスやキーボードが勝手に動いてゴミ箱内のファイルなどが削除されてます✨
今回の実験では、PyAutoGUIを使ってWindows PCのゴミ箱を自動で清掃するという、一見ささやかながらも実用的なタスクを自動化できることを示しました。動画を見ていただければわかるように、PyAutoGUIを使えば、まるで誰かがPCを操作しているかのように、マウスやキーボードをプログラムから動かすことができるのです。
ゴミ箱の自動清掃はほんの一例に過ぎません。PyAutoGUIの応用範囲は非常に広く、例えば以下のような日常的なGUI操作を自動化することで、時間と労力を大幅に節約することができますね✨
例えば以下のような事ですね。
・Webアプリケーションへのログイン
⇒毎日決まった時間にアクセスするWebサイトへのログイン作業を自動化。
・メールの自動返信
⇒定型的な内容のメールに対する返信を自動化。
・ファイルやフォルダのバックアップ
⇒特定のファイルやフォルダを定期的に別の場所にコピーする作業を自動化。
・データ入力作業
⇒複数のアプリケーション間でデータを転記する作業などを自動化。
・ソフトウェアのテスト自動化
⇒開発中のソフトウェアのGUI操作を自動化し、テストの効率を高めることができます。
もちろん、自動化の際には、予期せぬエラーや誤操作のリスクも考慮する必要があります。しかし、PyAutoGUIを適切に活用することで、日々のルーチンワークから解放され、より創造的で重要なタスクに集中できるようになるでしょう。
PythonとPyAutoGUIの組み合わせは、まさに「こんなことができたらいいな」というアイデアを形にするための強力な武器となります。今回のゴミ箱自動清掃プログラムをきっかけに、皆さんもぜひ身の回りの煩雑な作業の自動化に挑戦し、Pythonの可能性を深く探求してみてください。
Discussion