题
是否可以让系统显示按键被按下,例如我需要按下 A 键数千次,这样做很费时间我想手动编写一些东西来为我做,而我唯一知道的就是Python。
更好的方式,我需要模仿按键,I.E。不抓住按键。
更多信息(根据要求): 我正在运行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键发送密钥或输入密钥:
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”键。脚本正在运行,你进入浏览器,脚本将开始在那里写。
如果你的平台是Windows,我实际上不会推荐Python。相反,请查看 Autohotkey 。相信我,我喜欢Python,但在这种情况下,宏程序是这项工作的理想工具。 Autohotkey的脚本只是体面的(在我看来),但模拟输入的简易性将为您节省数不清的时间。 Autohotkey脚本可以被“编译”。因此,您不需要解释器来运行脚本。
此外,如果这是针对网络上的内容,我建议 iMacros 。它是一个firefox插件,因此可以更好地与网站集成。例如,您可以说“以此形式”写“1000”a“而不是“模拟鼠标点击(319,400)然后按'a'1000次”。
对于Linux,遗憾的是我还没有找到一种轻松创建键盘/鼠标宏的好方法。
在发送按键事件之前将首选窗口设置为前景的替代方法。
hwnd = win32gui.FindWindowEx(0,0,0, "App title")
win32gui.SetForegroundWindow(hwnd)