为什么 pynput 不检测数字键盘按下?

2023-12-09

我在 Windows 7 上使用 python 3.7。

有没有办法检测 pynput 模块中的数字(例如:“1”)按键?

我尝试了很多其他模块,但除了 tkinter 之外我什么也没得到 它需要一个窗户,但我不想要那个。

from pynput import keyboard  
def on_press(key):
     print(key)
     if str(format(key)) == 'Key.1':
         print('Exiting...')
         return False 
with keyboard.Listener(on_press = on_press) as listener:
     listener.join()

它实际上只打印按下的键并且从不刹车(不接受数字输入)。


您的代码正在测试该值"1"。这是,请原谅我陈述了显而易见的事情,什么pynput如果按下则返回1钥匙。您想要回复NumLock key.

代替

if str(format(key)) == '1':

您可以编写这些测试中的任何一个,这两个测试都会检查您正在查找的值:

if key == keyboard.Key.num_lock:

if str(format(key)) == "Key.num_lock":

但是……有两种NumLock key.

One is 键盘数字锁定和清除它同时具有 USB 代码 (0x53) 和 Windows 虚拟键代码 (0x90)。pynput将响应按此键。

另一种是键盘锁定数字锁定它在键盘级别起作用:它改变了键盘的行为方式,而 Windows 听不到它。它有一个 USB 代码 (0x83),但没有 Windows 虚拟键代码。如果该键没有虚拟键码,则不会出现按下该键的 Windows 消息,并且pynput报告 Windows 消息。

因此,该行为取决于硬件,您的机器可能具有第二种NumLock钥匙。如果是这样,那么你无话可说pynput会有帮助的。不过,除非您使用的是非常有限的笔记本电脑键盘,否则这种情况不太可能发生。

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

为什么 pynput 不检测数字键盘按下? 的相关文章

随机推荐

  • UILocalNotification 重复

    我想在每周日和周一重复 我怎样才能实现这个目标 尝试设置 2 个通知 其中一个是周日fireDate另一个是星期一fireDate并将两个重复间隔设置为NSWeekCalendarUnit
  • 通过所有必需点到达终点

    给定一个宽度为 W 高度为 H 的网格 其中包含 5 种类型的符号 S means starting position E means ending position C means checkpoints means open posit
  • Maven 不下载代理后面的 jar

    Maven 无法下载代理后面的 jar 依赖项 这是我的 pom xml
  • Hbase 类NotFoundException

    我想运行一个地图缩减示例 package my test import java io IOException import java util HashMap import java util Map import java util M
  • 调试 SignalR 挂起

    Windows 7 SignalR2 我有一些 HelloWorld SignalR 代码 可以在一个 VS2013 项目 即我的 SignalR hello world Playground 中运行 当我将相同的代码添加到现有应用程序时
  • Joomla v1.5 插件 sys.ini 语言文件

    Joomla v1 5 插件可以使用 sys ini 语言文件吗 我想在插件安装期间使用它 因为在安装过程中无法访问默认语言 ini 文件 因此 安装管理器仅输出语言关键常量 例如 PLG MY PLUGIN DESCRIPTION 我在
  • Watson 对话意图和实体是否支持正则表达式?

    我正在使用我公司想要创建的可能对话来测试 Watson Conversation API 我们正在使用巴西葡萄牙语进行开发 鉴于葡萄牙语是一种丰富的语言 有时用户可能会犯错误 我们希望预测这些可能的错误 主要是特殊字符和重音符号 例如 单词
  • 我可以创建一个带有弧形底部的 div 吗?

    所以我正在开发一个网站 我想知道是否可以纯粹使用 HTML5 CSS3 如果需要的话还可以使用 JavaScript 制作一个底部弯曲的 div 所以它实际上看起来像这样 或者只能使用背景图像来完成 div class navbar nav
  • 如何在用户输入的输入类型=文本中附加%符号?

    我正在使用数字微调器 并且默认情况下我希望输入在文本框中包含 符号 我尝试使用跨度 但它在框外添加了符号 您可以使用一个简单的 css 技巧来实现这一点 只需将其添加到您的代码中即可 spinner input padding right
  • 我可以在 Unix 中运行 jshell 吗?

    我想使用expect重定向jshell输入 以便我可以在录制的演示中模拟输入 但是 尽管我可以从 Expect 脚本生成一个 jshell 进程 该进程也可以识别 jshell 提示符 但之后就没有任何效果了 期望输出看起来像控制序列 例如
  • 如何在 verilog 中不使用 while() 循环(用于综合)?

    我已经养成了开发大量测试平台并使用 for 和 while 循环进行测试的习惯 没关系 问题是我已经将这种习惯用于对应该可综合的电路进行编码 XST等拒绝合成代码 无需对合成参数进行额外修改 例如 while num lt test num
  • ImageButton 高度问题

    下午好 我正在尝试创建带有阴影的 ImageButton 要做到这一点
  • 选择 Pandas 中特定月份的行

    我有一个包含 10 多年来 12 小时数据的数据框 所有数据均按日期存储 我想提取包含特定月份数据的列 请注意 该月份不是标准的 1 2 3 格式 我的 日期 列的行如下所示 01 May 07 02 May 07 31 Oct 17 如何
  • 检索文档数据,其中条件值是子集合值

    我在 firestore 上的数据库如下所示 Candidates ID 1 likeDislikeSuper ID 1 data value n ID 2 likeDislikeSuper ID 2 data valu
  • 邻区信息不准确

    我正在尝试利用有关相邻小区的移动信息 该信息可在 Android 上通过TelephonyManager类及其getNeighboringCellInfo方法 下面我发布了完成这项工作的一部分代码 主要取自公开来源 以及该代码产生的输出的一
  • 具有变异状态的 JavaScript 日志记录对象[重复]

    这个问题在这里已经有答案了 这段 JavaScript 代码 var o console dir o o foo bar console dir o results in the same interactive tree output s
  • 如何在Android中集成Azure媒体播放器

    我有一个必须播放的清单流媒体网址 如何在android中集成azure媒体播放器来播放流视频 我找到了另一种解决方法来播放清单网址 只需连接即可 format m3u8 aapl v3 在网址末尾 您可以使用任何视频播放器播放此网址
  • 类型转换和初始化,在 Swift 中哪个更好?

    由于Swift对类型做了严格的检查 有时我们需要在NSString和String NSArray和 AnyObject 等之间进行转换 但实际上有两种不同的方法可以做到这一点 类型转换 例如str as String 初始化 比如Strin
  • 在 Angular 中取消提交表单

    我需要一个表格才能两者兼而有之 dirty并不是 submitted为了我的验证工作 我正在尝试通过 CSS 使用 ng invalid ng dirty and ng submitted由 Angular 动态添加的类 这意味着我不能简单
  • 为什么 pynput 不检测数字键盘按下?

    我在 Windows 7 上使用 python 3 7 有没有办法检测 pynput 模块中的数字 例如 1 按键 我尝试了很多其他模块 但除了 tkinter 之外我什么也没得到 它需要一个窗户 但我不想要那个 from pynput i