Python 自动点击器未关闭
我正在做一个自动点击器,它可以用“e”来关闭和打开,但在“e”之后 它会打开,但不会关闭 我试过多次修改代码,但仍然找不到正确的答案 问题Python 自动点击器未关闭,python,Python,我正在做一个自动点击器,它可以用“e”来关闭和打开,但在“e”之后 它会打开,但不会关闭 我试过多次修改代码,但仍然找不到正确的答案 问题 导入pynput 从pynput.keyboard导入键代码,侦听器 从pynput.mouse导入按钮,控制器 导入时间 鼠标=控制器() def onoff(按键代码,on=None): rkey=str(键码).strip(“”) 如果rkey==“e”: 如果未打开: 打印(“在”) on=真 艾利夫: 打印(“关闭”) 开=假 如果未打开: 打印(
导入pynput
从pynput.keyboard导入键代码,侦听器
从pynput.mouse导入按钮,控制器
导入时间
鼠标=控制器()
def onoff(按键代码,on=None):
rkey=str(键码).strip(“”)
如果rkey==“e”:
如果未打开:
打印(“在”)
on=真
艾利夫:
打印(“关闭”)
开=假
如果未打开:
打印(“不在屏幕上”)
艾利夫:
在职期间:
鼠标。点击(按钮。左)
睡眠时间(0.4)
将侦听器(on_press=onoff)设置为l:
l、 加入
我希望在按下“e”后它会关闭,但一直单击。不太清楚您的意思,因为pynput中的
侦听器
是一个新的线程。如果需要停止此线程,则线程中的while True任务将相应停止。它们都应该彼此分开。使用.join()
方法关闭键盘侦听。在第二次按“e”并持续单击后,请尝试以下代码以查看是否需要此效果:
from pynput.keyboard import Listener
from pynput.mouse import Button, Controller
import time
import threading
mouse = Controller()
class Demo:
def __init__(self):
self.key_list = []
self.c = threading.Thread(target=self.click)
self.l = Listener(on_press=self.onoff)
self.l.start()
self.l.join()
def click(self):
while True:
mouse.click(Button.left)
time.sleep(0.4)
def onoff(self, key):
try:
key_str = key.char
except AttributeError:
key_str = key.name
if key_str == "e":
if len(self.key_list) == 0:
self.key_list.append(key_str)
self.c.start()
elif key_str in self.key_list:
self.l.stop()
print('Keyboard listen stopped')
print('Mouse click continue')
self.c.join()
Demo()
我以前没有使用过pynput,但是,难道它不会在“开启”时退出吗?