python列出鼠标点击坐标

pyt*_*tor 2 python click mouseevent python-2.7 onclicklistener

我想记录并附加到列表中有限数量的鼠标点击(在这种情况下为 10(这将是一个变量))的 x 和 y 坐标。脚本一般需要记录在桌面、浏览器或应用程序上的点击。

我基本上是在尝试为一个更大的桌面自动化程序的灵活简单的宏部分创建一个坐标列表(非常简单和重复的工作,但布局确实发生了变化,这就是为什么重新记录坐标是关键)。

我已经搜索过“自动化无聊的东西”,但无法让 pyautogui 记录位置(它确实完美地执行了鼠标位置,但不是预先录制的列表)。此外,这不能像 pygame 中的情况那样仅限于单个帧。

我是菜鸟,任何建议将不胜感激。我已经包含了我收到的错误的图像。列表部分不包括在内,我稍后会添加。

from pynput import mouse

NumberOfMouseClicks = 0

def on_click(x, y, button, pressed):
    print(x, y)
    pynput.mouse.Listener.stop

while NumberOfMouseClicks < 10 :
    NumberOfMouseClicks = NumberOfMouseClicks + 1
    with mouse.Listener(on_click=on_click) as listener:
        listener.join()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

qua*_*ind 6

您没有pynput仅从其中导入包mouse。所以代替

pynput.mouse.Listener.stop
Run Code Online (Sandbox Code Playgroud)

你应该使用

mouse.Listener.stop
Run Code Online (Sandbox Code Playgroud)

鼠标事件在on_click函数中处理,while循环没用。你可以这样使用它:

from pynput import mouse

class MyException(Exception):pass

NumberOfMouseClicks = 0

def on_click(x, y, button, pressed):
    global NumberOfMouseClicks
    print(x, y)
    NumberOfMouseClicks = NumberOfMouseClicks + 1
    if (NumberOfMouseClicks==10):
        raise MyException(button)

with mouse.Listener(on_click=on_click) as listener:
    try:
        listener.join()
    except MyException as e:
        pass
Run Code Online (Sandbox Code Playgroud)