使用 pynput 获取鼠标位置

get mouse positions with pynput

我想编写一个函数,可以通过监听鼠标来获取屏幕的边界区域,并等待 2 次鼠标单击屏幕边界区域的每个角,并且 return 每个点的坐标。我知道你可以如何设置你可以设置 pynput 来处理鼠标按钮按下等事件,但我想进入一个状态,我监听事件然后获取它的位置。

def grabArea():
with Listener(on_click=on_click) as listener:
    listener.join()
pos1 = mouse.position
with Listener(on_click=on_click) as listener:
    listener.join()
pos2 = mouse.position
return pos1[0],pos1[1],pos2[0],pos2[1]

这是我想出的,但对我来说似乎很笨重

此函数将保留 2 个点击点的列表。

def grabArea():
    points = []
    def on_click(x, y, button, pressed):
        if pressed:
            points.append([x, y])
        if not pressed and len(points) == 2:
            return False
    with Listener(on_click=on_click) as listener:
        listener.join()
    return points

positions = grabArea()
position1 = positions[0]
x1, y1 = position1