有没有办法将特殊的非字符键作为字符串类型转换为键类型? (例如 "Key.f12" 到实际的 keyboard.Key.f12 值)

Is there a way to convert a special non-character keys as string type to a key type? (E.g. "Key.f12" to the actual keyboard.Key.f12 value)

我正在使用 pynput 制作一个程序,该程序接受一系列按键,将它们保存到一个文件中,以便稍后模拟这些按键操作。

这适用于字符键('a'、'1'、'#' 等)但不适用于其他键,例如 'esc'、'enter' 和功能键(即 f1-f12)。它只是吐出 'Key.'(例如 'Key.esc' 或 'Key.f12')。可以使用 space、enter 和 tab 等键,我可以为其使用字符串表示(" "、"\n" 和 "\t")

我想知道是否有办法将字符串中的特殊键转换为 'pynput.keyboard.Key' 类型。例如。将"hello worldKey.f12"中的"Key.f12"或"f12"转换为Keyclass的值,Key.f12

我环顾四周,但即使在文档中也找不到任何内容。

换个角度想,在官方文档中,有一个函数调用parse。例如,你想按"Hello world"。在你的文件中保存H-e-l-l-o- -w-o-r-l-d-<Enter>

下次读取文件时,使用.split("-")将它们拆分为一个列表并使用parse来处理them.Here是一个最小的例子:

from pynput import keyboard

# s is the string in the file
s = "H-e-l-l-o- -w-o-r-l-d-<Enter>"

control = keyboard.Controller()
for i in s.split("-"):
    print(i)
    control.press(*keyboard.HotKey.parse(i))
    control.release(*keyboard.HotKey.parse(i))

当你运行这个代码时,它会输入Hello world\n