Python中的按键

Unk*_*ech 22 python keypress

是否有可能使系统显示按键被按下,例如我需要A按键数千次,并且手动操作需要花费很多时间,我想写一些东西来做对我来说,我唯一知道的就是Python.

更好的方式,我需要模仿按键,IE不能捕获按键.

更多信息(根据要求):我正在运行Windows XP,需要将密钥发送到另一个应用程序.

tzo*_*zot 26

安装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
Run Code Online (Sandbox Code Playgroud)

搜索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}")
Run Code Online (Sandbox Code Playgroud)


Mal*_*zar 20

您也可以使用PyAutoGui发送虚拟按键.

这是文档:https://pyautogui.readthedocs.org/en/latest/

import pyautogui


pyautogui.press('Any key combination')
Run Code Online (Sandbox Code Playgroud)

您还可以发送Shift键之类的键或输入键:

import pyautogui

pyautogui.press('shift')
Run Code Online (Sandbox Code Playgroud)

Pyautogui也可以像这样发送直接文本:

import pyautogui

pyautogui.typewrite('any text you want to type')
Run Code Online (Sandbox Code Playgroud)

至于按"A"键1000次,它看起来像这样:

import pyautogui

for i in range(999):
    pyautogui.press("a")
Run Code Online (Sandbox Code Playgroud)

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")
Run Code Online (Sandbox Code Playgroud)

  • 太棒了,正是我所需要的......而且它还允许捕获屏幕截图。 (2认同)

Pab*_*loG 10

AutoHotKey非常适合此类任务(键盘自动化/重新映射)

脚本发送"A"100次:

Send {A 100}
Run Code Online (Sandbox Code Playgroud)

就这样

编辑:将密钥发送到特定的应用程序:

WinActivate Word
Send {A 100}
Run Code Online (Sandbox Code Playgroud)

  • 这有效,但没有回答这个问题,所以我会投票,但我不能接受它作为答案. (5认同)

小智 6

检查此模块键盘具有许多功能.安装它,也许使用此命令:

pip3 install keyboard
Run Code Online (Sandbox Code Playgroud)

然后使用此代码:

import keyboard
keyboard.write('A',delay=0)
Run Code Online (Sandbox Code Playgroud)

如果你想多次写'A',那么只需使用一个循环.
注意:
对于整个窗口,将按下"A"键.脚本正在运行,您进入浏览器,脚本将开始在那里写入.

  • 有没有办法使用这个库来按住键几秒钟。我不想要多个按键,只有一个,直到它发布。我已经浏览了 API 文档,但无法准确找到我正在寻找的内容 - 很多带有按钮组合的东西。 (2认同)