0

我最近一直在使用 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()

我想让程序在 [website] 的位置打开一个网页。任何解决此问题的帮助将不胜感激!

谢谢!

4

2 回答 2

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
于 2019-06-05T04:36:48.523 回答
0

我知道我对此有点晚了,但也许它仍然可以帮助某人。在将键转换为字符串后,您只是忘记在 Key.esc 周围使用引号。使用:

if str(key) == 'Key.esc':

应该可以正常工作。

我还建议您在return False之前使用,quit()因为否则侦听器线程将不会完全停止并可能继续运行。

于 2021-01-28T20:25:09.760 回答