Készítsen fényorgonát a billentyűzetéből!

15115 17

Lepjük meg magunkat vagy az ismerősünket egy olyan, mindössze néhány soros futtatható fájllal, ami villogtatja a billentyűzetünk LED-jeit, valóságos show-t varázsolva rá.

A Num, Caps és Scroll Lock billentyűk lenyomására a billentyűzetünkön felvillan egy kis zöld fény, ezt mindenki tudja. Azt viszont már kevesebben, hogy ezeket a billentyűket akár egy program is le tudja nyomni helyettünk.
Ugorjunk is neki, nyissunk meg egy jegyzettömböt (Start/Minden program/Kellékek/Jegyzettömb), és másoljuk bele az alábbi néhány sort:

Set WshShell = WScript.CreateObject("WScript.Shell")
For i = 0 to 5
 WshShell.SendKeys "{NUMLOCK}"
 WScript.Sleep 60
 WshShell.SendKeys "{CAPSLOCK}"
 WScript.Sleep 60
 WshShell.SendKeys "{SCROLLLOCK}"
 If (i mod 2) Then WScript.Sleep 200
Next

A Fájl/Mentés másként menüponttal rögzítsük úgy a fájlt, hogy a fájlnév helyére a következőt írjuk, idézőjelekkel együtt: "ledvillogtato.vbs". Kapcsoljuk ki manuálisan az éppen aktív lock funkciókat, hogy egyik led se világítson a billentyűzeten! Most futtassuk a létrehozott fájlt!
Háromszor felfutnak a fények egymás után, majd megáll a program. Természetesen a fenti kódot módosítva egyéni villogásokat is készíthetünk, ezért most röviden bemutatjuk, hogyan is működik a program.

fenyorgona
Ki gondolná, hogy fényorgonaként is használható
hirdetés

Az első sorral nem kell különösebben foglalkozni. Létrehoz egy shell objektumot, amelyen keresztül billentyűzet-lenyomásokat küldünk a rendszer felé. A következő sorok megértéséhez fontos tudni a felfutó fény elméletét. Valójában a program lenyomja egymás után a három lock gombot, kis késleltetéssel. Ezt a folyamatot 6x megismétli. Első futáskor bekapcsolja a fényeket, a második futásnál kikapcsolja őket és így tovább. Azért kell tehát 3 fényfelfutáshoz 6x fordulni a programnak, mert minden második futás a lekapcsolásról gondoskodik. A második sorban tehát beállítjuk, hogy a következő sorok, amelyek egy kicsit beljebb kezdődnek, hatszor fussanak le (nullától ötig). A for ciklus első utasításával (SendKeys) lenyomtuk a NumLock-ot. A Sleep utasítással vártunk 60 milliszekundumot, majd lenyomtuk a következő billentyűt és így tovább. A ciklus utolsó sorában egy feltétellel találkozunk (If), ami azért kellett, hogy a fényfelfutások között legyen egy kis szünet (200 ms), ne olvadjanak annyira össze. Mivel egy fényfelfutáshoz kétszer kell fordulnia a for ciklusnak, ezért logikus, hogy csak minden második fordulás után kell szünetet tennünk (200 ms). A feltételben szereplő (i mod 2) egy osztás, a for ciklus fordulásainak számát (0,1…5) leosztjuk 2-vel és vesszük a maradékot. Páratlan számok esetén, azaz minden második futáskor a maradék 1 lesz, azaz be kell tenni a 200 milliszekundumos késleltetést. Az utolsó Next utasítás pedig jelzi, hogy véget ért a ciklus.

Hozzászólások (17) , melyek közül a legfrissebbek:

DS

Persze hogy lehet

Dickassman

Hy mostanába kezdenek érdekelni az ilyenek, lehet olyan alkalmazást írni hogy mikor elindítod megnyit egy jegyzet tömböt és el kezd bele írni? ezek alapján?
Sajnos semennyire nem értek ehez, miből lehetne tanulni könyv vagy weblap?

válasz

vendég:
A jegyzettömböt futtatni bírod a START/FUTTATÁS/NOTEPAD.exe

vendég

hogy futtassam a jegyzettömböt??

vendég

hogy futtassam a jegyzettömböt??

Tib!

még az is érdekes ha a progi megnyitása előtt nem kikapcsoljuk az összes lock-ot hanem bekapcsoljuk

Ombodi77

lol azéRt FelemÁs A nagy ÉS kiSbEtűk aRáNya, mERt áTírTam az cikLusT 1005-Re Így eGy jó idEig elviLlog Még és KapcSolgatja a cAps loCK-Ot :d

LoL

LoL ez de jó má...CooL

David

Hello!
Meg tudjátok mondani, hogy lehet lekérdezni a ledek aktuális állapotát?

Adam

A Winamp-hoz vagy (Foobar-hoz) már említett programot nem tudja valaki ideadni, vagy elmondani a progamozás menetét?

a

Üdv!

A fájlnévnél bármi lehet csak ne szövegfájl legyen és .vbs -re végződjön. Ennyi a lényeg.

Cool

Ezt poénnak hívják. Nem feltétlenül kell mindennek hasznosnak lenni, amit egy PC előtt ülve csinálsz. Az ember néha szórakozhat is... Egy haszontalan, de érdekes kis programozási feladat.

led

lehet így akarnak az embereknek kedvet csinálni a programozáshoz .
így akár egy kis csapatot is össze lehet hozni és persze komolyabb helyzeteket is megvalósítani .

lwolf

Régen én is írtam ilyen elvont programot ami például binárisan írt meg morzézott a billentyűzet ledekkel... csak azért, hogy bebizonyítsam a billentyűzet nemcsak beviteli eszköz. Teljes 3 bit kimenet, nem semmi! :) Aztán kinőttem ezt a bajomat. LOL

mercu

Winap-hoz is van egy ilyen beépülő modul ami a zene ritmusára villogtatja a Led-eket. De nincs semmi értelme, mert ha valaki pl böngészés közben hallgatja a zenét, emiatt a Caps Lock bekapcsolódik és elég zavaró nagy és kisbetűvel írogatni.

csomakk

én a notebookom bluetooth ledjével játszottam igy :)

Új hozzászólás



Ön korábban már belépett a HVG csoport egyik weboldalán. Ha szeretne ezen az oldalon is bejelentkezni, ezen a linken egy kattintással megteheti.

X