Opis projektu
SharpKeys jest narzędziem, które zarządza kluczem Rejestru, który pozwala Windowsowi na przemapowanie jednego klawisza na dowolny inny. Aplikacja zawiera listę popularnych klawiszy klawiatury oraz funkcję Type Key, która automatycznie rozpoznaje większość klawiszy klawiatury. Aplikacja została pierwotnie stworzona w C# przy użyciu .NET v2, ale została zaktualizowana do obsługi .NET 4.0 Client Profile
Zaproś o opinie!
W końcu połączyłem zmianę kodu, która zmienia sposób wprowadzania klawiszy do listy, co obejmuje szukanie trójbajtowych kodów kluczowych i powinno umożliwić możliwość remapowania Alt+Gr. Nie wiem tylko czy to działa czy nie, więc jeśli uda ci się lub nie uda remapować Alt+Gr, proszę daj znać w sekcji Problemy – dzięki!
Oryginalna misja:
To jest coś, co wrzuciłem razem, aby pomóc ludziom z ich mapowaniem klawiatury. Co to jest mapowanie klawiatury? Ile razy dziennie zdarza ci się przypadkowo nacisnąć cAPS lOCK przez pomyłkę i skończyć na tym, że musisz iść do BACK i wpisać coś ponownie? Dla mnie było to co najmniej raz na godzinę – w rzeczywistości, kiedyś odskoczyłem od klawisza Caps Lock, więc nie uderzyłbym go więcej, ale znalazłem coś lepszego w Windows XP, jak również 2000, Server 2003, Vista, Windows 7, Windows 8 i Windows 10. Istnieje mało używany hack w rejestrze, który pozwala na remapowanie klawiszy na całej klawiaturze. Dla mnie oznaczało to, że kazałem mojemu komputerowi traktować Caps Lock tak, jakby był klawiszem Shift, co teraz robi.
Im więcej zacząłem pracować z innymi klawiaturami, tym bardziej chciałem mieć możliwość mapowania innych klawiszy na mojej klawiaturze, ale praca z numerami Hex i konieczność szukania kodów skanowania może być bolesna…. stąd SharpKeys.
SharpKeys nie jest odpowiedzialny za żadną funkcjonalność remappingu klawiatury – po prostu ujawnia klucz Rejestru, który kontroluje jak Windows remapuje klawisze i jest dostępny dla nas od Windows 2000. Lista klawiszy, które są zawarte w aplikacji pochodzi z większości amerykańskich klawiatur, których używałem przez lata i nie gwarantuje, że jest w 100% kompletna dla klawiatur światowych.
Instalacja
Podręcznik
Kliknij przycisk Releases w nagłówku powyżej
Uwaga: dla wersji ARM systemu Windows, proszę użyć pliku ZIP, aby uzyskać EXE: MSI szuka x64/x86.
winget
Jeśli używasz WinGet
winget install sharpkeys
scoop
Jeśli używasz scoop
scoop install sharpkeys
Jak go używać? Rozpoczęcie pracy
- Uruchom SharpKeys, wybierając jego ikonę z menu Start. Jeśli zgłaszane są jakieś błędy, sprawdź sekcję Rozwiązywanie problemów poniżej
- Dodaj nowe mapowanie klucza lub edytuj istniejące
- Kliknij „Zapisz w rejestrze” i poczekaj na potwierdzenie, że rejestr został pomyślnie zaktualizowany
- Zamknij program SharpKeys i albo wyloguj się (i zaloguj ponownie), albo uruchom ponownie, aby wymusić nowe mapowania
Rzeczy, które zrobi program SharpKeys:
- Mapowanie całego klawisza do dowolnego innego klawisza – np.np. możesz przemapować Caps Lock na klawisz Shift
- Mapuj więcej niż jeden klawisz na pojedynczy klawisz – np. możesz przemapować każdy klawisz na klawiaturze na literę Q
- Wymuszaj szukanie lewego lub prawego klawisza ALT na liście dostępnych klawiszy, ponieważ Type Key nie może skanować w poszukiwaniu ALT
- Pozwalaj na zamianę dwóch klawiszy między sobą – np.np. możesz zamienić lewy Windows na lewy Control i odwrotnie
Rzeczy, których SharpKeys nie zrobi:
- Mapuje wiele naciśnięć klawiszy na jeden klawisz – np. nie będzie obsługiwał próby remapowania Ctrl+C na klawisz F5
- Mapuje kliknięcia myszą na dowolny klawisz
- Obsługuje pewne klawisze sprzętowe, które nigdy nie trafią do Windows – np. Przyciski głośności Logitecha lub większość klawiszy Fn
- Obsługuje wiele mapowań dla różnych użytkowników – dostosowywany klawisz Windows jest dla całej maszyny
- Ochroni cię przed samym sobą – jeśli wyłączysz swój klawisz DEL i nie będziesz mógł się zalogować, ponieważ Ctrl+Alt+Del teraz nie działa, będziesz musiał sformatować komputer
Dodatkowe FAQ i odpowiedzi
Q: Czy mogę przemapować kombinację klawiszy na jeden klawisz?
A: Niestety, nie. SharpKeys remapuje tylko całe klawisze, a nie zmodyfikowane klawisze. Na przykład, możesz przemapować Ctrl lub C, ale nie możesz przemapować Ctrl+C na inny klawisz. Narzędzie Microsoft PowerToys oferuje taką funkcjonalność – więcej informacji na jego temat można znaleźć tutaj: Microsoft PowerToys.
Q: Czy mogę przemapować kliknięcie myszą na nowy klawisz?
A: Przykro mi, ale nie. Technologia remapowania, której Windows używa do remapowania klawiszy, nie jest świadoma działania myszy.
Q: Dlaczego nie mogę remapować klawisza Fn na klawiaturze?
A: Niektóre klawisze po prostu nigdy nie trafiają do Windows. W przypadku większości klawiszy Fn, są one interpretowane przez sprzęt i nigdy nie są przekazywane do systemu operacyjnego, bez względu na to, jak wydają się działać… jeśli Windows nie widzi klawisza, nie ma możliwości, aby klawisz został przemapowany przez Windows.
Q: Wpisz klawisz pokazuje 00_100 – czy mogę przemapować ten klawisz?
A: 00_100 to kod, który Windows zgłasza, gdy klucz jest przechwytywany przez sprzęt lub inny sterownik, więc nie ma sposobu, aby skutecznie przemapować ten klucz, zwłaszcza że wiele kluczy może zwrócić ten sam kod 00_100.
Q: Type a Key shows Unknown Key – can I remap this key?
A: Prawdopodobnie jest to klucz, którego SharpKeys nigdy wcześniej nie widział, więc nie wie, co z nim zrobić. Otwórz problem na tej stronie dla tego projektu i ktoś ze społeczności Open Source może spojrzeć na dodanie go.
Q: Type a Key pokazuje kod, który jest E0_nnnn – czy mogę remapować ten klucz?
A: Jeśli scancode ma 6 znaków, to jest to, co jest znane jako potrójny bajt scancode, który jest czymś, co nie może być remapowane przez Rejestr Windows. Aby zmienić ustawienie takiego klawisza, należy użyć aktywnego remappera, takiego jak Microsoft PowerToys lub AutoHotKeys, lub aplikacji dołączonej do klawiatury (np. Options firmy Logitech), jeśli jest dostępna.
Q: Co to wszystko znaczy „kody skanowania”?
A: Za każdym razem, gdy naciskasz klawisz na klawiaturze, wysyła ona kod binarny do kontrolera klawiatury w komputerze. Kod ten jest przekazywany do systemu Windows (w większości przypadków) i Windows interpretuje go jako „oni wcisnęli kod 0x3A, więc to jest Caps Lock – włącz go!”. Nowoczesne wersje systemu Windows sprawdzają również klucz rejestru podczas uruchamiania komputera. Ten klucz rejestru mówi windowsowi „nawet jeśli wcisnęli 0x3A, traktuj to jako 0x2A” (czyli lewy shift). To, co robi SharpKeys, to edytowanie tego klucza rejestru za pomocą prostego interfejsu użytkownika i omijanie edytora rejestru.
Q: Mam nowy komputer, który ma przycisk rozłączania, który chcę zremapować – czy mogę zremapować ten klucz?
A: Wiele osób pyta o E0_1F65, ale jak wynika z powyższego pytania, nie można zremapować trzybajtowych scancodów w rejestrze Windows. Odnosi się to do Lenovo, HP, Dell, i każdy inny producent PC laptopa lub komputera stacjonarnego.
Q: Type a Key nie rozpoznaje klawisz Alt, kiedy go wpisać – jak mogę remap ten klucz?
A: Skancode klawisz Alt nie czyni go przez system, aby dostać się do okna Type a Key. Zasadniczo, kiedy wpisujesz Alt, Windows wysyła go do menu systemowego i aktywuje je, a nie wysyła skankodu do okna. Nadal możesz remapować ten klawisz, ale będziesz musiał wybrać go z listy ręcznie; znajdziesz go w grupie klawiszy oznaczonych jako „Specjalne”.
Q: Jakie jest najbardziej szalone remapowanie, jakie kiedykolwiek zrobiłeś?
A: Myślę, że to moje aktywne remapowanie na produktach Surface, gdzie niektóre z klawiszy nawigacyjnych kursora dzielą przestrzeń z F9-F12. Ponieważ używam F1-F8 dla wielu do pakietu Office lub Visual Studio, nie chcę pamiętać, aby nacisnąć Fn, ale również nie chcę zostawić Fn-Lock na, ponieważ muszę również Home, End, PgUp, i PgDn, jak również. Tak więc, zostawiłem Fn-Lock włączony, a następnie remapowałem F9-F12 na Home/End/PgUp/PgDn, a następnie Home/End/PgUp/PgDn na F9-F12. Wyłączyłem również Caps Lock i przemapowałem prawy Alt na lewy Windows, ponieważ to jest po prostu szczęśliwe dla laptopa. Ponieważ inni ludzie mogą z tego korzystać, umieściłem plik SKL w magazynie tutaj.
Q: Co to jest „Nieznany” klawisz?
A: Nie ma mowy, żebym dostał laboratorium klawiatur do przetestowania, zwłaszcza gdy prawie każda nowoczesna klawiatura jest wyposażona w dodatkowe klawisze lub klawisze specyficzne dla danego języka – niektóre firmy robią nawet klawiatury ze specjalnymi przyciskami dla ich własnego oprogramowania lub linii produktów. W rezultacie, gdy używasz Type Key i trafisz na klawisz, o którym SharpKeys może nie wiedzieć, może on zostać zmapowany, nawet jeśli na etykiecie jest napisane „nieznany”. Jeśli masz na klawiaturze klawisz, który jest wymieniony jako Nieznany, ale masz dla niego zastosowanie, wyślij mi e-mail, a ja zobaczę, jak dodać do niego lepszą etykietę.
Q: Co się stanie, jeśli użyję twojego narzędzia i dodam kilka mapowań klawiszy i nie będę mógł już używać mojego komputera?
A: Cóż, mniej więcej, masz przechlapane. Przetestowałem tę aplikację dużo i nie ma bardzo małe ryzyko w modyfikacji tego wpisu w rejestrze, ale jeśli wyłączyć klucz trzeba dla hasła, jesteś w większości pecha. Jedną z opcji jest spróbowanie użycia klawiatury ekranowej, która jest dostępna poprzez opcje dostępności, ponieważ nie będzie to miało wpływu na ustawienia remappingu dla Windows. Możesz także spróbować podłączyć klawiaturę USB, jeśli jesteś na laptopie lub możesz uruchomić tryb bezpieczny i usunąć klucz rejestru Scancode Map, ale będziesz na własną rękę. Powiedziawszy to, proszę bądź ostrożny i używasz SharpKeys na własne ryzyko!
Q: Muszę mieć obsługę klawiszy combo lub klawiszy z potrójnym bajtem! Dlaczego nie wprowadzisz tej zmiany?
A: Nie mogę nic na to poradzić: Windows jest remapping kluczy i ta aplikacja jest tylko UX dla klucza rejestru, który kontroluje remapping. W rzeczywistości, myślę, że odpowiedziałem na to już w FAQ. To powiedziawszy, jeśli chcesz uzyskać głębszy poziom wsparcia remappingu, sprawdź Microsoft PowerToys.
Istniejące zapisane układy klawiatury
- Colemak – SKL przez GitHub przez @NathanDai5287
- Surface – plik SKL opisany w FAQ
Nadzieja na wkład z GitHuba:
- bardziej kompletna lista, aby wspierać więcej międzynarodowych klawiatur
- funkcjonalność importu/eksportu, która pozwala ludziom na łatwiejszą wymianę mapowań klawiszy
- kontynuacja wsparcia dla nowych .NET Frameworks
.