Zach Xie 2021-06-11 19:02 采纳率: 0%
浏览 107
已结题

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 ///

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

 

  • 写回答

2条回答 默认 最新

  • tuxiangchuli2017 2021-06-12 08:05
    关注

    因为你用的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, []) #释放方向键

    评论

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示