此人有一个类似的项目,但针对 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,那就是这样。
由于我不使用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()
这可能会起作用。阅读你的问题时我有点困惑,所以如果我误解了它,我深表歉意。