Python模块(键盘)无法识别“ fn​​”键

时间:2019-11-23 21:36:08

标签: python python-3.x keyboard-shortcuts

我想将功能键用作python(3.6)的键盘快捷键的一部分,并且它无法识别fn键事件。

-Werror

1 个答案:

答案 0 :(得分:0)

keyboard project不支持fn键,否。 keyboard.all_modifiers set向您展示了它可以支持的内容。

在产生以下内容的Mac上:

>>> import keyboard
>>> keyboard.all_modifiers
{'alt', 'ctrl', 'windows', 'shift'}

请注意,Fn可能对操作系统不可见。来自Wikipedia

  

Fn键是元修饰符键的一种形式,因为当按下键盘上的其他键时,它会导致操作系统看到更改的扫描代码。这使键盘可以直接模拟全尺寸键盘,因此操作系统可以使用为全尺寸键盘设计的标准键盘映射。 但是,由于操作系统没有Fn键的概念,因此与所有其他标准键盘键不同,该键通常无法在软件中重新映射。

(强调粗体的人)。

Apple Macs除外,我可以肯定地确定Windows并非如此。

Mac的支持仍处于试验阶段,来自项目描述:

  

可与Windows和Linux配合使用(需要sudo),具有实验性的OS X支持(感谢@glitchassassin!)。

(强调粗体的人)。

跟踪该项目的项目(#221, Unable to detect the top row of keys on Mac keyboard as function keys)已经存在一个未解决的问题。

对于Windows和Linux,请尝试捕获fn+down实际转换为操作系统的键码(使用keyboard.hook() callback,请参见this example),然后执行该键码。

如果fn + down控制您的音量,只需使用"volume down"或整数值0xae作为扫描代码:

keyboard.send(0xae)