【Send_keys】pywinautoでキーボード操作

pywinauto アイキャッチ画像

【Send_keys】 pywinautoでキーボード操作

pywinautoでは、キーボードの操作をするために、Send_keysメソッドが用意されています。

本記事では、Send_keysメソッドの
役割
基本構文と使い方
操作可能なキーについて

上記の3点について、解説していきたいと思います。

Send_keysの役割

send_keys メソッドは、Windowsアプリケーションに対してキーボード入力をシミュレートするための関数です。
GUIの自動化を行う際に、文字の入力やショートカットキーの実行、ボタンの選択などをスクリプトで操作できます。

主な役割

活用シーン

Send_keysの活用シーンとしては以下の3点があります。

デスクトップアプリのテスト自動化:フォーム入力、UIの動作検証
業務効率化:ExcelやWordなどのデータ入力を自動化
RPA(ロボティック・プロセス・オートメーション):繰り返し作業をプログラムで再現

RPA(ロボティック・プロセス・オートメーション) とは?

RPA(Robotic Process Automation)とは、人間がパソコンで行う繰り返し作業を自動化する技術のことです。
例えば、

   ・データ入力の自動化
   ・ファイル整理の自動化
   ・レポート作成の自動化

などがあります。

RPAを活用すると、手作業のミスを防ぎ、業務の効率化を実現できます。

基本構文と使い方

Send_keys()の使い方は非常に簡単です!
引数に押下したいボタンの種類を指定するだけです。

基本構文

send_keys は、以下のように記述します。

window.send_keys("入力したい文字列")

基本的な使い方

以下のコードは、メモ帳(Notepad)を開き、テキストを入力する例です。

from pywinauto import Application
import time

# メモ帳を起動
app = Application().start("notepad.exe")

# メモ帳のウィンドウを取得
window = app.window(title="無題 - メモ帳")

# ウィンドウがアクティブになるのを待つ
window.wait("ready")

# テキスト入力
window.send_keys("pywinautoで自動入力テスト")

# 保存ダイアログを開く(Ctrl + S)
window.send_keys("^s")

# 適当な待機時間を入れる
time.sleep(2)

操作可能なキーについて

Send_keys()で操作可能なキーの種類は豊富にあります。
様々なキーを組み合わせることで、業務効率化に役立ててください!

本セクションでは、
        ・操作可能なキーについて
        ・複数のキーの組み合わせ

上記の2点について、解説します!

操作可能なキーについて

操作可能なキーの数が非常に多いので、公式ドキュメントを共有します!

pywinauto.keyboard — pywinauto 0.6.8 documentation

複数キーの組み合わせ

send_keys() メソッドを使用すると、
CtrlやShiftなどの修飾キーと他のキーを組み合わせた入力を自動化できます。

例えば、
     ・「Ctrl + C」
     ・「Alt + Tab」

といったショートカットキーの動作をスクリプトで再現できます。

基本的な構文

複数のキーを同時に押すには、以下の特殊記号を使用します。

記号 キー 例(動作)
^ Ctrlキー ^c(Ctrl + C)
% Altキー %f(Alt + F)
+ Shiftキー +a(Shift + A)
{キー} 特殊キー {ENTER}(Enterキー)

ショートカットキーの送信例

以下のコードは、メモ帳でテキストを入力し、ショートカットキーを利用する例です。

from pywinauto import Application
import time

# メモ帳を起動
app = Application().start("notepad.exe")

# メモ帳のウィンドウを取得
window = app.window(title="無題 - メモ帳")

# ウィンドウがアクティブになるのを待つ
window.wait("ready")

# テキスト入力
window.send_keys("pywinautoのsend_keysテスト")

# 全選択(Ctrl + A)
window.send_keys("^a")

# コピー(Ctrl + C)
window.send_keys("^c")

# 貼り付け(Ctrl + V)
window.send_keys("^v")

# 適当な待機時間を入れる
time.sleep(2)

3つのキーを組み合わせる方法

Ctrl + Shift + Esc のように、複数の修飾キーを組み合わせる場合は、以下のように記述します。

# Ctrl + Shift + Esc(タスクマネージャーを開く)
window.send_keys("^+{ESC}")

# Ctrl + Shift + N(新しいフォルダーを作成)
window.send_keys("^+n")

まとめ

本記事でpywinautoでは、
キーボードの操作をするためのSend_keysメソッドについて

    ・役割
    ・基本構文と使い方
    ・操作可能なキーについて

 

の3点について解説してきました。

今回解説した内容が皆さんの業務効率化に役立てられればうれしいです。

下に関連記事のリンクがあるので、ぜひご覧ください!

関連記事

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

コメント

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