|
|
Programvezérlés felhasználói beavatkozás nélkül
|
|
Példaprogram letöltése
2181 bájt
|
Naponta végezzük egyes programokkal ugyanazokat a műveleteket? Mindig ugyanarra a gombra, menüpontra kell kattintani? Megtehetjük mindezt szkriptekből automatikusan mintegy makrószerűen.
Cikkünkhöz mellékelve megtalálható a példában szereplő szkript "SendKeys.vbs" néven.
A Windows Scripting Host lehetővé teszi, hogy billentyűkombinációkat küldjünk a rendszerbe úgy, mint ha a felhasználó tette volna ugyanezt a billentyűzet segítségével. Szintén mi határozhatjuk meg, hogy melyik alkalmazás fogadja ezeket. Ha ezt nem adjuk meg, akkor a Windows lesz a célpont: például kiléphetünk belőle, stb.
A használandó metódus neve: "SendKeys", szintaxisa:
Ahol az "obj" egy "WshShell" objektum a "sztring" pedig az átadandó billentyűkombináció.
Nézzük, hogy melyik billentyűt milyen formában kell megadni (elöl szerepel a billentyű, utána a SendKeys-beli megfelelője):
- BACKSPACE - {BACKSPACE}, {BS}, vagy {BKSP}
- BREAK - {BREAK}
- CAPS LOCK - {CAPSLOCK}
- DELETE - {DELETE} vagy {DEL}
- LE KURZOR NYÍL - {DOWN}
- BAL KURZOR NYÍL - {LEFT}
- JOBB KURZOR NYÍL - {RIGHT}
- FEL KURZOR NYÍL - {UP}
- END - {END}
- ENTER - {ENTER} vagy ~
- ESC - {ESC}
- HELP - {HELP}
- HOME - {HOME}
- INSERT - {INSERT} vagy {INS}
- NUM LOCK - {NUMLOCK}
- PAGE DOWN - {PGDN}
- PAGE UP - {PGUP}
- PRINT SCREEN - {PRTSC}
- SCROLL LOCK - {SCROLLLOCK}
- TAB - {TAB}
- Funkcióbillentyűk F1-F16 - {F1} - {F16}
- SHIFT - +
- CTRL - ^
- ALT - %
Az utolsó három lenyomva tartva működik, tehát egy elküldött ALT és F4 azt eredményezi, hogy az ALT lenyomva tartása mellett lett az F4 lenyomva.
Több egymás utáni lenyomást lehet rövidíteni, például 5 db "A" betűt így is megadhatunk: {A 5}, ügyelve a karakter utáni szóközre.
A PRINT SCREEN - {PRTSC} billentyű, alkalmazásoknak nem adható át.
Írjunk egy példa feladatot: A vágólapon tárolt képet töltsük be az MSPAINT programba és mentsük el MyPic néven.
A következő lépéseket kell megvalósítani:
Helyezzünk a vágólapra egy képet a PRINT SCREEN vagy ALT+ PRINT SCREEN billentyűkkel (ezt kézzel tegyük meg).
Hozzunk létre egy új "Wscript.Shell" objektumot.
set shell = WScript.CreateObject("Wscript.Shell")
Indítsuk el az MSPAINT programot.
Indulás után "untitled - Paint" fejléccel látható, aktivizáljuk ezt az ablakot, hogy biztosan ennek adjuk át a billentyű leütéseket.
shell.AppActivate "untitled - Paint", true
Mielőtt átadjuk az első billentyűt, várjunk 1 másodpercig, hogy legyen ideje a rendszernek aktívvá tenni az ablakot.
A CTRL+V kombinációval lehet beilleszteni a vágólapon lévő képet. Ha a kép nagyobb, mint a beállított bitkép méret, feltesz egy kérdést, hogy szeretnénk-e megnövelni a méretet, a fókusz az "Igen" ("Yes") gombon van, tehát kell egy ENTER-t is ütni. Ha kisebb a kép, mint a bitkép, akkor felesleges az ENTER, de bajt nem okoz.
shell.SendKeys "^v{ENTER}"
A mentés ablak a CTRL+S-re jön elő.
A fókusz a beírandó fájlnéven van. Ide írjuk a "MyPic" nevet. Ha nem az alapértelmezett képtároló mappába akarjuk helyezni, megadhatunk elérési utat is (pl.: "d:\xyz\MyPic").
shell.SendKeys "c:\MyPic"
"Üssünk" ENTERT a mentéshez.
Lépjünk ki az MSPAINT-ből az ALT+F4-el.
A Windows Intézővel (Explorer) ellenőrizzük, hogy sikeres volt-e a mentés. Vigyázzunk arra, hogy a különböző nyelvezetű programokban eltérők lehetnek a billentyűkombinációk akkor is, ha ugyanarról az alkalmazásról van szó.
|
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|