Программное нажатие мыши - 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;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы