Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno NumLock ve WinXP - jak zabezpečit její trvalou funkci?

Ahoj, můžete mi prosím poradit pro WindowsXP, zda jde nějak softwarově zabezpečit, aby klávesa NumLock byla trvale zapnutá BEZ OHLEDU na to, jestli se jí někdo dotkne? Nemám na mysli způsoby jako vylomení klávesy nebo zašprajcnutí sirkou :-D Spíš se ptám na softwarové řešení či nějaký zásah do registrů..? ;-)

Vím, že lze nastavit ozvučení kláves NumLock, CapsLock a ScrollLock, ale to je jen částečné řešení. V nastavení Woken jsem nic jiného nenašla, ve TweakUI taky ne a na serverech typu slunečnice nebo stahuj též ne. Děkuju předem za odpověď :-)

Edit: upřesňuju, že mi nejde jen o to, aby byla ta klávesa zapnutá při startu. Ale potřebuju nějakou ochranu před nechtěným vypnutím během práce. Pořád zadávám čísla a občas se mi stane, že se přehmátnu a číselnou část klávesnice si vypnu :-(

A ozvučení kláves funguje jen při zapnutých reproduktorech, při vypnutých stejně není nic slyšet :-/

Předmět Autor Datum
Toto asi (IMHO) aplikaciou ovplyvnit nejde, o to sa stara predpokladam priamo ovladac klavesnice. V…
MM.. 23.02.2007 17:16
MM..
mozno pomoze msklc.mspx a nadefinovat si novy layout a numlock klavesu nadefinovat ako nejaku inu, a…
Eva_M 24.02.2007 22:31
Eva_M
A není v Tvém případě ta klávesa zbytečná? Já bych ji tam netrpěl. ]:)
Kurt 23.02.2007 17:24
Kurt
Takze skus toto: Spust regedit, chod na: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboa…
MM.. 23.02.2007 17:43
MM..
... pre vsetkych: podobnym sposobom by sa dali podla mna znefunkcnit aj power-off/sleep klavesy, pot…
MM.. 23.02.2007 17:47
MM..
Děkuju, vyzkouším to, až tady něco dodělám, a pak dám vědět... tedy pokud se dostanu po úpravě regis…
Eva_M 23.02.2007 20:11
Eva_M
Takze skus toto: Spust regedit, chod na: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\C ontrol\Keybo…
Eva_M 24.02.2007 22:34
Eva_M
diky za feedback ;-) Daju sa tak premapovat/zrusit akekolvek klavesy, presny popis tych cisel je na…
MM.. 25.02.2007 01:10
MM..
Daju sa tak premapovat/zrusit akekolvek klavesy Ještě jednou díky :-) Překvapuje mě, že se to nedá…
Eva_M 25.02.2007 01:19
Eva_M
Da sa vyrobit .reg subor na ktory staci potom poklepat a zapise to do registrov. Da sa urobit aj .re…
MM.. 25.02.2007 01:45
MM..
Ahoj, řeším stejný problém, ale na Win7 64 postup se změnou registrů nefunguje. Šlo by mi poradit ja…
Tomasss 22.04.2013 16:21
Tomasss
Vyřešeno. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Keyboard Layout zde jsem zadal binár… poslední
Tomasss 22.04.2013 16:46
Tomasss
Děkuju moc! Funguje i na Windows 7. Akorát sem nejdřív vytvořil nějkou špatnou hodnotu, musí to být…
ignacek 08.04.2012 11:20
ignacek
Evi, můžu doporučit http://www.orionsoft.cz/view.asp?tree=cz&node=/Soft ware/AntiCapsLock akorát t…
mia 23.02.2007 20:39
mia
Evi, můžu doporučit view.asp ware/AntiCapsLock akorát to není freeware, starší verze byla. Díky za…
Eva_M 23.02.2007 22:28
Eva_M
Jestli chceš prográmek na zapnutí NumLoc, tak ti ho napíšu zadarmo - ale až v úterý po DPH. Dáš ho d…
Rce 25.02.2007 01:47
Rce
Potrebuje blokovat klavesu (ak sa stlaci omylom). Vid vyssie zasah do registrov, (zdarma ;-))
MM.. 25.02.2007 01:50
MM..
Jj, nečet' jsem to všechno :-[. Ale i takový program bych zvládnul (hookem) za pár minut ;-).
Rce 25.02.2007 02:16
Rce
Prave ze toto sa pravdepodobne nehookuje, myslim ze hookovat sa daju len spravy WM_KEYDOWN iduce apl…
MM.. 25.02.2007 03:29
MM..
Chlapi, vy jste zlatí :-) Pokud někdo napíšete ten prográmek, budu vám moc vděčná! Jakýkoliv prográm…
Eva_M 25.02.2007 08:33
Eva_M
Ked budem mat zajtra vecer cas urobim a hodim na inet... Edit: nejak mam zrovna malo casu, takze an…
MM.. 26.02.2007 04:00
MM..
Tak som sa k tomu dostal cez vikend, ale hookom to blokovat nejde. CapsLock sa zablokovat da (WH_KE…
MM.. 05.03.2007 19:37
MM..
Máš pravdu, hookem to nejde. Ten zmetek tam má nějakou nadřazenou vrstvu, co to lapá dřív. Když jsem…
Rce 05.03.2007 23:11
Rce
Ihned nahodit spet sa da len tak ze poslem systemu este jeden virtual key VK_NUMLOCK cez keybd_event…
MM.. 06.03.2007 01:09
MM..
Myslím, že se to stačí podvrhnout dřív VK_NUMLOCK, než dorazí téměř současně stisklá klávesa. Z popi…
Rce 06.03.2007 01:57
Rce
Win to chyta niekde medzi keybd_event a LL hookom. Ano pravdepodobne by stacilo v hooku prehodit ten…
MM.. 06.03.2007 02:06
MM..
Počuj a čo tak obísť problém a neriešiť ho priamo? Nahadzovanie NumLock každú povedzme 1/5 sekundy a…
msx. 05.03.2007 22:40
msx.
Tak to uz to rovno mozem prepnut v hooku, tam to prepne v podstate okamzite po stlaceni numlock klav…
MM.. 05.03.2007 23:07
MM..
Tohle by nepomohlo?http://sourceforge.net/project/showfiles.php?group_ id=67561&release_id=125294
Cat 23.02.2007 22:44
Cat
2 Cat: Díky za snahu, ale to je pro klávesu CapsLock :-|
Eva_M 24.02.2007 22:25
Eva_M
Pánové, vy jste úúúžasní! :beer: Jestli to nejde, tak to neřešte, vyřešila jsem to pomocí návodu MM.…
Eva_M 06.03.2007 07:47
Eva_M

Toto asi (IMHO) aplikaciou ovplyvnit nejde, o to sa stara predpokladam priamo ovladac klavesnice. V registroch asi tiez nic nie je. Podla mna by to mohlo ist zmodifikovanim kbdcz.dll, skusim to disassemblovat ze co v tom je :-) prip. sa este ozvem...

