我有一个问题,我需要捕获来自鼠标的所有事件。浏览网页后,我阅读了有关 evdev 模块的信息并尝试了一下。
我现在有一个脚本,我可以在其中从鼠标中获取所有事件,以防止与其他窗口的其他交互(我最初的问题中的重要点)。有了它,我可以在单击按钮和鼠标移动时读取事件。但是我找不到单击按钮时如何获取光标位置。
#!/usr/bin/env python
# -*- coding: utf8 -*-
from evdev import InputDevice, categorize, ecodes
from os import listdir
from os.path import isfile, isdir, exists, join
def my_list():
print('*** my_list(): begin.')
devices = map(InputDevice, list_devices())
for dev in devices:
print('%-20s %-32s %s' % (dev.fn, dev.name, dev.phys))
print('*** my_list(): end.')
def monitor_device(dev):
for event in dev.read_loop():
if event.type == ecodes.EV_KEY:
print(categorize(event))
print(event)
if __name__ == "__main__" :
dev_path = '/dev/input/event17'
if(exists(dev_path)):
device = InputDevice(dev_path)
try:
device.grab()
monitor_device(device)
except KeyboardInterrupt :
device.ungrab()
print('User aborted the program.')
我怎么能用evdev做到这一点?如果我不能,还有其他方法吗?
任何帮助将不胜感激。:)