Як емулювати миша

Маніпулятор типу «миша»- Необхідний атрибут будь-якого комп`ютера. Без нього неможливо уявити управління або навігацію по додатках. Даний маніпулятор активно взаємодіє з користувачем посредствам відображення на екрані його дій (переміщень, кліків, прокрутки). Для деяких завдань програмування, може знадобитися програмна емуляція миші.
Як емулювати миша

Вам знадобиться

  • - середовище розробки Microsoft Visual C ++ .Net (не нижче 2003).

Інструкція

1


Встановіть Microsoft Visual C ++ .Net (не нижче 2003). Існує кілька версій цього середовища розробки- платна і безкоштовна. Їх можна завантажити з сайту розробника. Після установки, створіть новий проект і підключіть System.Windows.Forms і System.Drawing, як показано нижче: using System.Windows.Forms- using System.Drawing-
2
Для переміщення миші по екрану в операційних системах сімейства Windows застосовуйте функції, які встановлюють безпосередньо позицію курсора на екрані. Використовуйте, наприклад, наступний код: Cursor.Position = new Point (x, y) -Даний рядок перемістить курсор в позицію, зазначену в конструкторі класу Point (x, y) (де x і y - координати позиції в яку слід встановити курсор) . Якщо необхідно встановлювати позицію курсора неодноразово, створіть один екземпляр класу Point і для нього застосовуйте метод змінює координати. Це дозволить заощадити пам`ять: Point point = new Point (0,0) - Cursor.Position = point.Offset (20, 100) - Cursor.Position = point.Offset (40, -20) - Даний код створює об`єкт класу Point ( ) з координатами 0,0. Другий рядок зміщує точку Point на 20 пікселів по Х і на 100 пікселів по Y. Поточна координата, на яку вказує об`єкт point, дорівнює 20, 100. У третьому рядку знову відбувається зміщення Point на вказану кількість пікселів (40 і -20 відповідно). Поточна координата дорівнює 60 (20 + 40) по X і 80 (100-20) по Y.



3
Для емуляції натискання клавіші миші використовуйте функції Win32 SendInput () або mouse_event (). Наприклад, щоб програмно імітувати клік правою кнопки використовуйте наступний код: // імпортуйте mouse_event (): [DllImport ("User32.dll")] Static extern void mouse_event (MouseFlags dwFlags, int dx, int dy, int dwData, UIntPtr dwExtraInfo) - // для зручності використання створіть перерахування з необхідними константами (прапорами), // які визначають дії миші: [Flags] enum MouseFlags { Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010, Absolute = 0x8000} - // використання - клік по координатам, встановленим нижче: const int x = 39000- // координати по Хconst int y = 12000 // координати по 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) -
4
Емулюються натискання кнопки миші посредствам посилки повідомлень WM_LBUTTONDOWN і WM_LBUTTONUP, за допомогою функції Win API SendMessage (). Наприклад, як показано нижче: void OnBtPerformClick (object sender, EventArgs e) {SendMessage (btDemo.Handle, Messages.WM_LBUTTONDOWN, MK_LBUTTON, IntPtr.Zero) -SendMessage (btDemo.Handle, Messages.WM_LBUTTONUP, MK_LBUTTON, IntPtr.Zero) - }


Увага, тільки СЬОГОДНІ!


Оцініть, будь ласка статтю
Всього голосів: 86
Увага, тільки СЬОГОДНІ!