« Nieuw in PHP 5.4: Array's | Afstanden bepalen mbv Google Maps deel 2 » |
Num Lock uitschakelen
Zoals ik al eerder meldde: mijn nieuwe laptop heeft de NumLock toets op zo'n plek zitten, dat ik die erg vaak onbedoeld in drukte. Gevolg is natuurlijk dat de cursor alle kanten op schiets als ik nummers probeer te typen. En in de regel gebruik ik voor cijfers _altijd_ het numerieke keyboard. De regel bovenaan het grote toetsenbord gebruik ik vrijwel nooit.
Het blijkt dat je dit uit kunt schakelen, maar dan moet je wel in het register duiken. Er zijn tooltjes die dat voor je kunnen doen, maar dat blijft een gok: een kapot register kan erg vervelend uitpakken, met zelfs opstartproblemen voor je Windows installatie tot gevolg.
Dus de vraag is, of je dat wilt overlaten aan een tooltje van redelijk onbekende herkomst, of dat je dat zelf wilt oplossen.
Ik kies dan voor het laatste.
Het idee
Je kunt toetsaanslag koppelen aan een andere toets. Bijvoorbeeld: je typt een A, maar in het register zet je de omleiding "doe alsof er B getypt werd". Het wisselen van A en B is dan misschien niet zo heel handig, maar het zou nog van pas komen als je bijvoorbeeld heel regelmatig een euro-teken nodig hebt en die niet met alt-gr wilt bedienen.
Maar laten we ons op de "dode" toetsen richten.
Om te zien welke toets ingedrukt werd, hebben de de scancode nodig. Op dit niveau is namelijk bij het drukken op een toets nog niet bekend welke betekenis deze toets heeft.
Voorbeeld: een in Nederland gangbaar toetsenbord met US layout heeft als eerste letters linksboven de reeks QWERTY staan. In Duitsland is dat QWERTZ
In je operating systeem, of dat nu Windows of Linux is, moet aangegeven worden welk toetsenbord gebruikt wordt. Dan pas wordt de koppeling naar een daadwerkelijke letter gelegd.
Uitvoering
Op de site http://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html#ss1.4 staat een overzicht van de scancodes. Code 15 staat daar voor de toets die in een Duits toetsenbord voor Z staat, op een US bord is dat een Y.
De NumLock key heeft de code 45.
Nu wilden we de NumLock key uitschakelen. Dus we moeten die omleiden naar "niets" De scancode 00 zou daar dan voor in aanmerking komen. Je kunt natuurlijk er ook een alternatieve shift of alt toets van maken. Ik ga uit van 0.
Om wijzigingen aan te brengen in het register heeft Windows het programmaatje Regedit aan boord. Je moet wel voldoende rechten hebben om dit soort dingen te doen. Let wel: als je iets echt fout doet in het register, dan kan je Windows ook echt kapot gaan.
Overal lees je "maak eerst een backup van je register, voor je er handmatig in gaat knoeien". Maar we weten: dan doen we toch allemaal niet....
De sleutel die aangepast of aangemaakt moet worden, vinden we op
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout |
als hierin nog niet een een binaire waarde staat met de naam Scancode Map, dan kun je deze aan maken door met de rechtermuistoets te klikken en voor Nieuw > binaire waarde te kiezen.
de inhoud van de waarde moet worden
00000000 00000000 02000000 00004500 00000000
Waar staat dit voor?
De eerste 16 nullen vullen alleen maar ruimte op. Ze hebben verder geen betekenis.
Daarna volgt een blok 02000000
Het getal 2 staat voor " het aantal toetsen dat we willen mappen + 1"
1 toets NumLock, dus het getal is 2. Verderop zal ik ook nog een voorbeeld geven van de situatie als je 2 toetsen wilt mappen.
Het blok 00004500 staat voor
0000: de scancode van de toets waarnaartoe we mappen. In dit geval dus een dummy waarde.
4500: de scancode van de Numlock key is nummer 45
Het laatste blok 00000000 is weer alleen aanwezig om ruimte op te vullen.
Mocht het editen van deze waarden lastig gaan, dan kun je ook een tekstbestandje aanmaken met een naam die eindigt op .reg.
Ik heb het genoemd: KillNumLock.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,00,00,45,00,00,00,00,00
Als je vervolgens dubbelklikt op deze file in de verkenner, zul je de vraag krijgen of je wilt dat er wijzigingen aan het register worden doorgevoerd. Zeg je ja, dan worden deze aanpassingen doorgevoerd.
Tenslotte is het alleen nog nodig om Windows opnieuw op te starten. De NumLock toets werkt dan niet meer.
Meer toetsen mappen
Het is ook mogelijk om meer dan 1 toets om te leiden. Als voorbeeld nemen we de CapsLock toets, die we in een ScrollLock veranderen.
De scancode voor ScrollLock is 46. Die van CapsLock is 3A.
We moeten dan 2 dingen aanpassen in de binaire reeks: Ten eerste wordt het getal 2 aangepast tot 3.
De vertaalcode wordt vervolgens achter (of voor) de vertaalcode van de NumLock key geplaatst.
00000000 00000000 03000000 00004500 46003A00 00000000