我可以通过以下方式确定当前鼠标指针的位置:
from Xlib.display import Display
display = Display()
qp = display.screen().root.query_pointer()
print(qp.root_x, qp.root_y)
我如何也可以通过Xlib获得当前鼠标按钮的状态,例如按下/释放左/右按钮? (或者,如果不可能,为什么不呢?)
解决方法:
您的X窗口必须支持XInput扩展. Real X可以使用,但是如果X服务器不支持VNC服务器等扩展名,则无法使用鼠标键.
如果X服务器支持它,则可以进入鼠标状态,如下所示:
from Xlib.display import Display
from Xlib.ext import xinput
display = Display()
import time
while True:
buttons = []
for device_info in display.xinput_query_device(xinput.AllDevices).devices:
if not device_info.enabled:
continue
if xinput.ButtonClass not in [ device_class.type for device_class in device_info.classes ]:
continue
buttons.append(device_info)
for button in buttons:
for device_class in button.classes: