Как одновременно эмулировать нажатие кнопки мыши и клавиши? - C#
Формулировка задачи:
Нужно сделать одновременную эмуляцию клика ЛКМ и к примеру Ctrl. Или чтобы Ctrl был зажат, и была возможность при этом эмулировать клик ЛКМ.
В отдельности для эмуляции нажатия клавиш на клавиатуре я использую SendKeys.Send.
Для эмуляции клика мышкой конструкцию:
Прошу предложите решения исходя из вышеописанного, но если есть более простое не требующие совмещения вышеописанных частей кода - еще лучше.
Спасибо.
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo); private const int MOUSEEVENTF_LEFTDOWN = 0x02; private const int MOUSEEVENTF_LEFTUP = 0x04; private const int MOUSEEVENTF_RIGHTDOWN = 0x08; private const int MOUSEEVENTF_RIGHTUP = 0x10; Cursor.Position = new Point(829, 475); Thread.Sleep(500); mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0);
Решение задачи: «Как одновременно эмулировать нажатие кнопки мыши и клавиши?»
textual
Листинг программы
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo); private const int MOUSEEVENTF_LEFTDOWN = 0x02; private const int MOUSEEVENTF_LEFTUP = 0x04; private const int MOUSEEVENTF_RIGHTDOWN = 0x08; private const int MOUSEEVENTF_RIGHTUP = 0x10; [System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)] static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag public const int VK_CONTROL = 0x11; ///////////////// здесь какой-то код keybd_event(VK_CONTROL, 0x9d, 0, 0); // Ctrl Press Cursor.Position = new Point(700, 350); Thread.Sleep(500); mouse_event(MOUSEEVENTF_LEFTDOWN, Cursor.Position.X, Cursor.Position.Y, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0); keybd_event(VK_CONTROL, 0x9d, KEYEVENTF_KEYUP, 0);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д