P.S: mozno pomoze msklc.mspx a nadefinovat si novy layout a numlock klavesu nadefinovat ako nejaku inu, ale neviem ci sa da tam menit numlock nikdy som ten program neskusal. Potrebuje to mat nainstalovany aj NET framework 2.0 ak este nemas...

P.S.2. nieco som nasiel tu hilfen-5-145679-0.html podla toho by to malo ist aj cez registry, len este najst na MS presny popis nech si neodstavis klavesnicu :-)

mozno pomoze msklc.mspx a nadefinovat si novy layout a numlock klavesu nadefinovat ako nejaku inu, ale neviem ci sa da tam menit numlock nikdy som ten program neskusal.

Stáhla jsem, vyzkoušela jsem, ale tento program (Microsoft Keyboard Layout Creator) pro mou potřebu nevyhovuje. Pomocí toho prográmku totiž lze měnit layout pouze na části klávesnice s písmenky a těsně přiléhajících kláves (=to hlavní pole kláves na klávesnici), ale další klávesy už se tím přemapovat nedají. Numerickou klávesnici tímto vůbec přemapovat nelze, a to jsem zkoušela nejnovější verzi i různá nastavení toho softíku. Prostě NumLock pomocí tohoto SW nepřemapuju :-( Pro informaci dodávám, že tento softík je ke stažení zdarma, ale před stažením to požaduje ověření, zda Windows jsou originální (genuine user advantage...)

Pro informaci dalším hledajícím přidávám informaci, že se mi to nepodařilo ani s jiným free software MapKeyboard, o němž psali tady http://technet.idnes.cz/spatne-se-vam-pise-prohodte -si-klavesy-na-klavesnici-f92-/software.asp?c=A070 1 09_174501_software_dvr
Na první pohled to vypadalo dobře, ale nadefinované změny se vůbec nenačetly, přestože při zadávání vše vypadalo dobře, postupovala jsem a přesně podle návodu a samozřejmě jsem restartovala počítač. Soudíc podle diskuze k tomuto SW na různých serverech má tyto problémy víc lidí - prostě to nefunguje ani jim, přestože NET framework samozřejmě máme.

Takze skus toto:
Spust regedit, chod na:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

(pozor, nie Keyboard Layouts)

klikni na Keyboard Layout pravym a vytvor novu hodnotu:
Value Name: Scancode Map
Data Type: REG_BINARY (Binary Value)

a zapis tam toto:
Value Data: 00 00 00 00 00 00 00 00 02 00 00 00 00 00 45 00 00 00 00 00

A restart. A daj vediet ci funguje numlock :-)

