点击检测+命令:Pynput

Posted

技术标签:

【中文标题】点击检测+命令:Pynput【英文标题】:Click detection + Command: Pynput 【发布时间】:2022-01-01 07:48:40 【问题描述】:

所以,我正在使用 pynput 做一些事情,我想要它,所以每次点击它都会打印一个不同的单词,例如:

Click:
Print("HI")
Click:
Print("WHY")
Click:
Print("BYE")

但我使用的代码是:

def on_click(x, y, button, pressed):
    print(c.format(
        print("HI - Clicked")
        if pressed else
        print("HI - Unclicked"),
        (x, y)))
    if not pressed:
        # Stop listener
        return False
with Listener(
        on_click=on_click) as listener:
    listener.join()

所以在它说(“HI - Unclicked”)并且您再次点击之后,我希望它说(“WHY - Clicked”)和(“WHY - Unclicked”)如果有人知道如何请回复,编辑:请显示我如何为单击播放音频并取消单击列表,例如:['food.wav', 'click.wav'] 谢谢。

【问题讨论】:

你能举例说明你得到的当前输出与你期望的输出吗? 记住print 返回None。在您的 c.format 中,您应该有字符串,而不是 print 函数。 当然,如果您在第一次取消点击后立即杀死侦听器,那么您将永远不会获得第二次点击。 【参考方案1】:

您只需保留一份问候列表并轮流查看。

greets = ["HI", "WHY", "BYE"]
def on_click(x, y, button, pressed):
    greet = greets[0]
    if pressed:
        print(greet, "- Clicked", x, y )
    else:
        print(greet, "- Unclicked", x, y )
        greets.append(greets.pop(0))

with Listener(on_click=on_click) as listener:
    listener.join()

更新

greets = ["gunshot.wav", "you.wav", "cool.wav"]
def on_click(x, y, button, pressed):
    greet = greets[0]
    if pressed:
        pg.mixer.Sound(greet).play()
        print(greet, "- Clicked", x, y )
    else:
        print(greet, "- Unclicked", x, y )
        greets.append(greets.pop(0))

with Listener(on_click=on_click) as listener:
    listener.join()

甚至:

greets = [pg.mixer.Sound(k) for k in ("gunshot.wav", "you.wav", "cool.wav")]
def on_click(x, y, button, pressed):
    greet = greets[0]
    if pressed:
        greet.play()
        print("- Clicked", x, y )
    else:
        print("- Unclicked", x, y )
        greets.append(greets.pop(0))

with Listener(on_click=on_click) as listener:
    listener.join()

【讨论】:

谢谢!但是如何在单击时播放带有列表名称的音频? 谁说过音频?你从来没有提到过。您的应用中已经有声音了吗? 是的,我有音频,但我忘了放播放和音频太抱歉了。 好吧,我不知道你用的是什么音频包。如果您有文本转语音模块,则只需将 greet 字符串传递给该模块即可。 我没有使用 TTS,我使用的是 pygame 的音频功能,例如: /跨度>

以上是关于点击检测+命令:Pynput的主要内容,如果未能解决你的问题,请参考以下文章

屏幕截图小工具的制作过程问题记录 python PIL pynput pyautogui pyscreeze

使用 pynput 进行键盘按下检测

使用 pynput 获取鼠标位置

无法导入 pynput.mouse 控制器、按钮

如何将点击从一个应用程序“镜像”到另一个应用程序?

pynput打包成exe后报错闪退问题