Windows-näppäimen uudelleenohjelmointi

Tietokonenäppäimistö on tullut monille tutuksi viimeisten parin kolmenkymmenen vuoden aikana. Näppäimistö tai sormio ei ole juurikaan kokenut muutoksia sitten kirjoituskoneen keksimisen 1800-luvun. Tietokoneaikakausi toi mukanaan tukun uusia näppäimiä perusaakkosten, numerojen ja välimerkkien lisäksi. Myöhemmin erilaiset erikoisnäppäimistöt ovat saaneet kylkiäisiksi enemmän tai vähemmän painikkeita erityisiin tarkoituksiin. Erikoisnäppäimistöjä kutsutaan eri nimillä, kuten medianäppäimistöt ja pelinäppäimistöt. Suomalaisen kirjoittajan kannalta yleisessä tietokonenäppäimistössä on kaikki olennaiset painikkeet ja joukko erikoisnäppäimiä, joita tulee käytettyä harvakseltaan tai ei koskaan.

Kuuntelen Spotify-radiota ja aika ajoin haluan hypätä jonkun kappaleen yli. Seuraava kappale alkaa soida painamalla multimedianäppäimistön erillistä "Soita seuraava" -painiketta. Kaikissa näppäimistöissä ei tosin ole tätä kätevää painiketta, joten päätin ratkaista puutteen korvaamalla jonkun perusnäppäimistön painikkeen ohjelmoimalla sen toiminnallisuuden uudestaan. Windows-käyttöjärjestelmässä uuden toiminnallisuuden toteuttaminen olemassa olevaan näppäimeen onnistuu suhteellisen helposti. Aluksi etsin laudalta sellaisen näppäimen, jota en käytä juuri koskaan. Painikkeiden seasta valikoitu erikoinen, niin sanottu Windows-painike, joita on tyypillisesti kaksin kappalein, yksi vasemmalle ja toinen oikealle kädelle. Olen tottunut käyttämään vasemmanpuoleista Windows-painiketta pikanäppäimenä, joten uhratuksi tuli siis joutilas oikeanpuoleinen kosketin.

Ryhdyin ohjelmoimaan siihen "Soita seuraava" -painikkeen toiminnallisuutta. Windows-käyttöjärjestelmässä näppäinten uudet toiminnallisuudet merkitään rekisteriin. Työhön löytyy epämääräinen joukko sovelluksia, joilla tempun voi tehdä nopeasti ja vaivattomasti. Microsoftilla on lisäksi Keyboard Layout Creator -sovellus, jolla voi laatia kokonaan uuden näppäimistöasettelun. Aivan näin suurta operaatiota en ollut valmistelemassa, joten tyydyin yksinkertaiseen rekisterimerkintään. Näppäimen uusi toiminnallisuus luodaan binääriarvona HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Keyboard Layout -ryhmään. Varsinainen binäärinen arvo on joukko numeroita, joilla kerrotaan, miten monta näppäintä muutos koskee, mikä näppäin muutetaan ja minkä näppäimen toiminnallisuudella se korvataan. Arvo on pitkä numerosarja:

00000000 00000000 02000000 00003A00 00000000
  • missä ensimmäiset 16 numeroa ovat aina nollia;
  • "02" esimerkissä ilmaisee, miten monta näppäintä muutos koskettaa (tarkalleen ottaen tämä kertoo, miten monta kahdeksan numeron ryhmää tulee seuraavaksi eli käytännössä arvojen pituuden);
  • seuraavaksi "0000" ilmaisee uuden toiminnallisuuden, jolla alkuperäinen painike korvataan (tässä tapauksessa näppäin poistetaan kokonaan käytöstä asettamalla uudeksi arvoksi joukko nollia);
  • "3A00" ilmaisee alkuperäisen painikkeen, joka tullaan korvaamaan uudella toiminnallisuudella (tässä esimerkissä Caps Lock -painikkeen toiminnallisuus poistetaan) ja
  • loput kahdeksan nollaa päättävät lukuarvon.

Seuraava vaihe uudelleenohjelmoinnissa on näppäinten numerokoodien selvittäminen. Jokaisella painikkeella on yksilöivä numerosarja, joka useimmiten esitetään heksadesimaalimuodossa. Jos jonkin näppäimen toiminnallisuuden haluaa kokonaan pois, riittää asettaa sen uudeksi arvoksi neljä nollaa. Oheisessa taulukossa on lueteltu yleisimpien näppäinten yksilöivät eli niin sanotut scan code -arvot.