Takze skus toto:
Spust regedit, chod na:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\C ontrol\Keyboard Layout(pozor, nie Keyboard Layouts)

klikni na Keyboard Layout pravym a vytvor novu hodnotu:
Value Name: Scancode Map
Data Type: REG_BINARY (Binary Value)

a zapis tam toto:
Value Data: 00 00 00 00 00 00 00 00 02 00 00 00 00 00 45 00 00 00 00 00

A restart. A daj vediet ci funguje numlock

Áno, to je ono, toto naozaj funguje :-) ďakujem velmi pekne ;-)
Nejdříve se mi nechtělo do registrů a zkoušela jsem to obejít různými softíky z internetu, ale nepodařilo se, jak jsem psala jinde. Tento zásah ale funguje přesně tak, jak jsem chtěla. Opravdu VELMI DĚKUJU!!! Jako účetní tuto úpravu skutečně velmi oceňuji :beer::beer::beer:

diky za feedback ;-) Daju sa tak premapovat/zrusit akekolvek klavesy, presny popis tych cisel je na strankach MS http://www.microsoft.com/whdc/device/input/w2kscan- map.mspx, takze ziaden strach ze Win nenabehne :-), ak by chcel niekto premapovat nejake ine klavesy, staci si najst scan kody klaves (scan code set 1).
U MS je to popisane pre Win2k, preto som napisal ze skusit (ci to ide aj na XP).

Inac este info: ak bude potreba prepnut numlock, malo by sa to dat zo "SW klavesnice" (mala by byt niekde v start-programy-prislusnestvo), tam by to blokovane nemalo byt...

Daju sa tak premapovat/zrusit akekolvek klavesy

Ještě jednou díky :-) Překvapuje mě, že se to nedá řešit nějak snadněji = i pro běžné uživatele. Třeba řada mých kolegů účetních by toto jistě uvítala, ale nemůžu od nich očekávat, že budou editovat registry :-/ Škoda že ten MSKLC neumí editovat i ostatní klávesy... V každém případě Ti ještě jednou moc a moc děkuju! :beer:

Da sa vyrobit .reg subor na ktory staci potom poklepat a zapise to do registrov. Da sa urobit aj .reg subor ktory to odstrani. Popis reg suborov 310516

Musi mat uzivatel prava zapisu do registrov, a potom treba restart.
Urob si napr. v poznamkovom bloku (ulozi to ako .txt takze potom premenovat na .reg):

Block_NumLock.reg

REGEDIT4

[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

Enable_NumLock.reg

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=-

Edit: pozor upravil som "REG_BINARY:" na "hex:", "REG_BINARY" nejak nefunguje.
P.S. za posledny znak v tych suboroch radsej dodatocne odriadkovat (novy riadok).

Vyřešeno.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Keyboard Layout
zde jsem zadal binární hodnotu Scanmode Map:
00 00 00 00 00 00 00 00
02 00 00 00 00 00 45 00
00 00 00 00

I když to vypadá shodně jako tvoje varianta, tak pomocí *.reg souboru mi to nepomohlo.

Děkuju moc! Funguje i na Windows 7. Akorát sem nejdřív vytvořil nějkou špatnou hodnotu, musí to být binární.

Funguje na 100% maximální spokojenost:) Vzhledem k tomu, že mám numlock hned vedle backspace a pořád si ho nechtěně vypínám super:) Díky moc:)

Evi, můžu doporučit
view.asp ware/AntiCapsLock
akorát to není freeware, starší verze byla.

Díky za tip, vypadá to dobře. Těch 290 Kč možná obětuju za pohodlí ;-)

