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


10

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

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

它不起作用。ShiftCtrl并且Alt与外部键盘一起使用时可以正常工作。

为什么不Fn呢?

Answers:


15

抽象

正如其他人指出的那样,Fn密钥是内部处理的特殊情况。我将提供技术说明。

技术细节

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

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

现在的Fn钥匙很特别。当您单独按下它时,什么也不会发生,因为它只是一个修饰键,而并非(通常)意味着自己要做任何事情。当您按住它并按另一个键时,键盘控制器会检测到它,并在其内置表中查找以查看是否为已知组合。如果该组合不在表中,则它会忽略它,但是如果该组合在表中,则它将查找关联的扫描代码并将其发送。

操作系统最终会看到什么?它并不能看到的扫描码Fn键和其他按键扫描码。相反,它将看到与Fn-combo所设置的任何功能相关联的单个扫描代码。例如,如果便携式计算机制造商已将Fn+ Down Arrow组合键设置为减小音量,则OS会看到与Volume Down某些键盘实际上具有的关联的扫描代码。

应用

那么,如何解释为什么握住Fn笔记本电脑并按外部键盘上的键不起作用?很简单,因为笔记本电脑中的键盘和外接键盘各自具有自己的控制器。就笔记本电脑中的控制器而言,您按下并释放了该Fn键,而对于外部控制器中的控制器而言,您按下并释放了另一个键。操作系统看到什么?可以看到您仅按下了另一个键而没有任何修饰符。

示范

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

注意

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


5

Fn组合键通常会使键盘界面发出不同的信号。由于Fn操作系统无法解释该键,因此,由于键盘界面未在监听其他键盘,因此不可能有简单的方法将其与其他键盘上的键一起使用并获得相同的结果。


1

我之所以说是因为ShiftCtrlAlt动作在所有计算机上都相同。这些是标准密钥。

Fn功能是笔记本电脑特有的-一些笔记本电脑上需要某些驱动程序才能使其正常运行,因此,笔记本电脑可能会监听Fn功能和笔记本电脑的箭头键以执行操作,这与刚刚使用的外接键盘不同不管Fn键如何,都可以像普通的“上/下”键一样。


但是向上箭头很常见,我正在使用笔记本电脑键盘上的功能键
。.– Lazer

但是我的意思是必须在笔记本电脑上同时按下Fn键和向上箭头,才能启动该功能,因为笔记本电脑上的驱动程序/软件会监听这些键。按下箭头键时,USB键盘可能不会发送相同的“信号”,因此就笔记本电脑而言,实际上只按下了Fn键,因为两者之间没有“链接”。
Muffinbubble 2011年

0

我认为(自己没有尝试过)外部键盘不包含笔记本电脑键盘所包含的程序。我猜想,如果您可以访问笔记本电脑键盘上的FN键,也可以访问笔记本电脑键盘上的上/下键,请在插入外接键盘的情况下使用它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.