python实现键盘自动输入_python如何实现只按一次键盘就持续输入?

谢邀。

楼上一位答主的答案可以满足题主的需求。但是如果遇到较为复杂的情况,比如说:控制响应的间隔(你当然可以sleep,但是sleep只能显性地“添加”睡眠间隔,而不能严格控制“精确”的间隔),或者让不同的按键有不同的响应间隔,直接用while就不太靠谱了。这个问题我在Stack Overflow上面问过,当时有位大佬给出了pygame的原生方法----set_repeat的优缺点以及改进。干脆我就在这里补充一下。

总之,set_repeat接受两个参数delay和interval(什么单位自行查看),delay是第一次按下按键并产生效果的等待间隔,interval表示后续保持按键时每次效果的等待间隔。但是这个针对所有按键,不能自定义。

如果要自定义,就需要自己写,不能直接靠set_repeat了。其实这个改进就是在上面答主的while基础上改了一下(Stack Overflow上不去可以进这里https://paste.gnome.org/pm17hmkd8,一年有效):

上面是核心代码。onkeypress就是表示按键的效果(比如说飞机移动之类的)。我们首先还是要用set_repeat设定一个间隔,这个间隔建议是所有按键的间隔的最大公因数,比如说我这里设置一个10ms和一个1s,那么delay就设成10。然后我们对每一个“按下”按键的事件检查,如果这个按键在我们需要延迟1s的字典里面并且已经超过了1s,就触发效果;其余同理。

以上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值