为什么笔记本电脑上的 Fn 键与外接键盘一起使用时不起作用?

Laz*_*zer 10 laptop keyboard function-keys

在我的 Dell Latitude E6400 上,向上和向下箭头键用于在与该键一起使用时更改屏幕亮度Fn

我通过 USB 连接了一个外部键盘,并尝试在按下Fn笔记本电脑键盘上的键和外部键盘上的向上箭头的同时增加亮度。

这没用。ShiftCtrlAlt在以这种方式与外部键盘一起使用时正常工作。

为什么不Fn呢?

Syn*_*ech 15

抽象的

正如其他人所指出的,Fn关键是内部处理的特殊情况。我会提供技术说明。

技术细节

当您按下键盘上的某个键时,键盘控制器(键盘内部的一个小 IC 芯片)会检测电路并对其进行处理以解码按下了哪个键,然后将扫描码发送到主板。操作系统从 BIOS 接收扫描码,然后执行它需要的任何操作以处理该按键。

对于大多数键,这很简单。如果您按下该A键,其键盘控制器会将扫描码发送到主板,然后主板将其传递给操作系统,操作系统通常会打印“A”。(如果操作系统检测到其中一个修饰键当前被按下,那么它可能会做一些不同的事情。实际上,您可以将其配置为在A使用或不使用修饰符按下该键时执行您想要的任何操作。)

现在Fn关键是特殊的。当您单独按下它时,没有任何反应,因为它只是一个修饰键,并且(通常)并不意味着自己做任何事情。当您按住它并按下另一个键时,键盘控制器会检测到并查看其内置表格以查看它是否是已知组合。如果组合不在表中,则它只是忽略它,但如果组合在表中,则查找关联的扫描码并发送。

操作系统最终会看到什么?它并不能看到的扫描码Fn键和其他按键扫描码。相反,它会看到与 Fn 组合已设置为的任何功能相关联的单个扫描码。例如,如果笔记本电脑制造商设置了Fn+Down Arrow组合键来减小音量,那么操作系统会看到与Volume Down某些键盘实际具有的相关联的扫描码。

应用

那么这如何解释为什么拿着Fn笔记本电脑并按外部键盘上的键不起作用呢?很简单,因为笔记本电脑的键盘和外接的键盘都有自己的控制器。就笔记本电脑中的控制器而言,您按下并释放了该Fn键,而在外部控制器中,您按下并释放了另一个键。操作系统看到什么?它看到您只按下了另一个键而没有任何修饰符。

示范

您可以Fn通过一个简单的测试看到密钥处理的特殊性。将两个外部键盘插入笔记本电脑(从而为您提供三个键盘)。按住Ctrl一个键盘上的键,按住另一个键盘上的Shift键,然后按下Escape第三个键盘上的键。Windows 任务管理器应该会弹出。为什么?因为 Windows 收到了所有三个键的扫描码,三个键盘的控制器中的每一个都有一个。(这是一个 Windows 示例,但是以这种方式按下组合键在其他操作系统中应该是一样的。例如,即使在 DOS 中,您也可以通过在不同键盘上按Ctrl+ Alt+来重新启动系统Delete。)

笔记

注意:有关如何Fn特殊处理的信息以及由此产生的使用限制的信息只是一般性的,基于常见的实现。没有什么能阻止笔记本电脑制造商决定以不同的方式实现它并允许用户将键重新映射到其他功能,Fn通过某些特定和弦在外部键盘上提供模拟键等。 事实上,甚至没有官方标准为Fn钥匙;大多数制造商只是使用其他人使用的相同实现,因为它更便宜,改变用户习惯的东西通常不好。


Ign*_*ams 5

Fn组合键通常会导致键盘接口发出不同的信号。由于Fn操作系统不解释该键,因此可能没有简单的方法可以将它与不同键盘上的键一起使用并获得相同的结果,因为键盘接口没有侦听另一个键盘。


Muf*_*ble 1

我会这么说,因为ShiftCtrlAlt在所有计算机上的操作都是相同的。这些是标准按键。

Fn 功能特定于笔记本电脑 - 有些功能需要笔记本电脑上的某些驱动程序才能正常运行,因此笔记本电脑可能会侦听 Fn 功能和笔记本电脑箭头键来执行操作,而不是仅处理外部键盘与正常的“向上和向下”键一样,无论 Fn 键如何。