HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Billentyű lenyomás szimulálása tetszőleges alkalmazásnál


Példaprogram letöltése

7663 bájt

Mellékelt példában egy olyan alkalmazást valósítunk meg, mely képes arra, hogy az épp aktív programnál billentyű lenyomásokat szimuláljon. Ennek hatására az adott program úgy érzékeli, hogy a programunk által küldött billentyűket a felhasználó a billentyűzeten keresztül nyomkodta le.

A megvalósításhoz a SendKeys osztályt használhatjuk, ezen belül is a Send függvényt. Ez egyetlen sztring típusú paramétert vár. A megadott sztring-ben lévő karakterek lesznek azok, melyeket az aktív program úgy érzékel, mintha a felhasználó azokat a billentyűzeten keresztül gépelte volna be.
Send
Osztály: System.Windows.Forms.SendKeys
public static void Send(
string keys
);
Send függvény segítségével szimulálhatunk tetszőleges billentyű lenyomásokat.
Paraméterek
string keys
A keys paraméterben kell megadni azt a sztringet, mely tartalmazza a szimulálandó karaktereket.
Megjegyzés
A speciális billentyűkhöz egy-egy kód tartozik. E kód elhelyezése a keys paraméter sztringjében egyenértékű lesz a kódhoz tartozó billentyű lenyomásával.
Billentyű Kód
BACKSPACE {BACKSPACE} vagy {BS} vagy {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DELETE {DELETE}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER}vagy ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} vagy {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
Keypad + {ADD}
Keypad - {SUBTRACT}
Keypad * {MULTIPLY}
Keypad / {DIVIDE}
Lehetőségünk van arra is, hogy módosító billentyűket is szimuláljuk. Ehhez az alábbi jelek egyikét kell használnunk, majd zárójelek között megadni azokat a karaktereket, melyekre szükségünk van.
Billentyű Kód
SHIFT +
CTRL ^
ALT %
Így például a "+(a)" elküldése egyenértékű egy shift + a billentyű kombinációval.
Arra is van lehetőségünk, hogy egy karaktert megismételtessünk egy általunk megadott darabszámig. Ehhez kapcsos zárójelek között adjuk meg az adott karaktert, majd írjuk utána számmal, hogy hány ismétlést szeretnénk.
Speciális karakterek szimulálására is van lehetőségünk. Ezek esetén a nevüket kell leírnunk szintén kapcsos zárójelek közé. Például egy Enter billentyű szimulálásához az "{enter}" sztringet kell átadni.
  protected void timer1_Tick (object sender, System.EventArgs e)
  {
    SendKeys.Send("ab");
    SendKeys.Send("+(cd)");
    SendKeys.Send("{e 10}");
    SendKeys.Send("{enter}");        
    SendKeys.Send("{tab}");
  }
Tudnunk kell, hogy a SendKeys osztály használatával csak Windows alkalmazásoknál szimulálhatjuk a billentyű kombinációk lenyomását, valamint azt, hogy a PrintScreen billentyű nem szimulálható.
Másik hasznos függvénye a SendKeys osztálynak a SendWait függvény. Ez nem csak elküldi a fenti szabályok figyelembevételével átadott sztringet az adott alkalmazásnak, de meg is várja, amíg az adott program ezt fogadni tudja. Vagyis a SendWait függvény hívás után a saját program futása csak akkor folytatódik a következő utasításunknál, ha fogadó alkalmazás már feldolgozta a kapott billentyű „lenyomást”.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 539. oldal

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!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |