Как имитировать нажатия клавиш клавиатуры и мышки? - 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;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdio.h, stdlib.h, Windows.h
- Создание функции main()
- В бесконечном цикле 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). - В конце функции main() возвращается 0, что означает успешное выполнение программы.