Cum Se Emulează Un Mouse

Cuprins:

Cum Se Emulează Un Mouse
Cum Se Emulează Un Mouse

Video: Cum Se Emulează Un Mouse

Video: Cum Se Emulează Un Mouse
Video: Emulate HID base on java,WIFI ESP8266 Arduino 3D mouse 2024, Noiembrie
Anonim

Un manipulator de tip „mouse” este un atribut necesar al oricărui computer. Fără aceasta, este imposibil să ne imaginăm controlul sau navigarea prin aplicații. Acest manipulator interacționează activ cu utilizatorul afișând acțiunile sale (mișcări, clicuri, derulare) pe ecran. Pentru unele sarcini de programare, poate fi necesară emularea software-ului mouse-ului.

Cum se emulează un mouse
Cum se emulează un mouse

Este necesar

Mediul de dezvoltare Microsoft Visual C ++. Net (nu mai mic decât 2003)

Instrucțiuni

Pasul 1

Instalați Microsoft Visual C ++. Net (2003 sau o versiune ulterioară). Există mai multe versiuni ale acestui mediu de dezvoltare - plătite și gratuite. Acestea pot fi descărcate de pe site-ul dezvoltatorului. După instalare, creați un proiect nou și conectați System. Windows. Forms și System. Drawing așa cum se arată mai jos: folosind System. Windows. Forms; folosind System. Drawing;

Pasul 2

Pentru a muta mouse-ul pe ecran în sistemele de operare Windows, utilizați funcții care stabilesc direct poziția cursorului pe ecran. Folosiți, de exemplu, următorul cod: Cursor. Position = new Point (x, y); Această linie va muta cursorul în poziția specificată în constructorul clasei Point (x, y) (unde x și y sunt coordonatele poziției în care ar trebui să fie plasat cursorul) … Dacă trebuie să setați poziția cursorului în mod repetat, creați o instanță din clasa Point și utilizați metoda pentru schimbarea coordonatelor pentru aceasta. Aceasta va economisi memoria: Punct punct = Punct nou (0, 0); Cursor. Position = point. Offset (20, 100); Cursor. Position = point. Offset (40, -20); Acest cod creează un obiect din clasa Punct () cu coordonatele 0, 0. A doua linie deplasează Punctul cu 20 pixeli în X și 100 pixeli în Y. Coordonata curentă indicată de obiectul punct este 20, 100. A treia linie se întâmplă din nou Offset Point cu numărul specificat de pixeli (40 și, respectiv, -20). Coordonata actuală este 60 (20 + 40) în X și 80 (100-20) în Y.

Pasul 3

Utilizați funcțiile Win32 SendInput () sau mouse_event () pentru a emula un clic de mouse. De exemplu, pentru a simula programat un clic dreapta, utilizați următorul cod: // import mouse_event (): [DllImport ("User32.dll")] static extern void mouse_event (MouseFlags dwFlags, int dx, int dy, int dwData, UIntPtr dwExtraInfo); // pentru ușurință în utilizare, creați o enumerare cu constantele necesare (steaguri) // care definesc acțiunile mouse-ului: [Steaguri] enum MouseFlags {Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010, Absolut = 0x8000}; // utilizați - faceți clic pe coordonatele stabilite mai jos: const int x = 39000; // coordonate de Xconst int y = 12000; // coordonate de 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. Absolute | MouseFlags. RightUp, x, y, 0, UIntPtr. Zero);

Pasul 4

Emulați un clic al mouse-ului trimițând mesaje WM_LBUTTONDOWN și WM_LBUTTONUP utilizând funcția Win API SendMessage (). De exemplu, așa cum se arată mai jos: void OnBtPerformClick (expeditor obiect, EventArgs e) {SendMessage (btDemo. Handle, Messages. WM_LBUTTONDOWN, MK_LBUTTON, IntPtr. Zero); SendMessage (btDemo. Handle, Messages. WM_LBUTTONUP,

Recomandat: