python根據鍵盤輸入進行相應操作


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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM