keystroke util,键盘回调问题

时间:2009-01-17 23:25:21

标签: winapi keyboard callback

很久以前,当我看到一个应用为游戏做这个时,我就有了这个想法。

我想抓住某些击键。像/ s myCommand之类的东西。我有人告诉我并通过msn搞砸了我,所以我的第一个命令就像killmsn。我在msdn上查找了资源并得到了这一点。这不起作用,为什么不呢?是睡眠的BC吗?我应该怎么做,请注意我没有窗口,我希望这是一个控制台应用程序。我的KeyboardProc永远不会被称为

#include <windows.h>
#include <stdio.h>

HHOOK hook;
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
    printf("%c", wParam);
    return CallNextHookEx(hook, code, wParam, lParam);
}

int main()
{
    hook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, GetModuleHandle(0), 0);
    Sleep(10000);
    UnhookWindowsHookEx(hook);
    return 0;
}

1 个答案:

答案 0 :(得分:0)

解决方案

//Sleep(10000);
MSG msg;
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}
UnhookWindowsHookEx(hook);