Projectbeschrijving
SharpKeys is een hulpprogramma dat een registersleutel beheert waarmee Windows een toets aan een andere toets kan toewijzen. Inbegrepen in de applicatie is een lijst met veelgebruikte toetsenbord toetsen en een Type Key functie om automatisch de meeste toetsenbord toetsen te herkennen. Het is oorspronkelijk ontwikkeld in C# met gebruikmaking van .NET v2, maar is bijgewerkt om .NET 4.0 Client Profile te ondersteunen
Oproep voor feedback!
Ik heb eindelijk de codewijziging samengevoegd die de manier verandert waarop toetsen in de lijst worden ingevoerd, waaronder het zoeken naar triple-byte keycodes en die de mogelijkheid om Alt+Gr opnieuw toe te wijzen mogelijk moet maken. Wat ik niet weet is of het werkt of niet, dus als je met succes of onsuccesvol de Alt+Gr toets hertekent, laat het mensen weten in de Problemen sectie – bedankt!
Oorspronkelijke missie:
Dit is iets dat ik in elkaar heb gegooid om mensen te helpen met hun toetsenbord mappings. Wat is een toetsenbord mapping? Hoe vaak per dag drukt u per ongeluk op cAPS lOCK door een vergissing en uiteindelijk moet u teruggaan en dingen overtypen? Voor mij was dat minstens één keer per uur – in feite heb ik vroeger de Caps Lock-toets uitgeschakeld zodat ik hem niet meer zou indrukken, maar ik heb iets beters gevonden in Windows XP, en ook in 2000, Server 2003, Vista, Windows 7, Windows 8 en Windows 10. Er is een weinig gebruikte register hack die je toestaat om toetsen over een toetsenbord opnieuw toe te wijzen. Voor mij betekende dit dat ik mijn computer vertelde om Caps Lock te behandelen alsof het een shift-toets was, wat het nu doet.
Hoe meer ik begon te werken met andere toetsenborden, hoe meer ik deze mogelijkheid wilde hebben om andere toetsen over mijn toetsenbord in kaart te brengen, maar het werken met de Hex nummers en het moeten opzoeken van scan-codes kon pijnlijk zijn…. vandaar SharpKeys.
SharpKeys is niet verantwoordelijk voor de functionaliteit van het opnieuw toewijzen van toetsenborden – het geeft eenvoudigweg een registersleutel vrij die bepaalt hoe Windows toetsen opnieuw toewijst en is voor ons beschikbaar sinds Windows 2000. De lijst van toetsen die zijn opgenomen in de applicatie zijn van de meeste US-gebaseerde toetsenborden die ik heb gebruikt in de loop der jaren en is niet gegarandeerd 100% compleet voor de wereld toetsenborden.
Installeren
Handleiding
Klik op de Releases knop in de header hierboven
Note: dat voor ARM versies van Windows, gebruik het ZIP bestand om de EXE te krijgen: de MSI is op zoek naar x64/x86.
winget
Als u WinGet gebruikt
winget install sharpkeys
scoop
Als u scoop gebruikt
scoop install sharpkeys
Hoe gebruik ik het? Aan de slag
- Lanceer SharpKeys, door het pictogram ervan in het Start-menu te selecteren. Als er fouten worden gemeld, controleer dan de sectie Problemen oplossen
- Voeg een nieuwe key mapping toe of bewerk een bestaande
- Klik op “Write to registry” en wacht op een bevestiging dat het register met succes is bijgewerkt
- Sluit SharpKeys en log uit (en weer in) of start opnieuw op om de nieuwe mappings te handhaven
Dingen die SharpKeys zal doen:
- Map een hele toets aan een andere toets – bijv.U kunt bijvoorbeeld Caps Lock toewijzen aan een Shift-toets
- Map meer dan een toets aan een enkele toets – U kunt bijvoorbeeld elke toets op een toetsenbord toewijzen aan de letter Q
- Dwingt u om te zoeken naar de linker of rechter ALT-toets in de lijst met beschikbare toetsen, omdat Type Key niet kan scannen op ALT
- Maakt het mogelijk om twee toetsen met elkaar te verwisselen – bijv.U kunt bijvoorbeeld Linker Windows met Linker Control verwisselen en vice versa
Dingen die SharpKeys niet zal doen:
- Map meerdere toetsaanslagen aan één toets – het zal bijvoorbeeld geen poging ondersteunen om Ctrl+C aan de F5-toets te remappen
- Muisklikken aan een toets koppelen
- Bepaalde hardwaretoetsen ondersteunen die nooit in Windows terechtkomen – bijv. Logitech’s volumetoetsen of de meeste Fn-toetsen
- Ondersteun meerdere toewijzingen voor verschillende gebruikers – de Windows-toets die wordt aangepast is voor een hele machine
- Bescherm je tegen jezelf – als je je DEL-toets uitschakelt en niet kunt inloggen omdat Ctrl+Alt+Del nu niet werkt, zul je opnieuw moeten formatteren
Andere FAQ en antwoorden
Vraag: Kan ik een combinatie van toetsen opnieuw toewijzen aan één toets?
A: Helaas, nee. SharpKeys wijst alleen hele toetsen toe, niet een gewijzigde toets. U kunt bijvoorbeeld Ctrl of C opnieuw toewijzen, maar u kunt Ctrl+C niet opnieuw toewijzen aan een andere toets. De Microsoft PowerToys tool biedt deze functionaliteit wel – je kunt hier meer over hun tool te weten komen: Microsoft PowerToys.
Vraag: Kan ik een muisklik aan een nieuwe toets toewijzen?
A: Sorry, maar nee. De technologie die Windows gebruikt om uw toetsen opnieuw toe te wijzen is niet op de hoogte van uw muis.
Vraag: Waarom kan ik mijn Fn toets op mijn toetsenbord niet opnieuw toewijzen?
A: Sommige toetsen komen gewoon nooit bij Windows aan. In het geval van de meeste Fn toetsen, worden ze geïnterpreteerd door de hardware en nooit doorgegeven aan het besturingssysteem, ongeacht hoe ze lijken te werken… als Windows de toets niet ziet, is er geen manier voor de toets om door Windows opnieuw toegewezen te worden.
Vraag: Typ een toets toont 00_100 – kan ik deze toets opnieuw toewijzen?
A: 00_100 is een allesomvattende code die Windows rapporteert als een toets wordt gevangen door hardware of een ander stuurprogramma. Er is dus geen manier om deze toets succesvol te remappen, vooral omdat meerdere toetsen dezelfde 00_100 code kunnen retourneren.
Q: Typ een Toets toont Onbekende Toets – kan ik deze toets remappen?
A: De kans is groot dat dit gewoon een toets is die nog nooit door SharpKeys is gezien, dus het weet niet wat het ermee moet doen. Open een issue op deze site voor dit project en iemand van de Open Source gemeenschap kan kijken of het toegevoegd kan worden.
Q: Type a Key laat een code zien die E0_nnnn is – kan ik deze sleutel opnieuw toewijzen?
A: Als een scancode 6 karakters heeft, dan is het een zogenaamde triple byte scancode, iets dat niet door het Windows Register kan worden toegewezen. Om zo’n toets opnieuw toe te wijzen, hebt u een actieve remapper nodig, zoals Microsoft PowerToys of AutoHotKeys, of de app die bij het toetsenbord werd geleverd (b.v. Logitech’s Options), als die beschikbaar is.
Q: Wat is dat allemaal over “scan codes”?
A: Telkens als u op een toets van uw toetsenbord drukt, wordt er een binaire code verzonden naar de toetsenbord controller in uw PC. Die code wordt doorgegeven aan Windows (in de meeste gevallen) en Windows interpreteert het als “ze hebben code 0x3A ingedrukt, dus dat is Caps Lock – zet dat aan!” Wat moderne versies van Windows ook doen is een registersleutel controleren wanneer de machine opstart. Wat die registersleutel doet is Windows vertellen “ook al hebben ze 0x3A ingedrukt, behandel het als 0x2A” (dat is linkshift). Wat SharpKeys doet is deze registersleutel bewerken met behulp van een eenvoudige UI en het omzeilen van de register-editor.
Vraag: Ik heb een nieuwe PC die een ophang-knop heeft die ik opnieuw wil toewijzen – kan ik deze sleutel opnieuw toewijzen?
A: Veel mensen vragen om E0_1F65, maar zoals de bovenstaande vraag al aangeeft, drie byte scancodes kunnen niet worden toegewezen met het Windows Register. Dit geldt voor Lenovo, HP, Dell, en elke andere laptop of desktop van PC-makers.
Q: Typ een Toets herkent de Alt toets niet als ik hem intyp – hoe wijs ik deze toets opnieuw toe?
A: De Alt toets scancode komt niet door het systeem, om in het Typ een Toets venster te komen. In principe, als u Alt typt, stuurt Windows het naar het systeemmenu en activeert het, in plaats van de scancode naar het venster te sturen. Je kunt deze toets nog steeds opnieuw toewijzen, maar dan moet je hem handmatig uit de lijst selecteren; je vindt hem in de groep met toetsen die gemarkeerd zijn als “Speciaal”.
Q: Wat is de gekste remapping die je ooit hebt gedaan?
A: Ik denk dat het mijn actieve remapping is op Surface-producten, waar sommige van de cursornavigatietoetsen ruimte delen met F9-F12. Omdat ik F1-F8 veel gebruik voor Office of Visual Studio, wil ik niet onthouden om Fn in te drukken, maar ik wil ook Fn-Lock niet aan laten staan omdat ik ook Home, End, PgUp, en PgDn nodig heb. Dus heb ik Fn-Lock aangelaten en F9-F12 omgedoopt tot Home/End/PgUp/PgDn en vervolgens Home/End/PgUp/PgDn tot F9-F12. Ik heb ook Caps Lock uitgeschakeld en de Rechter Alt omgedraaid naar Linker Windows omdat dat gewoon prettig is voor een laptop. Omdat andere mensen hier misschien gebruik van maken, heb ik het SKL bestand hier in het depot gezet.
Q: Wat is een “Onbekende” toets?
A: Het is onmogelijk om een lab van toetsenborden te krijgen om te testen, vooral wanneer bijna elk modern toetsenbord wordt geleverd met extra toetsen of taalspecifieke toetsen – sommige bedrijven maken zelfs toetsenborden met speciale toetsen voor hun eigen software of product line-up. Dus als u Type Key gebruikt en het raakt een toets die SharpKeys misschien niet kent, dan kan deze nog steeds in kaart worden gebracht, ook al staat er onbekend op het label. Als u een toets op uw toetsenbord heeft die als onbekend staat vermeld, maar u heeft er een gebruikt, stuur me dan een e-mail en ik zal kijken of ik er een beter label voor kan maken.
Q: Wat gebeurt er als ik uw programma gebruik en ik voeg een heleboel toetsen toe en ik kan mijn computer niet meer gebruiken?
A: Nou, min of meer, u bent de klos. Ik heb deze applicatie veel getest, en er is weinig risico bij het wijzigen van deze registervermelding, maar als je een toets uitschakelt die je nodig hebt voor je wachtwoord, heb je meestal pech. Een optie is om te proberen het schermtoetsenbord te gebruiken dat beschikbaar is via Toegankelijkheidsopties, aangezien dat geen invloed zou hebben op de instellingen voor het opnieuw toewijzen van Windows. U kunt ook proberen een USB-toetsenbord aan te sluiten als u een laptop hebt, of u kunt opstarten in de veilige modus en de registersleutel voor de scancodemapping verwijderen, maar dan staat u er alleen voor. Dit gezegd hebbende, wees voorzichtig en gebruik SharpKeys op eigen risico!
Q: Ik moet ondersteuning hebben voor combo toetsen of triple-byte ingeschakelde toetsen! Waarom wilt u dit niet veranderen?
A: Ik kan er absoluut niets aan doen: Windows remapt de toetsen en deze app is slechts een UX voor de registersleutel die de remapping regelt. In feite, denk ik dat ik dit al beantwoord heb in de FAQ. Dat gezegd hebbende, als je een dieper niveau van remapping ondersteuning wilt, kijk dan eens naar Microsoft PowerToys.
Bestaande opgeslagen toetsenbordindelingen
- Colemak – SKL via GitHub via @NathanDai5287
- Surface – SKL bestand beschreven in de FAQ
Hoop op GitHub bijdragen:
- Een completere lijst om meer internationale toetsenborden te ondersteunen
- Een import/export functionaliteit waarmee mensen makkelijker keymappings kunnen verwisselen
- Voortdurende ondersteuning voor nieuwe .NET Frameworks