Python でキーボード入力をシミュレートする

Vaibhav Vaibhav 2023年1月30日
  1. Python の keyboard ライブラリを使用してキーボードをシミュレートする
  2. Python の PyAutoGUI ライブラリを使用してキーボードをシミュレートする
Python でキーボード入力をシミュレートする

Python はほとんどすべてに使用されます。Python を使用すると、DjangoFlask などの無料のオープンソースフレームワークを使用して、Web アプリケーションのバックエンド、モバイルアプリケーションのバックエンド、および API を開発できます。

さらに、Python プログラムは、KerasNumPyTensorflowPyTorch などの堅牢なライブラリを使用して効率的な機械学習モデルを作成します。これらのライブラリは、Matplotlib などを使用してさまざまな種類のプロットをプロットします。

この記事では、Python のそのようなユースケースを見ていきます。Python を使用してキーボードをシミュレートまたは制御する方法を学習します。

2つのオープンソース Python ライブラリ keyboardPyAutoGUI について説明し、Python スクリプトを使用してキーボードを制御できるようにします。

Python の keyboard ライブラリを使用してキーボードをシミュレートする

keyboard ライブラリは、キーボードを制御するためのオープンソースライブラリです。

このライブラリは、キーボードイベントのリッスンと送信、ホットキーの使用、国際化のサポート、および pip install mouse または pip3 install mouse を使用してダウンロードできる mouse ライブラリの助けを借りてマウスサポートを提供できます。

keyboard ライブラリをインストールするには、次の 2つの pip コマンドのいずれかを使用します。

pip install keyboard
pip3 install keyboard

このライブラリを使用してキーボードを制御する方法を理解しましょう。テキストを入力する簡単な例については、次の Python コードを参照してください。

import keyboard

keyboard.write("Python is an amazing programming language.")
keyboard.press_and_release("enter")
keyboard.press_and_release("shift+p")
keyboard.press_and_release("y")
keyboard.press_and_release("t")
keyboard.press_and_release("h")
keyboard.press_and_release("o")
keyboard.press_and_release("n")

出力:

Python is an amazing programming language.
Python

Python は、キーボードライブラリを使用してキーボード入力をシミュレートする

上記のコードを実行する前に、テキストカーソルまたはキャレットに注意してください。出力ボックス内の上記のテキストは、そこに自動的に入力されます。

write() 関数は、引数としてこの関数に渡される文字列を入力します。この関数は、人工キーボードイベントをオペレーティングシステムに送信します。オペレーティングシステムは、キャレットでさらに入力されます。

キーボードで使用できない文字がある場合は、代わりに明示的な Unicode 文字が入力されます。press_and_release() 関数は、オペレーティングシステムのイベントを送信して、ホットキーを実行し、引数として渡された文字を入力します。

このライブラリの詳細については、そのドキュメントこちらを参照してください。

Python の PyAutoGUI ライブラリを使用してキーボードをシミュレートする

PyAutoGUI ライブラリを使用すると、キーボードとマウスを制御する Python スクリプトを記述できます。

このライブラリは、マウスカーソルを移動してウィンドウやアプリケーションをクリックし、キーイベントを送信して文字を入力してホットキーを実行し、スクリーンショットを撮り、移動、サイズ変更、最小化、最大化、画面上のアプリケーションの検索、アラートメッセージの表示などを行うことができます。

このライブラリをインストールするには、次のいずれかのコマンドを使用します。

pip install pyautogui
pip3 install pyautogui

ユースケースには PyAutoGUI ライブラリを使用できます。これについては、次のコードを参照してください。

import pyautogui

pyautogui.write("Python is an amazing programming language.")

出力:

Python is an amazing programming language.

Python PyAutoGUI ライブラリを使用してキーボード入力をシミュレートします

ご覧のとおり、write() 関数は、キャレットで引数として渡された文字列の文字を型指定します。この機能は、アルファベットや数字などの 1 文字のキーのみを押すことができます。

つまり、ShiftCtrlCommandAltOptionF1F3のようなキーは押せません。keyDown() および keyUp() メソッドを使用して、このようなキーを押すことができます。

keyDown() メソッドはキーを押し続けます。そして、keyUp() メソッドは保持されたキーを解放します。

例については、次の Python コードを参照してください。テキストカーソルまたはキャレットの位置に注意することを忘れないでください。

import pyautogui

pyautogui.keyDown("shift")
pyautogui.press("a")
pyautogui.press("b")
pyautogui.press("c")
pyautogui.keyUp("shift")
pyautogui.press("x")
pyautogui.press("y")
pyautogui.press("z")
pyautogui.keyDown("shift")
pyautogui.press("a")
pyautogui.keyUp("shift")
pyautogui.keyDown("shift")
pyautogui.press("b")
pyautogui.keyUp("shift")
pyautogui.keyDown("shift")
pyautogui.press("c")
pyautogui.keyUp("shift")

出力:

ABCxyzABC

Python は、PyAutoGUI ライブラリを使用してキーボード入力をシミュレートします-2

Shift + Fなどのキーを押すには、press() メソッドを使用することもできます。この関数は、文字列として渡されたすべてのキーを押します。

舞台裏では、この関数は keyDown() および keyUp() メソッドの単なるラッパーです。

このライブラリの詳細については、そのドキュメントこちらを参照してください。

著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Python Input