Как имитировать нажатия клавиш клавиатуры и мышки? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Программа постоянно запрашивает число. Если например введено число 3, то нужно чтоб программно было нажаты кнопочки Ctrl+Ald+Delete. Если введено число 8 то нужно чтоб курсор приехал в координаты 700,750 (панель задач), ПКМ, координаты 700, 695 (на строчку "диспетчер задач"), ЛКМ. Нашел это, пока мало что понятно, разбираюсь... http://msdn.microsoft.com/en-us/library/ms646260%28VS.85%29.aspx http://msdn.microsoft.com/en-us/library/ms646310%28v=VS.85%29.aspx

Решение задачи: «Как имитировать нажатия клавиш клавиатуры и мышки?»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
 
int main()
{
    while(1)
    {
      int key=GetKeyState(VK_SPACE); // сохранить
      printf("Press SPACE\n"); //
 
      while(GetKeyState(VK_SPACE)==key) // ждать пока нажмут пробел
        {
          Sleep(500);
        }
    printf("Space have pressed\n"); //
    Sleep(500);
 
    }
 
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: stdio.h, stdlib.h, Windows.h
  2. Создание функции main()
  3. В бесконечном цикле while(1) выполняется следующая последовательность действий: a. С помощью функции GetKeyState() сохраняется текущее состояние нажатия клавиши VK_SPACE (пробел) в переменную key. b. С помощью функции printf() выводится сообщение Press SPACE\n (Нажмите пробел) c. Затем в бесконечном цикле while(GetKeyState(VK_SPACE)==key) ожидается нажатие клавиши пробел. d. Во время ожидания с помощью функции Sleep(500) происходит задержка в 500 миллисекунд. e. После отпускания клавиши пробел выводится сообщение Space have pressed\n с помощью функции printf() f. Снова происходит задержка в 500 миллисекунд с помощью функции Sleep(500).
  4. В конце функции main() возвращается 0, что означает успешное выполнение программы.

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

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