キーが押されたようにシステムに見せることはできますか?たとえば、キーをA何千回も押さなければならず、手動で行うのは非常に時間がかかります。何かを書きたいと思います。私にとって、そして私が十分によく知っているのはPythonだけです。
より良い言い方をすれば、私はキーの押下をエミュレートする必要があります。IEはキーの押下をキャプチャしません。
詳細情報(要求に応じて):Windows XPを実行していて、別のアプリケーションにキーを送信する必要があります。
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インストールにデフォルトでインストールされていると思います)。おそらく、ここから始めることができます。
編集: F11を送信する
import win32com.client as comctl
wsh = comctl.Dispatch("WScript.Shell")
# Google Chrome window title
wsh.AppActivate("icanhazip.com")
wsh.SendKeys("{F11}")
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")
AutoHotKeyは、この種のタスク(キーボードの自動化/再マッピング)に最適です。
「A」を100回送信するスクリプト:
Send {A 100}
それで全部です
編集:特定のアプリケーションにキーを送信するには:
WinActivate Word
Send {A 100}
キー プレス イベントを送信する前に優先ウィンドウをフォアグラウンドに設定する別の方法。
hwnd = win32gui.FindWindowEx(0,0,0, "App title")
win32gui.SetForegroundWindow(hwnd)
プラットフォームがWindowsの場合、実際にはPythonはお勧めしません。代わりに、Autohotkeyを調べてください。私を信じてください、私はPythonが大好きですが、この状況では、マクロプログラムがその仕事に理想的なツールです。Autohotkeyのスクリプトは(私の意見では)まともですが、入力のシミュレーションが簡単なため、数え切れないほどの時間を節約できます。Autohotkeyスクリプトも「コンパイル」できるため、スクリプトを実行するためにインタープリターは必要ありません。
また、これがWeb上のものである場合は、iMacrosをお勧めします。これはFirefoxプラグインであるため、Webサイトとの統合がはるかに優れています。たとえば、「(319,400)でマウスクリックをシミュレートしてから「a」を1000回押す」のではなく、「このフォームに1000'aを書き込む」と言うことができます。
Linuxの場合、残念ながら、キーボード/マウスマクロを簡単に作成するための良い方法を見つけることができませんでした。
解決策があります:
import pyautogui
for i in range(1000):
pyautogui.typewrite("a")