2017-04-02 99 views
1

제한된 수의 마우스 클릭 (이 경우 변수 10)의 x 및 y 좌표를 기록하고 추가하고 싶습니다. 스크립트는 데스크톱, 브라우저 또는 일반적으로 응용 프로그램에 대한 클릭 수를 기록해야합니다.파이썬 목록 마우스 클릭 좌표

기본적으로 데스크탑 자동화를위한 더 큰 프로그램의 유연한 간단한 매크로 섹션에 대한 좌표 목록을 만들려고합니다 (매우 간단하고 반복적 인 작업이지만 레이아웃이 변경되어 좌표를 다시 기록하는 것이 핵심 임).

필자는 "지루한 것들 자동화"를 통해 검색했으며 위치를 기록하기 위해 pyautogui를 얻지 못했습니다 (마우스 위치는 완벽하게 실행하지만 사전 녹음 목록은 실행하지 않습니다). 또한 이것은 파이 게임의 경우처럼 단일 프레임으로 제한 될 수 없습니다.

Im 어떤 의견이든 부탁드립니다. 내가받은 오류의 이미지를 포함 시켰습니다. 목록 부분은 포함되어 있지 않지만 나중에 추가 할 것입니다.

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 

당신은 while 루프가 쓸모가

mouse.Listener.stop 

마우스 이벤트가 on_click 함수에서 처리됩니다 사용해야합니다. 그 모든 터미널에 완벽하게 클릭 인쇄 응답을

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

완벽하게 작동합니다. 감사합니다. –