Почему клавиша Fn на моем ноутбуке не работает при использовании внешней клавиатуры?

10

На моем Dell Latitude E6400 клавиши со стрелками вверх и вниз используются для изменения яркости экрана при использовании с Fnклавишей.

Я подключил внешнюю клавиатуру через USB и попытался увеличить яркость, нажимая Fnклавишу на клавиатуре ноутбука и стрелку вверх на внешней клавиатуре.

Это не работает. Shift, CtrlИ Altкорректно работать при использовании этого способа с внешней клавиатурой.

Почему нет Fn?

Lazer
источник

Ответы:

15

абстрактный

Как указали другие, этот Fnключ - особый случай, который обрабатывается внутри. Я предоставлю техническое объяснение.

Технические подробности

Когда вы нажимаете клавишу на клавиатуре, контроллер клавиатуры (небольшая микросхема внутри клавиатуры) обнаруживает электрическую цепь и обрабатывает ее, чтобы декодировать, какая клавиша была нажата, а затем отправляет скан-код на материнскую плату. Операционная система получает скан-код из BIOS, а затем выполняет все необходимые действия для обработки этого нажатия клавиши.

С большинством клавиш это достаточно просто. Если вы нажмете Aклавишу, ее клавиатурный контроллер отправит скан-код на материнскую плату, которая затем передаст его ОС, которая, в свою очередь, обычно печатает «А». (Если ОС обнаруживает, что одна из клавиш-модификаторов в настоящее время удерживается нажатой, она может делать что-то другое. Фактически вы можете настроить ее так, чтобы она выполняла все, что вы хотите, когда Aклавиша нажата с модификаторами или без них.)

Теперь Fnключ особенный. Когда вы нажимаете ее самостоятельно, ничего не происходит, потому что она является исключительно клавишей-модификатором и (как правило) не предназначена для самостоятельных действий. Когда вы удерживаете ее и нажимаете другую клавишу, контроллер клавиатуры обнаруживает это и просматривает встроенную таблицу, чтобы определить, является ли она известной комбинацией. Если комбинация отсутствует в таблице, она просто игнорирует ее, но если комбинация находится в таблице, она ищет соответствующий скан-код и отправляет его.

Что в итоге видит ОС? Он не видит скан-код для Fnключа и скан-код для другого ключа. Вместо этого он видит один скан-код, связанный с любой функцией, для которой было установлено Fn-combo. Например, если производитель ноутбука установил комбо Fn+ Down Arrowдля уменьшения громкости, то ОС видит скан-код, связанный с тем Volume Down, что на самом деле есть у некоторых клавиатур.

заявка

Так как же это объяснить, почему не работает удерживание Fnноутбука и нажатие клавиши на внешней клавиатуре? Все просто, потому что у клавиатуры ноутбука и внешней есть свои контроллеры. Насколько контроллер в ноутбуке видит, вы нажали и отпустили Fnклавишу, а на внешнем контроллере вы нажали и отпустили другую клавишу. Что видит ОС? Он видит, что вы только нажали другую клавишу без каких-либо модификаторов.

демонстрация

Вы можете видеть, что Fnобработка ключей особенная с помощью простого теста. Подключите две внешние клавиатуры к ноутбуку (таким образом, вы получите три клавиатуры). Удерживайте Ctrlклавишу на одной клавиатуре, Shiftклавишу на другой, а затем нажмите Escapeклавишу на третьей. Диспетчер задач Windows должен появиться. Почему? Поскольку Windows получила коды сканирования для всех трех клавиш, по одному от каждого из трех контроллеров клавиатуры. (Это был пример Windows, но нажатие комбинаций клавиш таким образом должно работать аналогично в других операционных системах. Например, даже в DOS вы можете перезагрузить систему, нажав Ctrl+ Alt+ Deleteна разных клавиатурах.)

Заметка

Примечание: информация о том, как Fnэто специально обрабатывается, и вытекающие из этого ограничения на его использование носят общий характер и основаны на общих реализациях. Ничто не мешает производителю ноутбуков принять решение реализовать его по-другому и позволить пользователю переназначить клавишу на какую-то другую функцию, предоставить эмулированную Fnклавишу на внешней клавиатуре через определенный аккорд и т. Д. Фактически, даже нет официального стандарта для Fnключа; большинство производителей просто используют ту же реализацию, что и другие, потому что это дешевле, а изменение привычных пользователей обычно не очень хорошо.

Synetech
источник
5

FnКомбинации клавиш обычно заставляют интерфейс клавиатуры излучать разные сигналы. Поскольку Fnклавиша не интерпретируется операционной системой, вероятно, нет простого способа использовать ее с клавишами на другой клавиатуре и получить такой же результат, поскольку интерфейс клавиатуры не слушает другую клавиатуру.

Игнасио Васкес-Абрамс
источник
1

Я бы сказал, потому что Shift , Ctrl и Alt действуют одинаково на всех компьютерах. Это стандартные ключи.

Функции Fn специфичны для ноутбука - некоторые из них нуждаются в определенных драйверах для ноутбука, чтобы они работали правильно, поэтому ноутбук, вероятно, прислушивается к функции Fn и клавишам клавиатуры ноутбука для выполнения действия, в отличие от внешней клавиатуры, которая только что была обработана как ваши обычные клавиши «вверх и вниз», независимо от клавиши Fn.

Muffinbubble
источник
но стрелка вверх распространена, и я использую функциональную клавишу на клавиатуре ноутбука ..
Lazer
Но я имею в виду, что клавиша Fn и стрелка вверх должны быть нажаты на ноутбуке, чтобы активировать функцию, когда драйвер / программное обеспечение на ноутбуке прослушивает эти клавиши. Клавиатура USB, вероятно, не посылает тот же самый «сигнал» при нажатии клавиши со стрелкой, поэтому, если речь идет о ноутбуке, на самом деле нажимается только клавиша Fn, поскольку между ними нет «связи».
Muffinbubble
0

Я думаю (не пробовал сам), что внешняя клавиатура не содержит программ, которые выполняет клавиатура ноутбука. Я предполагаю, что если у вас есть доступ к клавише FN на клавиатуре ноутбука, у вас также есть доступ к клавишам вверх / вниз на клавиатуре ноутбука, просто используйте их, если она работает с подключенной внешней клавиатурой.

bmbaeb
источник