Edit o den později: Ano, tento prográmek funguje i na ten zatracený NumLock, ale za licenci na druhý počítač chce autor další peníze :-( Kdybyste si tento SW chtěl někdo stáhnout a nainstalovat, tak se nedivte, že ho po instalaci nikde nemůžete najít. Obvykle nově nainstalované programy umístí ikonku na plochu, do panelu rychlé spuštění nebo do menu Start - Programy. Tento SW jsem ale nikde nemohla najít. Teprve po delším hledání jsem ho našla v ovládacích panelech v menu Klávesnice, kde přibyl další list s "ouškem" AntiCapsLock, tam se to nastavuje. Na stránce programu jsem ale tuto informaci nenašla :-(

Prave ze toto sa pravdepodobne nehookuje, myslim ze hookovat sa daju len spravy WM_KEYDOWN iduce aplikaciam, numlock nejde aplikaciam, ale neskumal som MSDN moc podrobne. Tiez ma to ako prve napadlo ze urobim na to aplikaciu s hookom za 5 minut ;-)

P.S. asi sa to bude dat cez WH_KEYBOARD_LL hook, virtual key code VK_NUMLOCK. Ale uz sa mi to nechce robit :-) Mozes urobit, je to lepsie ako registry (tam treba stale restart)

Tak som sa k tomu dostal cez vikend, ale hookom to blokovat nejde.

CapsLock sa zablokovat da (WH_KEYBOARD_LL hookom). Ale u NumLock to zablokuje len prepinanie LEDky, ale funkcionalita NumLocku ostava (aj ked po stlaceni NumLock LEDka nezhasne, num klavesy zacnu fungovat ako sipky).

Jedine co mozem urobit aplikaciou je, ze ak sa stlaci NumLock, tak vo Windows-hooku rychlo prepnem NumLock nazad.
Tam ale je maly problem - nie je mi zatial jasne ze ak sa stlacia dve klavesy naraz a ak jedna z nich je NumLock a sa stlaci o zlomok sekundy skor ako ta druha, ci tu druhu klavesu nevyhodnoti ako bez numlocku, ptz. neviem kedy presne Windows vyhodnocuje klavesu ako s numlock/bez numlock a zatial som nemal cas to podrobne skumat.
P.S. ... alebo sa nejako Windowsom zamontovat do systemu spracovavania klavesnice, je mozne ze prave preto ten program co mas sa objavi len v ovl. paneloch, ptz sa zamontoval niekde do ovladania klavesnice Win, a nebezi ako aplikacia...

Sa k tomu dostanem asi az cez vikend, mozem dat k dispozicii aspon take riesenie ako pisem (ak v tom nie je nejaky iny zadrhel).

Máš pravdu, hookem to nejde. Ten zmetek tam má nějakou nadřazenou vrstvu, co to lapá dřív. Když jsem tím prolejzal, tak jsem se dostal až k tomu, že když se drží 5 sekund NumLock, zapne se ozvučení kláves (kviknutí při stisku Caps, Num atd.). Po stisku NumLock tento zhasne a když ho držíš 5 sekund, nahodí se ta potvornost ozvučení a NumLock si Widle zase vrátějí vklídku zpět. Ozvučení kláves se zapne v Ovládacích panelech "Možnosti Usnadnění" (není-liž tak nastaveno).
Resumé: NulLoc zežrat nejde, ale IMHO Jez. vyhoví jej ihned nahodit zpět.
//Edit: Ten NumLock má pro Widle nějaký extra význam, že se zpracovává lautr jinak než třebas CapsLock.
//Edit2: Napadlo mě vydloubnout tu klávesu šroubovákem a zahodit :-D.

Ihned nahodit spet sa da len tak ze poslem systemu este jeden virtual key VK_NUMLOCK cez keybd_event. Lenze medzitym (ak sa stlacia 2klavesy takmer naraz - mne sa to stava casto ze trafim 2klavesy namiesto jednej :-)) uz moze byt v nejakej systemovej fronte nejaka klavesa z num-bloku a ta by bola vyhodnotena ako bez numlocku, preto sa mi to nepaci.
P.S. ked si to skusal dufam ze vies ze global hook musi byt v osobitnej dll, ptz pre kazdy proces v systeme sa nacita osobitna instancia global hooku, a ze ako v dll urobit shared data-segment pre vsetky procesy, to mi nejaku hodinu zabralo kym som to nasiel, myslim ze je to celkom zaujimave tak to sem placnem:
#pragma data_seg(".DSSHRD")
HHOOK hHookHandle = NULL;
#pragma data_seg()
#pragma comment(linker, "/section:.DSSHRD,rws")
... ptz v DLL aj normalne globalne premenne su pre kazdy proces osobitne, vyssieuvedena sranda sposobi ze hHookHandle bude spolocna pre vsetky procesy ktore s tou DLL pracuju...