Näppäinten scan code -arvoja
PerusnäppäimetScan Code
' "28 00
- _0C 00
, <33 00
. >34 00
/?35 00
;:27 00
[ {1A 00
|2B 00
] }1B 00
¨ ~29 00
= +0D 00
0 )0B 00
1 !02 00
2 @03 00
3 #04 00
4 $05 00
5%06 00
6 ^07 00
7 &08 00
8 *09 00
9 (0A 00
A1E 00
B30 00
C2E 00
D20 00
E12 00
F21 00
G22 00
H23 00
I17 00
J24 00
K25 00
L26 00
M32 00
N31 00
O18 00
P19 00
Q10 00
R13 00
S1F 00
T14 00
U16 00
V2F 00
W11 00
X2D 00
Y15 00
Z2C 00
Erikoisnäppäimet
sovelluspainike5D E0
askelpalautin0E 00
Caps Lock3A 00
Delete53 E0
End4F E0
Enter1C 00
Escape01 00
Home47 E0
Insert52 E0
vasen Alt38 00
vasen Ctrl1D 00
vasen vaihtopainike2A 00
vasen Windows5B E0
Num Lock45 00
Page Down51 E0
Page Up49 E0
virtapainike5E E0
PrtSc37 E0
oikea Alt38 E0
oikea Ctrl1D E0
oikea vaihtopainike36 00
oikea Windows5C E0
Scroll Lock46 00
Sleep5F E0
välilyönti39 00
tabulaattori0F 00
herätyspainike63 E0
Numeronäppäimet
052 00
14F 00
250 00
351 00
44B 00
54C 00
64D 00
747 00
848 00
949 00
-4A 00
*37 00
.53 00
/35 E0
+4E 00
Enter1C E0
Nuolinäppäimet
alas50 E0
vasemmalle4B E0
oikealle4D E0
ylös48 E0
Funktionäppäimet
F13B 00
F23C 00
F33D 00
F43E 00
F53F 00
F640 00
F741 00
F842 00
F943 00
F1044 00
F1157 00
F1258 00
F1364 00
F1465 00
F1566 00
Sovellusnäppäimet
laskin21 E0
sähköposti6C E0
media6D E0
pikaviestin11 E0
oma tietokone6B E0
F-näppäimet
sulje40 E0
Fwd42 E0
ohje3B E0
uusi3E E0
Office Home3C E0
avaa3F E0
tulosta58 E0
toista07 E0
vastaa41 E0
tallenna57 E0
lähetä43 E0
oikolue23 E0
tehtävälista3D E0
peruuta08 E0
Medianäppäimet
mykistä20 E0
soita seuraava19 E0
soita/paussi22 E0
soita edellinen10 E0
pysäytä24 E0
vähennä äänenvoimakkuutta2E E0
lisää äänenvoimakkuutta30 E0
Selainnäppäimet
paluu6A E0
suosikit66 E0
seuraava69 E0
selain/alkuun32 E0
uudista67 E0
etsi65 E0
pysätä68 E0
Microsoft Natural Multimedia Keyboard -näppäimet
kuvat64 E0
musiikki3C E0
mykistä20 E0
soita/paussi22 E0
pysätä24 E0
+ (lisää äänenvoimakkuutta)30 E0
- (vähennä äänenvoimakkuutta)2E E0
|<< (edellinen)10 E0
>>| (seuraava)19 E0
media6D E0
posti6C E0
selain/alkuun32 E0
pikaviestin05 E0
laskin21 E0
kirjaudu ulos16 E0
Sleep5F E0
ohje (F1-näppäin)3B E0
peruuta (F2-näppäin)08 E0
toista (F3-näppäin)07 E0
Fwd (F8-näppäin)42 E0
lähetä (F9-näppäin)43 E0
oikolue (F10-näppäin)23 E0
tallenna (F11-näppäin)57 E0
tulosta (F12-näppäin)58 E0

Juttuni aiheena olevan oikeanpuoleisen Windows-painikkeen arvo on 5C E0 eli teen tästä näppäimestä "Soita seuraava" -painikkeen, jonka arvo puolestaan on 19 E0. Lisään rekisteriin uuden arvon nimellä "Scancode Map". Työvaiheet ovat:

  1. Käynnistä Regedit-rekisterieditori.
  2. Avaa HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Keyboard Layout -ryhmä.
  3. Valitse Edit / New / Binary Value ja anna arvon nimeksi Scancode Map.
  4. Avaa uusi arvo ja näppäile numerot:00 00 00 00 00 00 00 00 02 00 00 00 19 E0 5C E0 00 00 00 00
  5. Paina lopuksi OK ja sulje editori.
  6. Kirjaudu ulos ja uudelleen sisään tai käynnistä tietokone uudelleen, jolloin muutos astuu voimaan.

Sain pienellä vaivalla uuden toiminnallisuuden yksinkertaiseen perusnäppäimistööni. Voin nyt helposti ohittaa soittokappaleita painamalla milloin tahansa oikeanpuoleista Windows-näppäintä. Spotify-soitto-ohjelmassa ei tarvitse olla fokusta, sillä painikkeen toiminnallisuus on käytettävissä kaikkialla käyttöjärjestelmässä, olinpa sitten kirjoittamassa sähköpostia tai selaamassa nettisivuja. Näppäimistön tehokkaampi hyödyntäminen nopeuttaa työskentelyä ja helpottaa elämää. Käyttämättömät painikkeet kannattaakin siis ottaa tehokäyttöön ja asettaa niille uudet toiminnallisuudet.

Julkaistu torstaina 15.9.2011 klo 17:33 avainsanalla ohjelmointi.

Edellinen
Sateenvarjo hajosi
Seuraava
Virtuaalinen Tampere
Evästeiden käyttö

Käytän sivustollani evästeitä tarjotakseni parhaimman mahdollisen lukukokemuksen blogini lukijoille. Jos jatkat sivustoni käyttöä, oletan, että hyväksyt evästeiden käytön sivustollani.

Lisätietoja evästeiden käytöstä