Python でキーボード イベントをプログラム的にシミュレートするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-06 17:11:02
オリジナル
859 人が閲覧しました

How Can I Programmatically Simulate Keyboard Events in Python?

Python を使用してキーボード イベントを生成する方法

Python には、キーボード イベントをシミュレートするさまざまな手法が用意されており、コンピューターのキーボード操作をプログラムで操作できるようになります。 .

キーストロークのシミュレーション

直接的なクロスプラットフォームのアプローチの場合は、Windows との対話を可能にする ctypes ライブラリの使用を検討してください。 API:

  1. 必要なライブラリのインポート: ctypeswintypes、および time をインポートします。
  2. User32 DLL をロードします: Windows API User32 DLL にアクセスし、入力タイプとキー イベントの定数を定義します。
  3. 入力構造を定義します: マウスの構造を定義します、キーボード、およびハードウェア入力。
  4. 入力オブジェクトの作成: 必要なキーボードの押下または解放を表す INPUT オブジェクトを作成します。
  5. 入力の送信: user32.SendInput を使用して、入力オブジェクトをコンピューターに送信し、キー イベントをシミュレートします。

例:

<code class="python">import ctypes
from ctypes import wintypes
import time

user32 = ctypes.WinDLL('user32', use_last_error=True)

VK_A = 0x41  # Virtual key code for 'A'
KEYEVENTF_KEYUP = 0x0002  # Key event flag for key release

class KEYBDINPUT(ctypes.Structure):
    _fields_ = (("wVk", wintypes.WORD),
                ("wScan", wintypes.WORD),
                ("dwFlags", wintypes.DWORD),
                ("time", wintypes.DWORD),
                ("dwExtraInfo", wintypes.ULONG_PTR))

def press_key(key_code):
    key_input = KEYBDINPUT(wVk=key_code)
    user32.SendInput(1, ctypes.byref(key_input), ctypes.sizeof(key_input))

def release_key(key_code):
    key_input = KEYBDINPUT(wVk=key_code, dwFlags=KEYEVENTF_KEYUP)
    user32.SendInput(1, ctypes.byref(key_input), ctypes.sizeof(key_input))

# Press and release the 'A' key
press_key(VK_A)
time.sleep(1)
release_key(VK_A)</code>
ログイン後にコピー

追加メモ:

  • さまざまなキーをシミュレートするには、MSDN の 仮想キー コード ドキュメントを参照してください。
  • この手法は、アクティブなウィンドウ入力を受け入れない可能性のあるバックグラウンド プロセスであっても、システム全体でイベントをシミュレートすることに重点を置いています。
  • 特定の要件に応じて、他のオプションの代替ライブラリとプラットフォームを調べてください。

以上がPython でキーボード イベントをプログラム的にシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!