Python中的按键

时间:2008-09-25 22:58:01

标签: python keypress

是否有可能让系统看起来按下某个键,例如我需要按下 A 键几千次,这样做很费时间我想手动编写一些东西来为我做,而我唯一知道的就是Python。

更好的方式,我需要模仿按键,I.E。不抓住按键。

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

11 个答案:

答案 0 :(得分:23)

安装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安装中默认安装)。你也许可以开始here

编辑:发送F11

import win32com.client as comctl
wsh = comctl.Dispatch("WScript.Shell")

# Google Chrome window title
wsh.AppActivate("icanhazip.com")
wsh.SendKeys("{F11}")

答案 1 :(得分:16)

您也可以使用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")

答案 2 :(得分:9)

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

脚本发送“A”100次:

Send {A 100}

这就是全部

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

WinActivate Word
Send {A 100}

答案 3 :(得分:6)

使用许多功能检查此模块keyboard。可以使用以下命令安装它:

pip3 install keyboard

然后使用此代码:

import keyboard
keyboard.write('A',delay=0)

如果你想写'A'多次,然后简单地使用一个循环 的 注意
 关键' A'将按下整个窗口。脚本正在运行,你进入浏览器,脚本将开始在那里写。

答案 4 :(得分:2)

如果你的平台是Windows,我实际上不会推荐Python。相反,请查看Autohotkey。相信我,我喜欢Python,但在这种情况下,宏程序是这项工作的理想工具。 Autohotkey的脚本只是体面的(在我看来),但模拟输入的简易性将为您节省数不清的时间。 Autohotkey脚本也可以“编译”,因此您不需要解释器来运行脚本。

此外,如果这是针对Web上的内容,我建议iMacros。它是一个firefox插件,因此可以更好地与网站集成。例如,你可以说“以这种形式写1000'一个”而不是“模拟鼠标点击(319,400)然后按'a'1000次”。

对于Linux,遗憾的是我还没有找到一种轻松创建键盘/鼠标宏的好方法。

答案 5 :(得分:2)

在发送按键事件之前将首选窗口设置为前景的替代方法。

hwnd = win32gui.FindWindowEx(0,0,0, "App title")
win32gui.SetForegroundWindow(hwnd)

答案 6 :(得分:2)

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

答案 7 :(得分:1)

有一个解决方案:

import pyautogui
for i in range(1000):
    pyautogui.typewrite("a")

答案 8 :(得分:0)

import keyboard

keyboard.press_and_release('anykey')

答案 9 :(得分:0)

您可以使用 pyautogui 模块,该模块可用于自动移动鼠标和按键。它也可以用于一些 GUI(非常基本)。 您可以执行以下操作:- 导入pyautogui pyautogui.press('A') # 按下'A'键

如果你想做1000次,那么你可以使用while循环

希望这有帮助:)

答案 10 :(得分:0)

你可以使用我写的这段代码,它会按“a”键 1000 次

import pyautogui 
loop = 1
while loop <= 1000: 
  pyautogui.press("a")
   loop += 1