上篇文章介紹了如何利用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時退出。