2017-04-02 155 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

它完美地工作,謝謝。 –