2017-04-02 17 views
1

限られた数のマウスクリック(この場合は変数10)のx座標とy座標を記録してリストに追加したいと思います。スクリプトは、一般的にデスクトップ、ブラウザまたはアプリケーション上でクリックを記録する必要があります。pythonリストのマウスクリック座標

私は基本的に、デスクトップオートメーション用のより大きなプログラムの柔軟なシンプルなマクロセクションのための座標リストを作成しようとしています(非常に単純で反復的な作業ですが、レイアウトが変更されて、

私は "退屈なものを自動化"して検索し、位置を記録するためにpyautoguiを得ることはできません(マウスの位置は完全には実行されますが、事前記録リストは実行されません)。また、これは、パイゲームの場合のように、単一のフレームに限定することはできません。

私は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

あなただけmouseそれからpynputパッケージをインポートしていません。 ので、代わりの

pynput.mouse.Listener.stop 

あなたは、マウスイベントがon_click機能で処理され、whileループは無用である

mouse.Listener.stop 

を使用する必要があります。端末毎に完全にクリックし、応答のための

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未満である、それはまだ私は1つのインスタンスで立ち往生していますように思える、超えて:あなたはそれを使用することができますリスナーとそれが私が期待していたように増加していないと、今読んでいます。 –

+0

はい、それは別の問題です。イベントは 'on_click'関数で処理されるので、そこに数えてください。私は答えの例を挙げます。 – quantummind

+0

それは完璧に動作します、ありがとう。 –

関連する問題