目前,我正在尝试使用Python来检测鼠标左键何时被按住,然后开始快速发送这个事件,而不是只发送一次。我基本上想做的是,当鼠标左键被按住时,它会再次点击,直到你放开它。但我对整个Xlib有点困惑,我认为它实际上非常混乱。任何关于如何做到这一点的帮助都是非常棒的。这就是我目前所得到的:
#!/usr/bin/env python
import Xlib
import Xlib.display
def main():
display = Xlib.display.Display()
root = display.screen().root
while True:
event = root.display.next_event()
print event
if __name__ == "__main__":
main()
但不幸的是控制台中没有输出。在网上快速搜索后,我发现了以下内容:
root.change_attributes(event_mask=Xlib.X.KeyPressMask)
root.grab_key(keycode, Xlib.X.AnyModifier, 1, Xlib.X.GrabModeAsync,
Xlib.X.GrabModeAsync)
这似乎是为了用给定的键代码捕获特殊事件而导入的。但是首先,如果鼠标左键有什么键码的话?其次,我如何检测它何时被按住,然后开始快速发送mouseclick事件。我真的很感激你的帮助。(也许用热键停止这个脚本也很酷…)
实际上,您希望
Xlib.X.ButtonPressMask | Xlib.X.ButtonReleaseMask
,获取按钮按下和释放的事件(不同于按键按下和释放)。事件是ButtonPress
和ButtonRelease
,而detail
实例变量为您提供按钮号。从你得到新闻事件,到你得到发布事件,你知道按钮被按住了。当然,您也可以在按下某个键时接收键事件并执行其他操作(例如退出脚本)。编辑:此版本对我很好,例如…:
相关问题 更多 >
编程相关推荐