通过按键进行开/关控制台程序

时间:2013-02-16 19:56:33

标签: c++ keyevent

我编写简单的控制台应用程序,我想通过按键来控制它 有我的代码:

#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);
    }

}

当控制台窗口未激活时,如何在键盘按下时启动和停止程序?

1 个答案:

答案 0 :(得分:1)

当程序不是活动程序时,允许程序知道你输入的内容是一个非常具有侵入性的方案。

你可以使用SetWindowsHookEx来完成。

回调函数需要this signature