【问题标题】:Block mouse click in Python在 Python 中阻止鼠标单击
【发布时间】:2021-08-30 10:53:22
【问题描述】:

我正在用 Python 编写一个小的 Mouse Spamming Stopper 脚本,但我真的不知道该怎么做 只能阻止鼠标点击,但仍然可以移动鼠标。

这是我目前得到的:

from pynput.mouse import Listener
import time


mouse_allowed = True

def timeout():
    mouse_allowed = False
    time.sleep(0.1)

def on_click(x, y, button, pressed):
    if mouse_allowed:
        print("Clicked")
        timeout()

if mouse_allowed:
    with Listener(on_click=on_click) as listener:
        listener.join()

【问题讨论】:

    标签: python python-3.x pynput


    【解决方案1】:

    我发现解决鼠标被锁定的一种方法是检查时间。这可以通过使用 time.time() 函数来完成。这是我的意思的粗略示例 sn-p。

    from pynput.mouse import Listener
    import time
    
    last_click = time.time()
    
    def good_click_time():
        # Make sure the program knows that it's getting the global variable
        global last_click
        # Makes sure that 1 second has gone by since the last click
        if time.time() - last_click > 1:
            # Records last click
            last_click = time.time()
            return True
        else:
            return False
    
    def on_click(x, y, button, pressed):
        if good_click_time():
            print("Clicked")
        else:
            print("You must wait 1 second to click. You have waited {} seconds".format(time.time() - last_click))
    
    with Listener(on_click=on_click) as listener:
        listener.join()
    

    通过记录您最后一次点击的确切时间,您可以使用它来检查距离您最后一次点击的时间是否至少一秒(或者您希望两次点击之间的时间)。

    【讨论】:

    • 谢谢!这对于鼠标垃圾邮件肯定有帮助,但是有没有办法阻止鼠标点击?
    • documentation 向您展示了如何切换鼠标侦听器。但是我不认为这是你的问题。由您决定单击鼠标时会发生什么。我们设置了逻辑来确定点击是否有效。现在您所要做的就是告诉程序一旦点击有效或无效时该做什么。例如,您可以将 on_click() 函数中的两个打印函数更改为调用函数。现在,当点击有效和无效时,您将运行一个函数。
    • 它很好,但我认为这个功能冻结了整个鼠标,不仅仅是点击功能,对吧?
    • 您是否尝试过仅复制我的代码?它应该能够阻止点击并仍然允许鼠标移动。
    • 我做到了,但我感觉鼠标移动有点滞后,但还是非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 2011-07-02
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多