我最近一直在使用Pynput来尝试一些新程序。在一个这样的程序中,我打算在每次单击鼠标时都打开一个网页(或多或少的一个玩笑程序,但我可能会用它来帮助其他Pynput程序)。只要单击鼠标即可打开网页,但我尝试实现的killswitch效果不佳。单击转义后,脚本绝对不会返回任何内容。
总体来说,我对Pynput来说还很陌生,所以我对此并不感到惊讶。我怀疑问题可能出在最后的“ listener1”块中。这是代码:
#!/usr/bin/env python
from pynput import mouse
from pynput import keyboard
from pynput.keyboard import Key, Listener
import webbrowser
def on_release(key):
if str(key) == Key.esc:
quit()
def on_click (x, y, button, pressed):
webbrowser.open('[website]')
listener1 = mouse.Listener(
on_click=on_click)
listener1.start()
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
我希望该程序在[网站]处打开一个网页。在解决此问题方面的任何帮助将不胜感激!
谢谢!
答案 0 :(得分:0)
我对Pynput不太了解,但看来您对打开的浏览器命令没有流控制。
也许看起来应该像这样:
def on_click (x, y, button, pressed):
listener1.start()
with keyboard.Listener(on_press=on_press,on_release=on_release) as
listener:listener.join()
listener1 = mouse.Listener(on_click=on_click)
if listener1:
webbrowser.open('[website]')
else:
break
答案 1 :(得分:0)
我知道我有点晚了,但也许它仍然对某人有帮助。在将键转换为字符串后,您只是忘记在 Key.esc 周围使用引号。使用:
if str(key) == 'Key.esc':
应该可以正常工作。
我还建议您在 return False
之前使用 quit()
,否则侦听器线程不会完全停止并可能继续运行。