Я пишу простое консольное приложение и хочу управлять им нажатием клавиши
Вот мой код:
#include "stdafx.h"#include <windows.h>
int i = 1;
BOOL WINAPI ConsoleHandlerRoutine(DWORD dwCtrlType)
{
if (dwCtrlType == CTRL_CLOSE_EVENT)
{
i = 0;
return TRUE;
}
return FALSE;
}
int _tmain(int argc, _TCHAR* argv[])
{
BOOL ret = SetConsoleCtrlHandler(ConsoleHandlerRoutine, TRUE);
while(i == 1){
SetCursorPos(200, 200);
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
SetCursorPos(205, 205);
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
}
как заставить программу запускаться и останавливаться при нажатии на клавиатуре, когда окно консоли не активно?
Разрешение программе узнать, что вы печатаете, когда она не активна, — довольно навязчивый сценарий.
Вы можете сделать это, хотя, с SetWindowsHookEx.
Функция обратного вызова должна иметь эта подпись.
Других решений пока нет …