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 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
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
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.
A není v Tvém případě ta klávesa zbytečná? Já bych ji tam netrpěl.
Takze skus toto:
Spust regedit, chod na:
(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
... pre vsetkych: podobnym sposobom by sa dali podla mna znefunkcnit aj power-off/sleep klavesy, potom by tam bolo treba dat
00 00 00 00 00 00 00 00 03 00 00 00 00 00 5E E0 00 00 5F E0 00 00 00 00
Ale neskusal som, ak niekto chce moze skusit a dat vediet...
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ě registrů opět do systému
Á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
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...
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!
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
Enable_NumLock.reg
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).
Ahoj,
řeším stejný problém, ale na Win7 64 postup se změnou registrů nefunguje. Šlo by mi poradit jak změnit registr tak, aby to fungovalo? Díky
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
http://www.orionsoft.cz/view.asp?tree=cz&node=/Soft 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
Jestli chceš prográmek na zapnutí NumLoc, tak ti ho napíšu zadarmo - ale až v úterý po DPH. Dáš ho do "Po spuštění" a nahodí NumLock a ukončí se. Jestli ti to bude tak vyhovovat.
Potrebuje blokovat klavesu (ak sa stlaci omylom). Vid vyssie zasah do registrov, (zdarma )
Jj, nečet' jsem to všechno . Ale i takový program bych zvládnul (hookem) za pár minut .
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)
Chlapi, vy jste zlatí Pokud někdo napíšete ten prográmek, budu vám moc vděčná! Jakýkoliv prográmek je lepší než přímý zásah uživatele do registrů
Ked budem mat zajtra vecer cas urobim a hodim na inet...
Edit: nejak mam zrovna malo casu, takze ani dnes nie, ale az to bude dam vediet...
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 .
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.
Počuj a čo tak obísť problém a neriešiť ho priamo? Nahadzovanie NumLock každú povedzme 1/5 sekundy a nevšimne si to vlastne nikto. NumLock je globálny ak sa nemýlim. Len národné klávesnice sú lokálne.
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 ).
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)...
Tohle by nepomohlo?http://sourceforge.net/project/showfiles.php?group_ id=67561&release_id=125294
2 Cat: Díky za snahu, ale to je pro klávesu CapsLock
Pánové, vy jste úúúžasní! 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í!