是否可以让系统显示一个按键被按下,例如我需要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 脚本也可以“编译”,因此您不需要解释器来运行脚本。
此外,如果这是针对 Web 上的某些内容,我推荐iMacros。它是一个 Firefox 插件,因此与网站有更好的集成。例如,您可以说“以这种形式写 1000 个 'a'”而不是“在 (319,400) 处模拟鼠标点击,然后按 'a' 1000 次”。
对于 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') # 按下 'A' 键
如果要执行 1000 次,则可以使用 while 循环
希望这会有所帮助:)
您可以使用我编写的这段代码,它将按“a”键 1000 次
import pyautogui
loop = 1
while loop <= 1000:
pyautogui.press("a")
loop += 1