Por que a tecla Fn no meu laptop não funciona quando usada com um teclado externo?


10

No meu Dell Latitude E6400, as teclas de seta para cima e para baixo são usadas para alterar o brilho da tela quando usadas com a Fntecla.

Conectei um teclado externo via USB e tentei aumentar o brilho enquanto pressionava a Fntecla do teclado do laptop e a seta para cima do teclado externo.

Não funcionou. Shift, CtrlE Alttrabalho corretamente quando usado desta forma com um teclado externo.

Por que não Fn?

Respostas:


15

Resumo

Como outros indicaram, a Fnchave é um caso especial tratado internamente. Vou fornecer a explicação técnica.

Detalhes técnicos

Quando você pressiona uma tecla do teclado, o controlador do teclado (um pequeno chip de IC dentro do teclado) detecta o circuito elétrico e o processa para decodificar qual tecla foi pressionada e depois envia o scancode para a placa-mãe. O sistema operacional recebe o scancode do BIOS e, em seguida, executa qualquer ação necessária para processar o pressionamento de tecla.

Com a maioria das chaves, isso é bastante simples. Se você pressionar a Atecla, o controlador do teclado envia o scancode para a placa-mãe, que passa para o sistema operacional que, por sua vez, geralmente imprime 'A'. (Se o sistema operacional detectar que uma das teclas modificadoras está pressionada no momento, poderá fazer algo diferente. Na verdade, você pode configurá-lo para fazer o que quiser quando a Atecla for pressionada com ou sem modificadores.)

Agora a Fnchave é especial. Quando você o pressiona por si só, nada acontece porque é exclusivamente uma tecla modificadora e não se destina (geralmente) a fazer algo por si próprio. Quando você o pressiona e pressiona outra tecla, o controlador do teclado detecta isso e olha em sua tabela interna para ver se é uma combinação conhecida. Se o combo não estiver na tabela, ele será ignorado, mas se o combo estiver na tabela, ele pesquisará o scancode associado e o enviará.

O que o sistema operacional acaba vendo? Ele não vê o scancode da Fnchave e o scancode da outra chave. Em vez disso, ele vê um único scancode associado a qualquer função que o Fn-combo tenha sido definido. Por exemplo, se o fabricante do laptop configurou o Fn+ Down Arrowcombo para reduzir o volume, o sistema operacional verá o scancode associado ao Volume Down, que alguns teclados realmente possuem.

Inscrição

Então, como isso explica por que segurar Fno laptop e pressionar uma tecla em um teclado externo não funciona? Simples, porque o teclado do laptop e o externo possuem controladores próprios. Tanto quanto o controlador no laptop vê, você pressionou e soltou a Fntecla e, tanto quanto o controlador no externo vê, você pressionou e soltou a outra tecla. O que o sistema operacional vê? Parece que você só pressionou a outra tecla sem nenhum modificador.

Demonstração

Você pode ver que o Fnmanuseio de chaves é especial com um teste simples. Conecte dois teclados externos a um laptop (fornecendo três teclados). Mantenha a Ctrltecla em um teclado, a Shifttecla em outro e, em seguida, pressione a Escapetecla no terceiro. O Gerenciador de tarefas do Windows deve aparecer. Por quê? Como o Windows recebeu os scancodes para todas as três teclas, uma de cada um dos controladores dos três teclados. (Este foi um exemplo do Windows, mas pressionar as combinações de teclas dessa maneira deve funcionar da mesma maneira em outros sistemas operacionais. Por exemplo, mesmo no DOS, você pode reiniciar o sistema pressionando Ctrl+ Alt+ Deleteem teclados diferentes.)

Nota

Nota: as informações sobre como o Fnprocesso é especialmente processado e as limitações resultantes em seu uso são apenas gerais, baseadas em implementações comuns. Não há nada que impeça um fabricante de laptop de decidir implementá-lo de maneira diferente e permita que o usuário remapeie a chave para alguma outra função, forneça uma Fntecla emulada em teclados externos por meio de algum acorde específico, etc. De fato, não existe um padrão oficial para a Fnchave; a maioria dos fabricantes apenas usa a mesma implementação que outros usaram, porque é mais barato e mudar o que os usuários estão acostumados geralmente não é bom.


5

Fncombinações de teclas geralmente fazem com que a interface do teclado emita sinais diferentes. Como a Fntecla não é interpretada pelo sistema operacional, é provável que não haja uma maneira fácil de usá-la com teclas em um teclado diferente e tenha o mesmo resultado, pois a interface do teclado não está ouvindo o outro teclado.


1

Eu diria porque Shift , Ctrl e Alt agem da mesma forma em todos os computadores. Estas são teclas padrão.

As funções Fn são específicas do laptop - algumas precisam de determinados drivers no laptop para que funcionem corretamente; portanto, o laptop provavelmente escuta a função Fn e as teclas de seta do laptop para executar uma ação, em vez de um teclado externo que é apenas tratado como as teclas normais para cima e para baixo, independentemente da tecla Fn.


mas a seta para cima é comum, e eu estou usando a tecla de função do teclado do laptop ..
Lazer

Mas quero dizer que a tecla Fn e a seta para cima precisam ser pressionadas no laptop para que a função seja ativada enquanto o driver / software no laptop escuta essas teclas. O teclado USB provavelmente não envia o mesmo 'sinal' ao pressionar uma tecla de seta; portanto, no que diz respeito ao laptop, apenas a tecla Fn está realmente sendo pressionada, pois não há um "link" entre os dois.
Muffinbubble

0

Eu acho (ainda não tentei) que o teclado externo não contém a programação que o teclado do laptop. Suponho que se você tiver acesso à tecla FN no teclado do laptop, também terá acesso às teclas para cima / para baixo no teclado do laptop, use-as se funcionar com o teclado externo conectado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.