Prohození CAPS LOCK na AltGr a SCROLL LOCK na CAPS LOCK

MyEgo.cz

home foto blogy mywindows.cz kontakt

Prohození CAPS LOCK na AltGr a SCROLL LOCK na CAPS LOCK

Windows Vista 17.07.08

Definici klávesnice je možné ve Windows 2000, XP a Vista (včetně 64bitové verze) libovolně uživatelsky upravovat pomocí Scan Code Maps. Popisuje to tento dokument Microsoftu a zde si můžete stáhnout seznam Scan Codes pro jednotlivé klávesy.

Okamžitě se nabízí použití pro vypnutí CAPS LOCK klávesy, většinou neužitečné. Problém je zde ono slovo "většinou", občas se CAPS LOCK může hodit. Osobně používám poněkud inteligentnější řešení než primitivní vypnutí CAPS LOCK (jak je propaguje Živě.cz), a to přemapování CAPS LOCK klávesy na stisk AltGr (takže můžete psát znak zavináč pomocí přemapovaného CAPS LOCK + 2) a namapování původní funkce CAPS LOCK na jinak zcela neužitečnou klávesu SCROLL LOCK.

Takto bude vypadat definice Scancode Maps (pro libovolnou verzi Windows):

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,03,00,00,00,\
                   38,e0,3a,00,3a,00,46,00,00,00,00,00

Pokud se s tím nechcete psát do regeditu, můžete si rovněž stáhnout soubor capslock.reg a importovat jej do registrů kliknutím na něj.

Jak to funguje?

Prvních 4+4 bajtů je vynulovaná hlavička (tedy 8x hex:00 hodnota), následuje čtyřbajtový počet přemapování (v tomto případě hex:03 00 00 00, počítá se i terminátor), poté jsou vlastní přemapování kláves  (vždy po 2+2 bajtech, vše formát Little Endian) a celá sekvence je ukončena čtyřbajtovou nulou (terminátor).

Přemapována je tedy klávesa 0046 na 003A , což je SCROLL LOCK na CAPS LOCK, a 003A na E038, což je CAPS LOCK na AltGr. Pokud si chcete upravit chování jiných kláves, postačí prostě doplnit či změnit tyto Scan Codes a je to hotové.

Na mapování kláves pomocí Scancode Map existuje i grafická utilitka KeyTweak.


