来自 pynput 的键盘监听器

2023-12-12

我正在尝试将键盘侦听器导入到我的班级中,但不断收到

NameError: name 'on_press' is not defined

这是我的代码:

from pynput import keyboard
class game_code:

    with keyboard.Listener(on_press=on_press) as listener:
        listener.join()

    def check_key_press(self,key):
       try: k = key.char
       except: k = key.name

       if k in ['up', 'down', 'left', 'right']:
          self.key = keys.append(k)
          return True

        else:
          return False

也不能 100% 确定 with 语句如何工作。


我使用他们在线文档的格式让它工作:

https://pythonhosted.org/pynput/keyboard.html

from pynput.keyboard import Key, Listener

def on_press(key):
    #print('{0} pressed'.format(
        #key))
    check_key(key)

def on_release(key):
    #print('{0} release'.format(
       # key))
    if key == Key.esc:
        # Stop listener
        return False

def check_key(key):
    if key in [Key.up, Key.down, Key.left, Key.right]: 
        print('YES')

# Collect events until released
with Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自 pynput 的键盘监听器 的相关文章

随机推荐

  • 检测何时按下标签栏项目

    我有一个根视图控制器 它没有设置为故事板上任何视图控制器的自定义类 相反 我的所有视图控制器都像这样子类化此类 RootViewController class RootViewController UIViewController UIT
  • Java中字符串结束符

    我正在解决一个简单的问题 在Java中删除字符数组中的某些字符 想法很简单 static void remove char char arr char c int r 0 for int i 0 i lt arr length i if a
  • 实时音频队列录音回放

    嘿伙计们 我正在尝试构建一个用于实时变声的应用程序 第一步 我设法将音频数据录制到指定文件并在录制后播放 现在我尝试更改在循环录制音频缓冲区后立即播放音频缓冲区的代码 我的问题是 如何直接从录音音频队列中读取音频数据 而不是 如文档中所示
  • 从 adb 获取包的可启动活动名称

    有没有办法从使用中获取包的可启动活动adb 对于未root的手机 即无需从中拉出apk data app目录并检查appt 我尝试了 dumpsys 但它不包含有关默认可启动活动的信息 Thanks 您不需要 root 即可从中提取 apk
  • 100% CPU 使用率下的 Java 线程优化

    我有一个应用程序 它接受队列上的工作 然后旋转该工作以在独立线程上完成 线程数量并不多 比如最多 100 个 但这些都是密集型任务 可以快速将 CPU 提升到 100 为了以最快的速度完成最多的工作 当我需要做更多的工作时 我最好只启动更多
  • 杀死在 Matlab 中创建的 Excel 进程

    鉴于我写入工作簿 目前我会终止所有 Excel 进程 以便我的代码在循环调用时可以正常工作 xlswrite path values system taskkill F IM EXCEL EXE 这使得我在处理另一个 Excel 文件时无法
  • Chrome Webstore 内联安装与 AngularJS

    我是 AngularJS 的新手 并尝试按照以下步骤安装 Chrome 扩展网上商店内联安装指南 在我的 html 文件中
  • 使用 Google Sheets API 和服务帐户时收到 403 禁止

    我有一个使用服务帐户的应用程序 因为它从 cron 作业运行 所以我无法让它通过浏览器中的用户进行授权 以下是我创建床单服务的方法 private static final String APPLICATION NAME my app pr
  • XStream 中的单元素数组错误

    如果你有这样的函数 List
  • 动态添加 Django 表单集实例并使用 HTMX POST 的正确方法是什么?

    我正在制作一个表格嵌套动态表单集 using htmx我 想逃避使用JS 但如果没有选择 实例更多表单集字段为了使动态嵌套形式 但是当我POST 仅数据来自1 个实例 of the Chlid formset 最后一个 已发布 表单的其余部
  • jQuery 事件处理程序的 JavaScript 闭包

    我有一个对象列表 每个对象都有一个 bullet 它是一个 SPAN 我想将跨度上的单击绑定到处理程序 而不是使用 jQuery 在跨度上执行特定操作 我看到一些我不理解的行为 所以我希望有人可以解释发生了什么 基本上 第一个代码示例有效
  • 使用鼠标中键滚动按钮禁用浏览器滚动

    我的页面上有一个 Flash 元素 您可以使用鼠标中滚轮与其进行交互 页面很长 因此 当使用鼠标滚轮滚动时 它会与 Flash 元素交互并滚动浏览器窗口 有没有办法在 Flash 元素处于活动状态时禁用浏览器滚动
  • 如何使用 PyQt 在按钮单击时调用 python 脚本

    我使用 PyQt4 创建了一个带有按钮的表单 在此按钮上 我想调用另一个 python 脚本 如下所示 文件1 py import sys from PyQt4 import QtCore QtGui from file1 ui impor
  • Google App Script URLFetch 配额不清楚

    我有兴趣构建一个依赖外部服务的电子表格插件 并且 URLFetch 似乎是使用应用程序脚本执行远程 HTTP S 调用的唯一方法 我已经达到了应用脚本配额页面检查限制 我可以看到它们是 GSuite 计划每天 100 000 个呼叫 Gma
  • 使用正则表达式检测以带重音的大写字母开头的单词

    我想使用 Java 中的正则表达式提取以大写字母开头的单词 包括重音大写字母 这是我对以大写 A 到 Z 开头的单词的条件 if link text matches A Z true 但我也想要以 a 开头的单词accented也是大写字符
  • MASM32 中令人困惑的括号

    我正在尝试掌握 MASM32 但对以下内容感到困惑 我认为括号用于间接寻址 所以如果我有预定义的变量 data item dd 42 then mov ebx item 会将 item 的内容 即数字 42 放入 ebx 中并 mov eb
  • 如何在 MVC Razor 中显示 TimeSpan

    所以我有一个视频的持续时间 以秒为单位 我想在 Razor 中显示该持续时间 目前我正在使用 TimeSpan FromSeconds item Duration ToString 然而我正在使用的其余代码使用 Html DisplayFo
  • angularjs firebase onAuthStateChanged 注销数据库错误

    当我退出应用程序时 出现以下错误 Error permission denied at users KuehJHDJ15SfS1s6FIh1 Client doesn t have permission to access the desi
  • SSLPeerUnverifiedException 与 httpClient

    我正在尝试使用自签名证书测试安全的 http 连接 仅用于开发目的 但我无法解决对等未验证异常 当然我已经查看了有关此异常的类似帖子 以下是我正在使用的当前实现 public class SelfCertificatesSocketFact
  • 来自 pynput 的键盘监听器

    我正在尝试将键盘侦听器导入到我的班级中 但不断收到 NameError name on press is not defined 这是我的代码 from pynput import keyboard class game code with