Dlaczego klawisz Fn na moim laptopie nie działa, gdy jest używany z zewnętrzną klawiaturą?

10

W moim Dell Latitude E6400 klawisze strzałek w górę i w dół służą do zmiany jasności ekranu, gdy są używane z Fnklawiszem.

Podłączyłem zewnętrzną klawiaturę przez USB i próbowałem zwiększyć jasność, naciskając Fnklawisz z klawiatury laptopa i strzałkę w górę z klawiatury zewnętrznej.

To nie działało. Shift, CtrlI Altdziała prawidłowo, jeśli używany ten sposób z zewnętrznej klawiatury.

Dlaczego nie Fn?

Lazer
źródło

Odpowiedzi:

15

Abstrakcyjny

Jak wskazali inni, Fnkluczem jest specjalny przypadek obsługiwany wewnętrznie. Przedstawię wyjaśnienie techniczne.

Szczegóły techniczne

Po naciśnięciu klawisza na klawiaturze kontroler klawiatury (mały układ scalony wewnątrz klawiatury) wykrywa obwód elektryczny i przetwarza go w celu zdekodowania, który klawisz został naciśnięty, a następnie wysyła skancode na płytę główną. System operacyjny otrzymuje scancode z BIOS-u, a następnie wykonuje wszelkie niezbędne działania, aby przetworzyć to naciśnięcie klawisza.

W przypadku większości kluczy jest to dość proste. Po naciśnięciu Aklawisza kontroler klawiatury wysyła scancode na płytę główną, która następnie przekazuje go do systemu operacyjnego, który z kolei zwykle drukuje „A”. (Jeśli system operacyjny wykryje, że jeden z klawiszy modyfikujących jest aktualnie wciśnięty, może zrobić coś innego. W rzeczywistości możesz go skonfigurować tak, aby robił co chcesz, gdy Aklawisz jest wciśnięty z modyfikatorami lub bez).

Teraz Fnklucz jest wyjątkowy. Gdy go naciśniesz sam, nic się nie dzieje, ponieważ jest to wyłącznie klawisz modyfikujący i nie jest (ogólnie) przeznaczony do robienia czegokolwiek samodzielnie. Po przytrzymaniu go i naciśnięciu innego klawisza kontroler klawiatury wykrywa to i przegląda wbudowaną tabelę, aby sprawdzić, czy jest to znana kombinacja. Jeśli kombinacji nie ma w tabeli, to po prostu ją ignoruje, ale jeśli ta kombinacja znajduje się w tabeli, wówczas wyszukuje skojarzony scancode i wysyła ją.

Co widzi system operacyjny? To nie nie patrz skanowego na Fnklucz i scancode dla drugiego klucza. Zamiast tego widzi pojedynczy scancode związany z jakąkolwiek funkcją, na którą ustawiono kombinację Fn. Na przykład, jeśli producent laptopów ustawił kombinację Fn+, Down Arrowaby zmniejszyć głośność, wówczas system operacyjny widzi scancode powiązany z tym Volume Down, który faktycznie mają niektóre klawiatury.

Podanie

Jak to wyjaśnia, dlaczego trzymanie Fnlaptopa i naciśnięcie klawisza na zewnętrznej klawiaturze nie działa? Proste, ponieważ klawiatura w laptopie i zewnętrzna mają własne kontrolery. O ile kontroler w laptopie widzi, naciskałeś i zwalniałeś Fnklawisz, io ile kontroler w zewnętrznym widział, naciskałeś i zwalniałeś drugi klawisz. Co widzi system operacyjny? Widzisz, że nacisnąłeś tylko drugi klawisz bez żadnych modyfikatorów.

Demonstracja

Widać, że Fnobsługa klucza jest wyjątkowa dzięki prostemu testowi. Podłącz dwie zewnętrzne klawiatury do laptopa (w ten sposób otrzymasz trzy klawiatury). Przytrzymaj Ctrlklawisz na jednej klawiaturze, Shiftklawisz na innej, a następnie naciśnij Escapeklawisz na trzeciej. Menedżer zadań systemu Windows powinien się wyświetlić. Dlaczego? Ponieważ system Windows otrzymał skancody dla wszystkich trzech kluczy, po jednym z każdego kontrolera trzech klawiatur. (To był przykład systemu Windows, ale naciśnięcie kombinacji klawiszy w ten sposób powinno działać tak samo w innych systemach operacyjnych. Na przykład nawet w systemie DOS można ponownie uruchomić system, naciskając Ctrl+ Alt+ Deletena różnych klawiaturach).

Uwaga

Uwaga: informacje o tym, w jaki sposób Fnjest specjalnie przetwarzany i wynikające z tego ograniczenia jego użycia są jedynie ogólne i oparte na typowych implementacjach. Nic nie stoi na przeszkodzie, aby producent laptopów zdecydował się na wdrożenie go w inny sposób i pozwala użytkownikowi ponownie przypisać klucz do innej funkcji, udostępnić emulowany Fnklucz na klawiaturze zewnętrznej za pomocą określonego akordu itp. W rzeczywistości nie ma nawet oficjalnego standardu na Fnklucz; większość producentów po prostu korzysta z tej samej implementacji, z której korzystali inni, ponieważ jest to tańsze, a zmiana tego, do czego użytkownicy są przyzwyczajeni, zwykle nie jest dobra.

Synetech
źródło
5

Fnkombinacje klawiszy zwykle powodują, że interfejs klawiatury emituje różne sygnały. Ponieważ Fnklucz nie jest interpretowany przez system operacyjny, prawdopodobnie nie ma łatwego sposobu użycia go z klawiszami na innej klawiaturze i ma taki sam wynik, ponieważ interfejs klawiatury nie nasłuchuje na drugiej klawiaturze.

Ignacio Vazquez-Abrams
źródło
1

Powiedziałbym, ponieważ Shift , Ctrl i Alt działają tak samo na wszystkich komputerach. To są standardowe klucze.

Funkcje Fn są specyficzne dla laptopa - niektóre potrzebują pewnych sterowników na laptopie, aby działały poprawnie, dlatego laptop prawdopodobnie nasłuchuje funkcji Fn i klawiszy strzałek laptopa, aby wykonać akcję, w przeciwieństwie do zewnętrznej klawiatury, która jest właśnie traktowana jako zwykłe klawisze „góra i dół”, niezależnie od klawisza Fn.

Muffinbubble
źródło
ale strzałka w górę jest powszechna i używam klawisza funkcyjnego z klawiatury laptopa.
Lazer
Ale mam na myśli naciśnięcie klawisza Fn i strzałki w górę na laptopie, aby funkcja mogła się uruchomić, gdy sterownik / oprogramowanie na laptopie nasłuchuje tych klawiszy. Klawiatura USB prawdopodobnie nie wysyła tego samego „sygnału” po naciśnięciu klawisza strzałki, więc jeśli chodzi o laptopa, tak naprawdę naciskany jest tylko klawisz Fn, ponieważ między nimi nie ma „łącza”.
Muffinbubble
0

Wydaje mi się (sam tego nie próbowałem), że zewnętrzna klawiatura nie zawiera programowania, które wykonuje klawiatura laptopa. Zgaduję, że jeśli masz dostęp do klawisza FN na klawiaturze laptopa, masz również dostęp do klawiszy góra / dół na klawiaturze laptopa, po prostu użyj ich, jeśli działa z podłączoną klawiaturą zewnętrzną.

bmbaeb
źródło