如何使用Python Xlib监控鼠标事件而不是捕获它们?

1 投票
2 回答
3579 浏览
提问于 2025-04-15 21:17

我需要在Python中使用Xlib来监控和过滤鼠标事件。

到目前为止,我发现这段代码可以接收到事件,但它不把这些事件传递出去,所以我实际上无法再对鼠标进行任何操作。

from Xlib.display import Display
from Xlib import X

display = Display(':0')
root = display.screen().root

root.grab_pointer(True, X.ButtonPressMask | X.ButtonReleaseMask, X.GrabModeAsync, X.GrabModeAsync, 0, 0, X.CurrentTime)

while True:
    print "Event:"
    print display.next_event()

我找到的其他选择是使用

root.change_attributes(event_mask=X.ButtonPressMask | X.ButtonReleaseMask)

但这个根本不管用,或者使用Xlib的RECORD扩展,但我搞不懂它是怎么工作的。

2 个回答

2

这个链接坏掉了。我觉得这是最新的链接:http://github.com/pepijndevos/PyMouse/blob/master/pymouse/unix.py 第58行

0

这个回答的意思是可以使用Xlib和RECORD,具体的结果可以在这里看到:http://github.com/pepijndevos/PyMouse/blob/master/unix.py#L38

撰写回答