上篇文章介绍了如何利用pyhook模块监听鼠标键盘的事件,接下来如果需要通过监听的事件内容,来做对应的操作,需要对event的内容进行相应的判断。
如果仅仅通过event.key来进行判断,可以写成str(evnet.key) == 'F12'等,如果需要退出,则添加一句win32api.PostQuitMessage()即可,在此注意,需要import win32api
但是由于目前需求,不仅仅只是在获取到特定的键值之后退出,而需要在某些其他的键值进行相应的操作,所以对应的,有想到用下面的代码:
def onKeyboardEvent(event): if str(event.Key)=='F12': DELAY = 1 elif str(event.Key)=='F11': INDEX = 1 win32api.PostQuitMessage() return True
尝试之后会报错,但是如果判断条件中有win32api.PostQuitMessage(),那么就不会报错,错误的原因应该是第一个if语句中没有这么一句,经过单独尝试,如果没有win32api.PostQuitMessage()这一句,确实是无法执行的,在网上搜索了之后,也找不到对应的答案,最终决定采用另外一种方法:
def onKeyboardEvent(event): if str(event.KeyID)=='122': global DELAY DELAY = 1 if str(event.KeyID)=='123': global INDEX INDEX = 1 win32api.PostQuitMessage() return True
采用event.KeyID就可以实现需求,进行多次判断,目前还未确定不能使用event.Key的原因,但上述方法需要进行KeyID的获取,此段代码的意图为F11键的时候,进行DELAY = 1的赋值操作,为F12时退出。