web-dev-qa-db-ja.com

Pythonでキーボードとマウスをシミュレートする最も簡単な方法はどれですか。

いくつかのマクロを実行する必要があり、それを実行するための最も推奨される方法を知りたいです。

それで、何かを書いてそれでいくつかの場所をクリックする必要があり、TABキーをエミュレートする必要があります。

25
Bruno 'Shady'

私はPythonで自動テストを行います。私は以下を使用する傾向があります:

http://www.tizmoi.net/watsup/intro.html
編集:リンクは無効です、アーカイブバージョン: https://web.archive.org/web/20100224025508/ http://www.tizmoi.net/watsup/intro.html

http://www.mayukhbose.com/python/IEC/index.php

私は常に(ほとんど絶対に)キーを押したりマウスの動きをシミュレートするわけではありません。私は通常COMを使用してWindowsオブジェクトの値を設定し、それらの.click()メソッドを呼び出します。

これでキープレス信号を送ることができます:

import win32com.client

Shell = win32com.client.Dispatch("WScript.Shell")
Shell.SendKeys("^a") # CTRL+A may "select all" depending on which window's focused
Shell.SendKeys("{DELETE}") # Delete selected text?  Depends on context. :P
Shell.SendKeys("{TAB}") #Press tab... to change focus or whatever

これはすべてWindowsにあります。別の環境にいる場合、私には手がかりがありません。

27
Ishpeck

多分あなたは探している Sendkeys

SendKeysは、1つ以上のキーストロークまたはキーストロークの組み合わせをアクティブウィンドウに送信できるWindows用のPythonモジュールです。

それは窓だけのようです

また、あなたは pywinauto (my SO answer からコピー)

pywinautoは、Windows NTベースのオペレーティングシステム(NT/W2K/XP)のGUIオートメーション「ドライバー」としてPython=)を使用するためのオープンソース(LGPL)モジュールのセットです。

そしてウェブページからの例

> from pywinauto import application
> app = application.Application.start("notepad.exe")
> app.notepad.TypeKeys("%FX")
> app.Notepad.MenuSelect("File->SaveAs")
> app.SaveAs.ComboBox5.Select("UTF-8")
> app.SaveAs.edit1.SetText("Example-utf8.txt")
> app.SaveAs.Save.Click()
16
joaquin

pyautoguiは、キーを送信し、キーボード/マウス関連のいくつかのタスクを自動化するための優れたパッケージです。 GUIオートメーションによるキーボードとマウスの制御 および PyAutoGUIのドキュメント を確認してください。

9

PyAutoGUIライブラリ をPythonに使用できます。これはWindows、macOS、Linuxで動作します。

マウス

次に、マウスを画面の中央に移動する簡単なコードを示します。

import pyautogui
screenWidth, screenHeight = pyautogui.size()
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)

ドキュメントページ: マウスコントロール関数

関連質問: Pythonでマウスを制御する

キーボード

例:

pyautogui.typewrite('Hello world!')                 # prints out "Hello world!" instantly
pyautogui.typewrite('Hello world!', interval=0.25)  # prints out "Hello world!" with a quarter second delay after each character

ドキュメントページ: Keyboard Control Functions


続きを読む: GUIオートメーションでキーボードとマウスを制御する (電子書籍の第18章)。

関連する質問:

2
kenorb