web-dev-qa-db-ja.com

キー入力Python

システムにキーが押されたように見せることは可能ですか? A キーを数千回押すと、手作業で行うのは時間がかかります。私のために何かをしたいと思います。私が十分に知っているのはPythonだけです。

それを置くより良い方法、私はキーを押すことをエミュレートする必要があります、I.E。キー押下をキャプチャしません。

詳細(要求どおり):Windows XPを実行しています。別のアプリケーションにキーを送信する必要があります。

22
UnkwnTech

pywin32 拡張機能をインストールします。その後、次のことができます。

import win32com.client as comclt
wsh= comclt.Dispatch("WScript.Shell")
wsh.AppActivate("Notepad") # select another application
wsh.SendKeys("a") # send the keys you want

WScript.Shellオブジェクトのドキュメントを検索します(すべてのWindows XPインストール)にデフォルトでインストールされていると思います。おそらく here を開始できます。

EDIT:F11の送信

import win32com.client as comctl
wsh = comctl.Dispatch("WScript.Shell")

# Google Chrome window title
wsh.AppActivate("icanhazip.com")
wsh.SendKeys("{F11}")
27
tzot

PyAutoGuiを使用して、仮想キーを押すこともできます。

ドキュメントは次のとおりです。 https://pyautogui.readthedocs.org/en/latest/

import pyautogui


pyautogui.press('Any key combination')

また、ShiftキーやEnterキーなどのキーを送信することもできます。

import pyautogui

pyautogui.press('shift')

Pyautoguiは次のようなストレートテキストも送信できます。

import pyautogui

pyautogui.typewrite('any text you want to type')

「A」キーを1000回押すと、次のようになります。

import pyautogui

for i in range(999):
    pyautogui.press("a")

alt-tabまたは複数のキーを同時に押す必要がある他のタスク:

import pyautogui

# Holds down the alt key
pyautogui.keyDown("alt")

# Presses the tab key once
pyautogui.press("tab")

# Lets go of the alt key
pyautogui.keyUp("alt")
19
Malachi Bazar

AutoHotKey は、この種のタスクに最適です(キーボードの自動化/再マッピング)

「A」を100回送信するスクリプト:

Send {A 100}

それで全部です

[〜#〜] edit [〜#〜]:キーを特定のアプリケーションに送信するには:

WinActivate Word
Send {A 100}
10
PabloG

このモジュールを確認してください keyboard 多くの機能を備えています。おそらく次のコマンドでインストールしてください。

pip3 install keyboard

次に、このコードを使用します。

import keyboard
keyboard.write('A',delay=0)

「A」を複数回書きたい場合は、単純にループを使用します。

キー「A」は、ウィンドウ全体で押されます。スクリプトが実行されていることを意味し、ブラウザに移動すると、スクリプトはそこで書き込みを開始します。

6
user8167727

キー押下イベントを送信する前に優先ウィンドウをフォアグラウンドに設定する代替方法。

hwnd = win32gui.FindWindowEx(0,0,0, "App title")
win32gui.SetForegroundWindow(hwnd)
2
wearetherock

プラットフォームがWindowsの場合、実際にはPythonをお勧めしません。代わりに、 Autohotkey を調べてください。私を信じてください、私はPythonが大好きですが、この状況ではマクロプログラムが仕事に理想的なツールです。 Autohotkeyのスクリプトは(私の意見では)まともですが、入力をシミュレートするのが簡単なため、数え切れないほどの時間を節約できます。 Autohotkeyスクリプトも「コンパイル」できるため、スクリプトの実行にインタープリターは必要ありません。

また、これがWeb上のものである場合は、 iMacros をお勧めします。これはFirefoxプラグインであるため、Webサイトとの統合がはるかに優れています。たとえば、「(319,400)でマウスクリックをシミュレートしてから、「a」を1000回押す」の代わりに、「このフォームに1000個の「a」を書き込む」と言うことができます。

Linuxの場合、残念ながらキーボード/マウスマクロを簡単に作成するための良い方法を見つけることができませんでした。

2
Martin W