Hooks (имитация нажатия левой кнопки мышки) - C#
Формулировка задачи:
Полная задача состоит в том, что пользователь будет выбирать окно. Когда он будет нажимать например клавишу E английскую, то будет имитироваться нажатие левой кнопки мышки в форме относительно левого края, ниже где-то на пикселев 10. Нашел материал как определить позицию мышки в родной форме и глобальное положение, но вот как прилепить к определенно другому окну так и не понял. Можете натолкнуть на правильный путь или подкрепить куском кода? Заранее спасибо)
Решение задачи: «Hooks (имитация нажатия левой кнопки мышки)»
textual
Листинг программы
- using System.Runtime.InteropServices;
- public partial class Form1 : Form
- {//импортируем 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
- };
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- //и использование - клик правой примерно в центре экрана
- //(подробнее о координатах, передаваемых в mouse_event см. в MSDN):
- const int x = 32000;
- const int y = 32000;
- mouse_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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д