2017-04-02 237 views
1

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

我基本上是试图创建一个桌面自动化(非常简单和重复的工作,但布局确实改变,这就是为什么重新记录坐标是关键)为一个灵活的简单宏节的坐标列表。

我已经通过“自动化无聊的东西”,并不能得到pyautogui记录位置(它确实执行鼠标位置完美,但不是预录制列表)。这也不能局限于pygame中的情况。

我是一个noob任何意见,将不胜感激。我收录了我收到的错误图片。列表部分不包括在内,我将在稍后添加。

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() 

enter image description here

回答

2

你还没有从中导入pynput包只mouse。 所以不是

pynput.mouse.Listener.stop 

你应该使用

mouse.Listener.stop 

鼠标事件在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 
+0

感谢您的答复,其打印每个终端完美地点击,但它仍然超过了“而循环语句”小于10,好像我被困在了一个实例听众,而不会像我预料的那样递增,现在会读更多。 –

+0

是的,这是另一个问题,事件在'on_click'函数中处理,所以你应该在那里计数。我举了一个答案的例子。 – quantummind

+0

它完美地工作,谢谢。 –