Manipulátor typu „myš“je nevyhnutným atribútom každého počítača. Bez neho je nemožné si predstaviť ovládanie alebo navigáciu cez aplikácie. Tento manipulátor aktívne interaguje s používateľom zobrazovaním jeho akcií (pohyby, kliknutia, posúvanie) na obrazovke. Pre niektoré programovacie úlohy môže byť potrebná softvérová emulácia myši.
Je to nevyhnutné
vývojové prostredie Microsoft Visual C ++. Net (nie nižšie ako 2003)
Inštrukcie
Krok 1
Nainštalujte si Microsoft Visual C ++. Net (2003 alebo novší). Existuje niekoľko verzií tohto vývojového prostredia - platené a bezplatné. Dajú sa stiahnuť z webovej stránky vývojára. Po inštalácii vytvorte nový projekt a pripojte System. Windows. Forms a System. Drawing podľa obrázka nižšie: using System. Windows. Forms; pomocou System. Drawing;
Krok 2
Na pohyb myši po obrazovke v operačných systémoch Windows používajte funkcie, ktoré priamo nastavujú polohu kurzora na obrazovke. Použite napríklad nasledujúci kód: Cursor. Position = new Point (x, y); Tento riadok presunie kurzor na pozíciu určenú v konštruktore triedy Point (x, y) (kde x a y sú súradnice polohy, kde by mal byť umiestnený kurzor) … Ak potrebujete opakovane nastaviť pozíciu kurzora, vytvorte jednu inštanciu triedy Point a použite pre ňu metódu zmeny súradníc. Ušetrí sa tým pamäť: Bodový bod = nový Bod (0, 0); Cursor. Position = point. Offset (20, 100); Cursor. Position = point. Offset (40, -20); Tento kód vytvorí objekt triedy Point () so súradnicami 0, 0. Druhý riadok posúva Bod o 20 pixelov v X a 100 pixelov v Y. Aktuálna súradnica, na ktorú ukazuje bodový objekt, je 20, 100. Tretí riadok sa opäť stane bod posunutia o zadaný počet pixelov (40, respektíve -20). Aktuálna súradnica je 60 (20 + 40) v X a 80 (100-20) v Y.
Krok 3
Na napodobnenie kliknutia myšou použite funkcie Win32 SendInput () alebo mouse_event (). Napríklad na programovú simuláciu kliknutia pravým tlačidlom použite nasledujúci kód: // import mouse_event (): [DllImport ("User32.dll")] static extern void mouse_event (MouseFlags dwFlags, int dx, int dy, int dwData, UIntPtr dwExtraInfo); // pre jednoduchšie použitie vytvorte výčet s potrebnými konštantami (príznakmi) //, ktoré definujú akcie myši: [Flags] enum MouseFlags {Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010, Absolútne = 0x8000}; // použitie - kliknite na súradnice nastavené nižšie: const int x = 39000; // súradnice podľa Xconst int y = 12000; // súradnice podľa Ymouse_event (MouseFlags. Absolute | MouseFlags. Move, x, y, 0, UIntPtr. Zero); mouse_event (MouseFlags. Absolute | MouseFlags. RightDown, x, y, 0, UIntPtr. Zero); mouse_event (MouseFlags. Absolútne | MouseFlags. RightUp, x, y, 0, UIntPtr. Zero);
Krok 4
Emulujte kliknutie myšou odosielaním správ WM_LBUTTONDOWN a WM_LBUTTONUP pomocou funkcie Win API SendMessage (). Napríklad ako je uvedené nižšie: void OnBtPerformClick (odosielateľ objektu, EventArgs e) {SendMessage (btDemo. Handle, Messages. WM_LBUTTONDOWN, MK_LBUTTON, IntPtr. Zero); SendMessage (btDemo. Handle, Messages. WM_LBUTTON, Messages. WM_LBUTTON, Messages. WM_LBUTTON,