如何在 mac os 中阻止键盘敲击的同时读取小键盘的输入?

问题描述 投票:0回答:1

此人有一个类似的项目,但针对 Linux:https://unix.stackexchange.com/questions/343305/disable-keyboard-but-still-allow-reading-from-it

我想做的是让数字键盘充当启动板。我的目标是消耗来自它的击键,阻止它们进入当前关注的软件。

我尝试了

keyboard
pynput
但都无法阻止当前聚焦的应用程序读取关键事件。我也研究过nodejs方法,但无济于事。

我不想把这个小键盘当作普通键盘使用,所以如果它不能用也没关系,只要我仍然可以响应某些后台软件中的输入即可。

当我询问 ChatGPT 时,它说这可能不是在 MacOS 上可行的项目,这似乎可信。我从未见过有哪个软件会在焦点未聚焦时消耗关键事件。

有可能吗?如果是这样,我如何从小键盘读取输入,同时阻止 mac os 中的击键?

Nodejs 或 Python 会更好,但如果我必须使用编译语言和 XCode,那就是这样。

python node.js macos keystroke event-capturing
1个回答
0
投票

由于我不使用mac os,所以我搜索了键盘布局。通常,键盘上有一个标有“clear”或“numlock”的键,可有效锁定数字键盘。为了从数字键盘读取按键并区分其他数字键,我做了一些挖掘,并找到了关于使用 pynput 来执行此操作的完美帖子。

这是我的代码片段:

from pynput import keyboard
import keyboard as keys #named it keys so it is different from pynput

def on_press(key):
    if hasattr(key, 'vk') and 96 <= key.vk <= 105: #checks if it is numpad
        #do whatever you want with the numpad key

def lock_numpad():
    keyboard.press_and_release('numlock') #on mac os it might be 'clear'

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

这可能会起作用。阅读你的问题时我有点困惑,所以如果我误解了它,我深表歉意。

© www.soinside.com 2019 - 2024. All rights reserved.