Co próbuję osiągnąć:
Aby ponownie mapować przycisk zasilania laptopa, który jest absurdalnie umieszczony jako klawisz na klawiaturze.
Kontekst:
Niedawno kupiłem ulepszoną wersję laptopa ASUS VivoBook Pro N552VW. To świetna maszyna o świetnych specyfikacjach. Podoba mi się każdy szczegół w nim, z wyjątkiem jednej rzeczy, której po prostu nie mogę połknąć, ani też nie rozumiem, dlaczego na Ziemi istnieje.
Geniusz projektowania produktu zdecydował, że przycisk zasilania do włączania i wyłączania komputera powinien znajdować się między klawiszami klawiatury. Nawet mądrzejszy, geniusz zdecydował, że należy go umieścić tam, gdzie zwykle znajduje się dedykowany klawisz „End”, jak widać na poniższym obrazku:
Łagodzenie problemu:
Chociaż ten projekt jest oczywiście podatny na błędy, tj. Zawsze istnieje ryzyko przypadkowego naciśnięcia klawisza zasilania, a następnie uśpienia laptopa w trakcie sesji roboczej. Łatwo to jednak rozwiązać, przechodząc do ustawień zasilania systemu Windows i nie definiując, co się stanie po naciśnięciu przycisków zasilania. Zobacz zdjęcie poniżej:
Co pozostaje do zrobienia:
Jednak tak naprawdę chciałbym zrobić to zmapować taki klucz, aby zachowywał się tak, jakby był ponownie dedykowanym klawiszem End. Próbowałem wielu programów do mapowania kluczy, ale żadne nie działało. Wiem, że klucze zasilania są często mapowane na proces zasilania systemu BIOS na raczej niskim poziomie, więc miałem się poddać.
To wtedy znalazłem to pytanie w AskUbuntu Stackoverflow: /ubuntu/580902/how-to-change-mapping-for-the-poweroff-key-on-keyboard
Tam podano rozwiązanie dla systemu operacyjnego Ubuntu. Dało mi to z powrotem nadzieję, że zrobienie tego samego pod oknami może być możliwe. Dlatego moje pytanie tutaj: w jaki sposób mogę poprawnie odwzorować głupiutki przycisk zasilania Asusa, aby zachowywał się jak klawisz „End”?
Moim preferowanym rozwiązaniem byłoby robienie tego za pośrednictwem rejestru Windows. Tylko jeśli nie jest to w ogóle możliwe, chciałbym przetestować opcję korzystania z zewnętrznych programów do ponownego mapowania, które muszą być ładowane przez cały czas.
Co dokładnie wypróbowałem:
W rzeczywistości próbowałem zarówno zmiany rejestru, jak i korzystania z zewnętrznego oprogramowania. Żadne wolne oprogramowanie, które mogłem znaleźć, nie pozwoliło mi odpowiednio zmapować klawisza zasilania.
Zmieniając rejestr, najlepiej mogłem dowiedzieć się, aby klucz NumLock stał się kluczem End (wtedy NumLock byłby dostępny przez Ctrl + Alt + PauseBreak):
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Keyboard Layout
„Scancode Map” = 00,00,00,00,00,00,00,00,03,00,00,00,4f, e0,45,00,45,00,46, e0,00,00,00 , 00
Nie trzeba dodawać, że jest to dość brudne rozwiązanie, ponieważ powoduje więcej bałaganu.
Odpowiedzi:
Użyj klawiszy SharpKeys, aby sprawdzić, czy klawisz zasilania generuje kod skanowania na klawiaturze. Jeśli tak, to SharpKeys może zmienić mapowanie klucza w rejestrze, który będzie działał dla wszystkich programów.
Zobacz samouczek w artykule Mapowanie dowolnego klucza na dowolny klucz w systemie Windows 10, 8, 7 lub Vista .
W przypadku, gdy klawisz zasilania nie generuje kodu skanowania w systemie Windows, nie można go zmapować, a jedynie wyłączyć tak jak ty. Nawet jeśli Linux może go odwzorować, ponieważ zapewnia lepszą kontrolę nad klawiaturą, tak nie jest w przypadku Windows.
W takim przypadku możesz jedynie ponownie aktywować klawisz zasilania i zresetować go, aby ponownie wyłączyć, a następnie uwięzić i anulować to zdarzenie, przypisując je do innego klucza, takiego jak Endklucz. Można to zrobić za pomocą AutoHotkey , ale może to być większy problem niż jest to warte. Jeśli jesteś zainteresowany, mogę rozwinąć moją odpowiedź, aby pokazać, jak to się robi.
Zwracam uwagę, że czasami użycie przycisku Zasilanie jest jedynym sposobem na wyłączenie zawieszonego komputera w częściowo uporządkowany sposób.
źródło