問題は、私は止めることはできないですPythonでWindowsマウスハンドラを停止するには?
def start_mouse():
"""Staring the mouse click recording"""
global root, FLAG, CLICKS, T, q, timeList, clickThreadId
q = Queue.Queue()
threading.Thread(target=stack).start()
clickThreadId = win32api.GetCurrentThreadId()
def onclick(event):
"""Mouse handler"""
global timeList, T, FLAG, q
timeList.append(int(round(time.time() * 1000)))
Tt = timeList[-1] - timeList[-2]
print event.Position[0],event.Position[1], Tt
if FLAG == 2:
temp_l =str(event.Position[0])+","+str(event.Position[1])+","+str(Tt)+"\n"
q.put_nowait(str("x: "+str(event.Position[0])+" "+"y: "+str(event.Position[1])+" "+"t: "+str(Tt)+"\n"))
CLICKS.append(temp_l)
return True
私はマウスの自動化プログラムを作り、私は方法(root.after(1000年、start_mouse))「の後に」Tkinterのと呼んで以下の機能を持っています(ボタンの後ろ)機能付きプロセス:
win32api.PostThreadMessage(clickThreadId, win32con.WM_QUIT, 0, 0)
だから、すべてが正常に動作しているが、私はroot.destroyを呼び出すとき()私は2つのバックグラウンドプロセスが残っていますし、私のカーソルが約5秒間フリーズします。 誰もこれを処理する方法を知っていますか?
あなた自身で 'WM_QUIT'を投稿することは許されておらず、' PostThreadQuitMessage() 'もありません。代わりに、他のプロセスのメインウィンドウに 'WM_CLOSE'を送信してみてください。 – andlabs