Программное нажатие мыши - C#
Формулировка задачи:
Суть задачи: когда зажата левая кнопка мышки, на компьютере в этот момент должны эмулироваться нажатия мыши.
В связи с этим возникли вопросы.
1) Через что лучше перехватывать нажатия мыши ? Я пытаюсь через GetAsyncKeyState.
2) Функция GetAsyncKeyState определяет, является ли клавиша отпущенной или нажатой во время вызова функции и была ли клавиша нажата после предыдущего вызова GetAsyncKeyState. Т.е. эта функция возвращает -32767, если клавиша нажата или была нажата после предыдущего вызова, или ноль, если она отпущена. Я правильно понимаю ?
3) Если все это дело реализовывать через GetAsyncKeyState, то приходится через цикл что-то в духе этого:
Что очень сильно нагружает процессор. Может кто чего-нибудь подсказать по этим вопросам ?
while (true) { int j = GetAsyncKeyState(1); if (j == -32767) { mouse_event((uint)MouseEventFlags.LEFTUP, 0, 0, 0, 0); mouse_event((uint)MouseEventFlags.LEFTDOWN, 0, 0, 0, 0); } }
Решение задачи: «Программное нажатие мыши»
textual
Листинг программы
[DllImport("User32.dll")] private static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey); //И проверка вот так if (Convert.ToInt32(GetAsyncKeyState(Keys.Escape).ToString()) != 0) tmr = -1;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д