在wxPython中使用PyHook的问题?
因为要做全局的事件监听。用了Pyhook做全局的鼠标监听。。但是程序经常假死。不知道什么原因。。求解。。。
#Pyhook监听线程启动类
class StartEventListener(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.thread_stop = False
def run(self):
hm = pyHook.HookManager()
hm.MouseLeftUp=sy.ListenerMouseLeftUp#监听全局鼠标右键弹起
hm.MouseLeftDown=sy.MouseLeftDown#监听全局鼠标右键按下
hm.MouseMove=sy.MouseMoveEvent#监听全局鼠标移动
hm.HookMouse()#不监听鼠标事件,只监听键盘事件程序运行正常。。。。
hm.KeyDown = sy.ListenerKeyboard
hm.HookKeyboard()
pythoncom.PumpMessages()
def stop(self):
self.thread_stop =True
if __name__=="__main__":
eventListener=StartEventListener()
app=wx.PySimpleApp(0)
frame=MainFrame()
frame.Maximize()
frame.Show()
eventListener.setDaemon(True)
eventListener.start()#启动监听线程|不启动程序正常,启动后程序经常假死
app.MainLoop()
[解决办法]
用wx.PostEvent()好像可以,有人已经做出来了,不过好像也是有点问题。
这东西好像也得看点资料才行,不是一下能写出来
http://sourceforge.net/projects/pyhook/forums/forum/850395/topic/3672048