使用Python做一个监听鼠标键盘(全局的)的代码实现。
代码一:这个代码较为简单,只实现了监听键盘。不过感觉上,它比“代码二”,更为基础。
1 #!/usr/bin/env python 2 #--*-- coding: UTF-8 --*-- 3 4 from evdev import InputDevice; 5 from select import select; 6 7 def detectInputKey(): 8 dev = InputDevice('/dev/input/event4'); 9 while True: 10 select([dev], [], []); 11 for event in dev.read(): 12 print "code:%s value:%s" % (event.code, event.value) 13 14 detectInputKey();
代码二:这个代码用到的组件,感觉比“代码一”更为高级。
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # 4 5 import pythoncom 6 import pyHook 7 8 def onMouseEvent(event): 9 # 监听鼠标事件 10 print "MessageName:", event.MessageName 11 print "Message:", event.Message 12 print "Time:", event.Time 13 print "Window:", event.Window 14 print "WindowName:", event.WindowName 15 print "Position:", event.Position 16 print "Wheel:", event.Wheel 17 print "Injected:", event.Injected 18 print "---" 19 20 # 返回 True 以便将事件传给其它处理程序 21 # 注意,这儿如果返回 False ,则鼠标事件将被全部拦截 22 # 也就是说你的鼠标看起来会僵在那儿,似乎失去响应了 23 return True 24 25 def onKeyboardEvent(event): 26 # 监听键盘事件 27 print "MessageName:", event.MessageName 28 print "Message:", event.Message 29 print "Time:", event.Time 30 print "Window:", event.Window 31 print "WindowName:", event.WindowName 32 print "Ascii:", event.Ascii, chr(event.Ascii) 33 print "Key:", event.Key 34 print "KeyID:", event.KeyID 35 print "ScanCode:", event.ScanCode 36 print "Extended:", event.Extended 37 print "Injected:", event.Injected 38 print "Alt", event.Alt 39 print "Transition", event.Transition 40 print "---" 41 42 # 同鼠标事件监听函数的返回值 43 return True 44 45 def main(): 46 # 创建一个“钩子”管理对象 47 hm = pyHook.HookManager() 48 49 # 监听所有键盘事件 50 hm.KeyDown = onKeyboardEvent 51 # 设置键盘“钩子” 52 hm.HookKeyboard() 53 54 # 监听所有鼠标事件 55 hm.MouseAll = onMouseEvent 56 # 设置鼠标“钩子” 57 hm.HookMouse() 58 59 # 进入循环,如不手动关闭,程序将一直处于监听状态 60 pythoncom.PumpMessages(10000) 61 62 if __name__ == "__main__": 63 main()
浙公网安备 33010602011771号