Komentáře

  1. 1 kalwi 09.12.07, 02:12:59
    FB

    Tento způsob jsem před pár lety používal na prohození Z a Y na české klávesnici (česká QWERTY má totiž kromě Z/Y odlišné i některé jiné klávesy), ale nevyhovovalo mi to z toho důvodu, že to nemění význam kláves, ale má to stejný efekt, jako kdybyste natvrdo předrátovali spoje tlačítek.

    To způsobovalo problémy s programy, které rozlišují klávesy na úrovni HW, tedy nikoliv podle toho, jaká akce je jim přidružena. V případě úváděné změny CAPS LOCK na AltGr je to ale žádoucí.

    Pro změnu mapování kláves na úrovni namapovaných znaků existuje nástroj Keyboard Layout Creator přímo od samotného Microsoftu, který umí vytvořit vlastní národní rozložení klávesnice, jež můžete nainstalovat k tomu stávajícímu (nebo ho úplně nahradit) a přepínat jej klasickým způsobem na panelu jazyků:
    http://www.microsoft.com/globaldev/tools/msklc.mspx...

    Já si pomocí něj vytvořil úplně vlastní rozložení (velmi podobné linuxovému CZ QWERTY, které jsem tehdy asi půl roku používal). Bohužel, tímto nástrojem ale zase prozměnu nejde měnit význam kláves CTRL, ALT, SHIFT, CAPS LOCK apod.

  2. 2 Tobiáš Potoček 09.12.07, 08:12:29
    FB

    Mě osobně to vyhovuje, tak jak to je. Na CAPS LOCK hmatám malíčkem podobně jako na shift a když píšu zavináč, či další podobně klávesy, použiji prostě pravý alt + @ (&#{}....).

    Btw. používá se SCROLL LOCK v dnešní době vůbec na něco?

  3. 3 Glos Robert 09.12.07, 10:12:51
    FB

    Nikdy mě nenapadlo hledat kvůli přehmatům nějaké účinné řešení, ale tohle je prostě geniální. Na malé notebookové klávesnici se denně stane, že místo písmene "a" stisknu Caps Lock a poté si nevšimnu že píšu samé CAPS :) Super, nejlepší článek všech dob. Na živě caps lock vypnuli, nevím proč, mnohdy se hodí. Nedomysleli to. Díky za řešení, doporučím ho mnoha dalším lidem ;-)

  4. 4 Radek Hulán 09.12.07, 11:12:50
    FB

    [2] SCROLL LOCK se k ničemu nehodí, právě proto je geniální ji přemapovat na CAPS LOCK ;-)

  5. 5 Radek Hulán 09.12.07, 12:12:02
    FB

    [1] "problémy s programy, které rozlišují klávesy na úrovni HW" -- to je nesmysl, ve Windows nic nepřistupuje přímo k HW, není to MS-DOS z roku 1990, i taková složitá věc jako Logitech G15 klávesnice samozřejmě respektuje Scancode Maps

  6. 6 Tobiáš Potoček 09.12.07, 12:12:10
    FB

    [4] Tak proč ho pořád výrobci na klávesnici rvou? Naštěstí tedy už ne na notebookové, já nemám kam CAPS LOCK přemapovat. A jak jsem psal výše, nevadí mi to.
    [3] Přijde mi, že při standardním rozložení prstů na klávesnici, patří nad "a" malíček a není potřeba hmatat někam jinam. Možná tak splést si tab/shift s CAPS LOCKEM, ale ty jsou zas výrazně posunuty směrem nahoru či dolu.

  7. 7 kalwi 09.12.07, 12:12:58
    FB

    [5] To 'na úrovni HW' bylo myšleno jako na úrovni Scancodes, tedy nikoliv na tom, jaká akce je příslušnému Scancode přidružena - každá klávesa má svůj Scancode a teprv na tyto Scancodes jsou mapovány znaky podle národního rozložení znaků.

    Vzpomínám si, že to mělo vliv třeba na některé starší hry, které rozlišují klávesy nikoliv podle mapování znaků, ale právě podle Scancodes. Takže po prohození Z a Y tyto klávesy interpretovaly přesně naopak, než jsem chtěl. Např. do konfiguračních souborů hry Half-life jsem musel psát Z, ale vliv to pak mělo na klávesu Y.

    Zkrátka, chtěl jsem tím říct, že pokud někdo chce změnit rozložení znaků na klávesnici, je lepší použít MSKLC, kde je možno si nadefinovat i vlastní kombinace znaků na klávesách. Pro přemapování funkčních kláves je zase vhodnější použít přemapování Scancodes.

  8. 8 Glos Robert 09.12.07, 01:12:18
    FB

    [6] Jo, jo s tabulátorem se plete taky často, ale když přehmatávám z myši na klávesnici, a přitom nepíšu zrovna všemi deseti a ještě potřebuju napsat číslice v alfanumerické části....prostě se přehmatávám opravdu často. Při programování nemáš vždycky standardní rozložení prstů. Já teda ne, dělám věci dost jinak :D

  9. 9 Tobiáš Potoček 09.12.07, 02:12:43
    FB

    [8] Tak pravda, při programování člověk často nepíše klasickým rozložením prstů. Ačkoliv problémy, které jsi uváděl, bych tipoval spíše na leváka. Já jako pravák mám prakticky celou dobu položenou levou ruku na klávesnici a nehýbu s ní. Pravou rukou přehmatávám z myši na klávesnici a tam žádný problém s přehmaty nemám. Ono jde o zvyk, já jsem zrovna prošel školní drezúrou psaní všemi deseti, takže to mám dost zažité:D

  10. 10 Jakub Bukaj 09.12.07, 05:12:42
    FB

    Ja by som sa chcel spýtať, či a ako je potom možné systém zase vrátiť do pôvodného stavu :) Lebo sa mi to páči, ale... Ďakujem.

  11. 11 Radek Hulán 09.12.07, 06:12:05
    FB

    [10] spusť si regedit a smaž v něm větev HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Keyboard Layout\ Scancode Map

  12. 12 Jakub Vrána 10.12.07, 11:12:05
    FB

    Osobně klávesy nemám přemapované, ale ozvučené, takže přehmat ihned poznám. Dá se to nastavit již od Windows 95 přes Ovládací panely | Možnosti usnadnění | Ozvučení kláves. Jakékoliv zmáčknutí *-Lock potom vyvolá zvuk.

    U všech možností tohoto panelu je naopak vhodné vypnout klávesové zkratky, protože jinak se zamyslíte se zmáčknutou klávesou Shift a rázem se zapne nějaká podivná funkce.

  13. 13 Butkic 07.01.08, 04:01:20
    FB

    Tak jsem nepochodil, po importování toho souboru do registrů se vůbec nic nezměnilo :-( capslock funguje pořád stejně, mám Visty HP, tak fakt nevím.

  14. 14 Mirek Koudelka 17.07.08, 03:07:13
    FB

    [4]
    Scroll lock používám v Excelu - posouvání dokumentu klávesnicí, ale jinak opravdu moc využití nemá.

  15. 15 termit 256 13.11.08, 09:11:58
    FB

    [1]

    Existuje neco takoveho i pro Win95 prip 98?
    Potreboval bych premapovat klavesy v tomto systemu.