PythonとpywinautoでWindowsアプリを自動化!初心者向けマウス操作ガイド

pywinauto アイキャッチ画像

この記事では、Pythonライブラリ「pywinauto」を使用して、Windowsアプリケーションの操作を自動化する方法を詳しく解説します。マウスの操作に焦点を当て、インストールから応用例まで、初心者でも理解できるように丁寧に説明します。

関連ページ

RPA--PYWINAUTO
「RPA--PYWINAUTO」の記事一覧です。

pywinautoライブラリのインストール

「pywinauto」は、WindowsアプリケーションのGUI操作を自動化するためのPythonライブラリです。まず、Python環境に「pywinauto」をインストールします。

pip install pywinauto

このコマンドを実行すると、必要なパッケージがインストールされます。

ライブラリのインポート

次に、「pywinauto」のモジュールをインポートします。「mouse」モジュールを利用することで、マウス操作を簡単に行えます。

import pywinauto.mouse
import pywinauto.application

上記のコードは、マウス操作やアプリケーション操作に必要なモジュールをインポートします。

アプリケーションの起動

対象となるアプリケーションを起動します。「pywinauto.application」のApplicationクラスを使用します。

app = pywinauto.application.Application().start("notepad.exe")

ここでは「メモ帳」を例にしていますが、他のアプリケーションでも同様に操作可能です。

マウス位置の取得

現在のマウスカーソル位置を取得する方法を説明します。

from pywinauto.mouse import get_cursor_pos
position = get_cursor_pos()
print(f"現在のマウス位置: {position}")

このコードを実行すると、マウスカーソルの現在位置(x, y座標)が取得できます。

マウス位置の設定

操作対象のアプリケーション上の特定の位置を指定します。

target_position = (500, 300) # x=500, y=300の位置を指定

指定した座標を後のマウス操作で使用します。

マウスカーソルの移動

「move」関数を使って、カーソルを指定した位置に移動します。

from pywinauto.mouse import move
move(coords=target_position)

このコードにより、カーソルが指定した位置に移動します。

  • coords (タプル形式, 必須)
    • 移動先の座標を (x, y) の形式で指定します。
    • 画面左上を原点 (0, 0) とした絶対座標です。
    • 例: coords=(500, 300) で x=500, y=300 の位置に移動。
  • duration (float, オプション)
    • マウスカーソルを移動する際にかける時間(秒)を指定します。
    • デフォルト値は 0.0(瞬時に移動)。
    • 正の値を指定すると、指定した秒数をかけてスムーズに移動します。
    • 例: duration=2.0 でカーソルを2秒かけて移動。


pywinauto公式ドキュメント

マウスクリックの実行

指定した位置でマウスクリックを行います。

from pywinauto.mouse import click
click(button='left', coords=target_position)

ボタンの引数には「left」「right」「middle」を指定できます。

  • button (文字列, オプション)
    • クリックするマウスボタンを指定します。
    • 指定可能な値:
      • 'left': 左クリック (デフォルト値)
      • 'right': 右クリック
      • 'middle': 中ボタン(ホイールクリック)
    • 例: button='right' で右クリック。
  • coords (タプル形式, オプション)
    • クリック位置を指定します。
    • 画面左上を原点 (0, 0) とした絶対座標。
    • 指定しない場合は、現在のカーソル位置が使用されます。
    • 例: coords=(500, 300) で x=500, y=300 の位置をクリック。
  • double (bool, オプション)
    • ダブルクリックを行うかどうかを指定します。
    • デフォルト値は False
    • 例: double=True でダブルクリック。

ダブルクリックの実行

次に、ダブルクリック操作を実行します。

from pywinauto.mouse import double_click
double_click(button='left', coords=target_position)

「double_click」を使うことで、簡単にダブルクリックを実行できます。

右クリックの実行

右クリックを実行する方法です。

click(button='right', coords=target_position)

これにより、右クリックメニューを開くことができます。

ドラッグアンドドロップの実行

ドラッグアンドドロップ操作を行うには、「drag_and_drop」関数を使用します。

from pywinauto.mouse import drag_and_drop
start_position = (400, 300)
end_position = (600, 400)
drag_and_drop(start=start_position, end=end_position)

開始位置から終了位置までマウスをドラッグします。

  • start (タプル形式, 必須)
    • ドラッグを開始する位置を (x, y) の形式で指定します。
    • 画面左上を原点 (0, 0) とした絶対座標です。
    • 例: start=(400, 300) で x=400, y=300 からドラッグ開始。
  • end (タプル形式, 必須)
    • ドロップする位置を (x, y) の形式で指定します。
    • 画面左上を原点 (0, 0) とした絶対座標です。
    • 例: end=(600, 400) で x=600, y=400 にドロップ。
  • button (文字列, オプション)
    • ドラッグに使用するマウスボタンを指定します。
    • 指定可能な値:
      • 'left': 左ボタン (デフォルト値)
      • 'right': 右ボタン
      • 'middle': 中ボタン(ホイールクリック)
    • 例: button='right' で右ボタンを使用。
  • pressed (float, オプション)
    • ドラッグ中にマウスボタンを押し続ける時間(秒)を指定します。
    • デフォルト値は 0.0
    • 例: pressed=1.0 で 1 秒間ボタンを押し続けてからドロップ。

マウスホイールの操作

マウスホイールを上下に動かす操作を行います。

from pywinauto.mouse import scroll
scroll(coords=target_position, wheel_dist=5) # 上に5回分スクロール

「wheel_dist」を負の値にすると下方向にスクロールします。

アプリケーションの終了

操作が終了したら、アプリケーションを閉じます。

app.kill()

これにより、アプリケーションが安全に終了します。

まとめ

この記事では、「pywinauto」を使用したマウス操作の基本的な方法から応用的な使い方まで解説しました。このライブラリを使うことで、さまざまなWindowsアプリケーションを自動化できます。次のステップとして、独自のプロジェクトに適用し、さらなる自動化を実現してみてください。

コメント

タイトルとURLをコピーしました