[英]Key Presses in Python
是否有可能讓系統看起來按下了一個鍵,例如我需要讓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}
檢查具有許多功能的此模塊鍵盤。安裝它,也許使用以下命令:
pip3 install keyboard
然后使用此代碼:
import keyboard
keyboard.write('A',delay=0)
如果您想多次寫入“A”,則只需使用循環即可。
注意:
整個窗口都將按下“A”鍵。意味着腳本正在運行並且您轉到瀏覽器,腳本將在那里開始編寫。
在發送按鍵事件之前將首選窗口設置為前景的替代方法。
hwnd = win32gui.FindWindowEx(0,0,0, "App title")
win32gui.SetForegroundWindow(hwnd)
如果您的平台是 Windows,我實際上不會推薦 Python。 相反,請查看Autohotkey 。 相信我,我喜歡 Python,但在這種情況下,宏程序是完成這項工作的理想工具。 Autohotkey 的腳本編寫很不錯(在我看來),但是模擬輸入的簡便性將為您節省無數時間。 Autohotkey 腳本也可以“編譯”,因此您不需要解釋器來運行腳本。
另外,如果這是為了網絡上的東西,我推薦iMacros 。 它是一個火狐插件,因此與網站有更好的集成。 例如,您可以說“以這種形式寫 1000 個‘a’”,而不是“在 (319,400) 處模擬鼠標單擊,然后按 1000 次‘a’”。
對於 Linux,不幸的是,我無法找到一種輕松創建鍵盤/鼠標宏的好方法。
PyAutoGui 還允許您多次按下按鈕:
pyautogui.press('tab', presses=5) # press TAB five times in a row
pyautogui.press('A', presses=1000) # press A a thousand times in a row
有一個解決方案:
import pyautogui
for i in range(1000):
pyautogui.typewrite("a")
import keyboard
keyboard.press_and_release('anykey')
您可以使用 pyautogui 模塊,該模塊可用於自動移動鼠標和按鍵。 它也可以用於一些 GUI(非常基本)。 您可以執行以下操作:- import pyautogui pyautogui.press('A') # presses the 'A' key
如果你想做1000次,那么你可以使用while循環
希望這有幫助:)
你可以使用我寫的這段代碼,它會按“a”鍵 1000 次
import pyautogui
loop = 1
while loop <= 1000:
pyautogui.press("a")
loop += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.