10

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

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

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

Почему не Fn?

4 ответа4

15

Аннотация

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

Технические детали

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

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

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

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

заявка

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

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

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

Заметка

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

5

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

1

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .