Python autopy toggle或tap方法如何实现组合按键?输出结果不符合教程文档描述

#尝试通过python的自动鼠键模块autopy实现Ctrl+A的全选效果
import autopy as at
import time

time.sleep(2)

#尝试1 直接报错 TypeError
at.key.toggle('A',True,[at.key.Code.CONTROL])
at.key.toggle('A',False,[at.key.Code.CONTROL])

#尝试2 啥都没发生 无法实现Ctrl+A全选的效果
at.key.toggle('A',True,[at.key.Modifier.CONTROL])
at.key.toggle('A',False[at.key.Modifier.CONTROL])

#尝试3 结果和尝试2一样 啥都没发生
at.key.toggle(at.key.Code.CONTROL,True,[at.key.Modifier.CONTROL],5)
at.key.tap('A')
at.key.toggle(at.key.Code.CONTROL,False,[at.key.Modifier.CONTROL])

#尝试4 结果和尝试2/3 一样 无效
at.key.toggle(at.key.Code.CONTROL,True,[at.key.Modifier.CONTROL])
at.key.toggle('A',True)
at.key.toggle('A',False)
at.key.toggle(at.key.Code.CONTROL,False,[at.key.Modifier.CONTROL])

#尝试5 结果和尝试2/3/4 一样 无效
at.key.toggle(at.key.Code.CONTROL,True,[at.key.Modifier.CONTROL])
time.sleep(8)
at.key.toggle('A',True)
at.key.toggle(at.key.Code.CONTROL,False,[at.key.Modifier.CONTROL])
at.key.toggle('A',False)

#最终怀疑按住一个键不松的这个功能是不是有问题,因此尝试按住A键8秒后再释放,但记事本中只输出了一个A而不是一排AAAAAAAAA,给人感觉好像只按了一下而不是按住不送
#到底问题出在哪里了呢
at.key.toggle(at.key.Code.CONTROL,True,[at.key.Modifier.CONTROL])
time.sleep(8)
at.key.tap('a')
at.key.toggle(at.key.Code.CONTROL,False,[at.key.Modifier.CONTROL])
print('结束')

如代码所示

为什么无法实现Crtl+A的全选效果呢?

头疼/// 0_0 ///

---------------------------------------------------

 

因为你用的autopy.key.Code.CONTROL,代表的就是按下并释放。。。

如果你只想按下,应该用autopy.key.Code.UP_ARROW

autopy.key.toggle(autopy.key.Code.UP_ARROW, True, []) #按下方向键

autopy.key.toggle(autopy.key.Code.UP_ARROW, False, []) #释放方向键

问题已解决,题主直接放弃autopy去用另一个自动鼠键模块pyautogui(好像这个更大众更主流)

import pyautogui

pyautogui.keyDown('ctrl')

pyautogui.press('a')

pyautogui.keyUp('ctrl')

然后就这么简简单单操作直接成功了,果然是模块和工具的问题 捂脸/