这是我正在使用的代码,我希望12秒后指针回到759、718并点击继续.

import time
import threading
import random
from pynput.mouse import Controller, Button
from pynput.keyboard import Listener, KeyCode

TOGGLE_KEY = KeyCode(char="1")

clicking = False
mouse = Controller()

#a=random.randint(176, 718)
#b=random.randint(732, 1215)

def clicker():
    while True:
        if clicking:
            mouse.click(Button.right, 1)
            for a in range(0, 10):
                a=random.randint(732, 1215)
            for b in range(0, 10):
                b=random.randint(176, 500)
                mouse.position=(a, b)
                time.sleep(0.001)

def toggle_event(key):
    if key == TOGGLE_KEY:
        mouse.position = (759, 718)
        global clicking
        clicking = not clicking

click_threat = threading.Thread(target=clicker)
click_threat.start()


with Listener(on_press=toggle_event) as listener:
    listener.join()

我try 了不同的方法来添加"if"的时间,但没有成功 我还try 了另一个time.sleep,但整个代码认为应该等待12秒才能执行,并且不会每0.001秒执行一次点击.

推荐答案

如果我正确理解你的计划,你需要在循环开始之前设置一个开始时间变量,在循环内,对于每次迭代,你都应该判断当前时间-开始时间是否大于或等于12秒(并重置开始时间如果需要的话.

例如:

def do_something():
    start_time = time.time()
    while True:
        if time.time() - start_time >= 12:
            do_something_else()
            start_time = time.time()

除了你应该判断你的算法逻辑之外,你在那里做的事情没有太大意义.

您正在循环变量的谷范围从0到10(BTW范围(0,10)与范围(10)相同),并且每次变量a获得该范围中的下一个值时,您都会用新的随机值替换该值.并且在循环结束之前不对新值执行任何操作.因此,当您循环变量b时,a的值将是b循环开始之前它保存的最后一个值.

如果您想生成10个随机数,请try 以下操作:

for _ in range(10):
    a = random.randint(732, 1215)
    b = random.randint(176, 500)
    mouse.position=(a, b)
    time.sleep(0.001)

Python相关问答推荐

双情节在单个图上切换-pPython

pandas MultiIndex是SQL复合索引的对应物吗?

手动为pandas中的列上色

为什么使用SciPy中的Distance. cos函数比直接执行其Python代码更快?

具有多个组的条形图的不同y标度

Polars Select 多个元素产品

pyramid 内部数组中的连续序列-两极

不允许AMBIMA API请求方法

在使用Guouti包的Python中运行MPP模型时内存不足

计算所有前面行(当前行)中列的值

更改matplotlib彩色条的字体并勾选标签?

我从带有langchain的mongoDB中的vector serch获得一个空数组

如何在Windows上用Python提取名称中带有逗号的文件?

组/群集按字符串中的子字符串或子字符串中的字符串轮询数据框

Pandas DataFrame中行之间的差异

python中字符串的条件替换

提取相关行的最快方法—pandas

Pandas GroupBy可以分成两个盒子吗?

在单次扫描中创建列表

AES—256—CBC加密在Python和PHP中返回不同的结果,HELPPP