Skusim stiahnut ten MS keyboard layout editor ze co to presne vie, mal by sa dat opatchovat napr. CZ layout tak aby bol bez numlocku, a pridat do systemu ako dalsi layout klavesnice, nebolo by to lepsie? Ale este som to netestoval (notebook s WinXP je momentalne bez HDD :-))

Myslím, že se to stačí podvrhnout dřív VK_NUMLOCK, než dorazí téměř současně stisklá klávesa. Z popisu keybd_event to celkem vyplývá: The keyboard driver's interrupt handler calls the keybd_event function. Dle mého stačí hook poslat dřív VK_NUMLOCK, než vyšle ovladač klávesnice další znak taktéž přes API keybd_event. Bafrování kláves se koná až uvnitř volání keybd_event.

Ad PS: Vím, už jsem na to narazil, když jsem dělal kdysi dávno global hook na překlad z čtečky čárového kódu která se cpe mezi klávesnici. Ta nedávala čísla při české klávesnici, ale psala ěščřžýáíé. Protože bylo potřeba ovlivnit víc aplikací (a cizích), řešil jsem to global hook a překladem na vlastní triko v té dll :-).

Nevím, jestli ten MS keyboard layout editor pomůže. Jestli ten NumLock chytaj Widle někde v hlubinách svých střev, jestli se ten layout nebude dělat až potom. Vyměnit Keyboard Layout by mělo jít přímo API funkcí LoadKeyboardLayout. Možná by mohlo stačit i API MapVirtualKey - už bohužel nemám čas to vyzkoušet.

//Edit: Ještě mě napadlo, jestli by nešlo rychlejc nahazovat NumLock API funkcí SetKeyboardState - kterou to sice nejde v normálním programu (resp jde, ale nezmění stav LEDek), protože nemá přístupný "global input state of the system" ale v global hoocku by mít mohla :)). Tím by se totiž daly vymazat i současně zmáčknuté klávesy.

Win to chyta niekde medzi keybd_event a LL hookom. Ano pravdepodobne by stacilo v hooku prehodit ten NumLock nazad, ale nepaci sa mi v tom to riziko, kedze nikto nevie ako je robeny ten low-level buffer vo Win :-)

Mam tie layouty uz dost prestudovane, tymi fciami to nejde. Staci ale vyrobit si vlastny keyboard layout, a na to staci ten MS layout editor, ale nie v GUI (tam NumLock nie je nakresleny), ale treba ulozit layout ako .KLC subor, otvorit v notepade, a zmenit :-)
Moze to niekto skusit kto ma ten MS layout editor, a vlozit sem riadok ktory ma v stlpci "SC" (to je scancode) cislo 45 a/alebo 69 ? Alebo najlepsie pastnut sem cely KLC subor :-)
.. resp. ja to v priebehu tyzdna na PC kde su WinXP otestujem ci to s tou zmenou layoutu bude fungovat...

P.S. ako dalsia moznost je v hooku zahadzovat VK_NUMPAD0 az 9 a namiesto toho poslat normalnu klavesu 1 az 9 :-) Lenze v ceskej klavesnici na klavesach 1 az 9 je debilna diakritika... Tazko povedat co je lepsie. Mne sa zda najlepsie urobit novy keyboard layout cez ten MS layout creator.

Tak to uz to rovno mozem prepnut v hooku, tam to prepne v podstate okamzite po stlaceni numlock klavesy. 1/5s je podla mna vela, problem pre uctovnika moze znamenat aj stotina sekundy po zachyteni o numlock, za ten cas moze stlacit dalsiu klavesu s cislom a to cislo tam mat nebude (a z miliona bude 100tisic :-D).

Inac uz som trochu studoval aj dll-ky pre keyboard layout, myslim ze by som vedel odtial odstrelit NumLock, takze by sa dal potom urobit vlastny keyboard layout (pomocou microsoft keyboard layout creatora). Neviem ale ci to je pre Evu akceptovatelne alebo radsej to riesit inac (v hooku by sa dali aj menit num klavesy na normalne klavesy 0-9 apod)...

Pánové, vy jste úúúžasní! :beer: Jestli to nejde, tak to neřešte, vyřešila jsem to pomocí návodu MM.. přes registry a funguje to naprosto spolehlivě. Překvapuje mě, že tato funkcionalita není řešená obecně třeba i Microsoftem. Vždyť naprostá většina lidí potřebuje NumLock zapnutý trvale a blokování NumLocku by určitě uvítali. Ten softík od OrionSoftu to taky umí, akorát že je placený. Děkuju vám mockrát za ochotu, jste fakt skvělí! :beer::beer::beer:

Zpět do poradny Odpovědět na původní otázku Nahoru