Windows的低级键盘输入

dic*_*oce 5 keyboard winapi low-level

可以使用哪些win32调用来全局检测按键事件(不仅仅是1个窗口,我希望每次按下一个键时都会收到消息),来自Windows服务?

Bri*_*ndy 5

您想使用 Win32 Hooks。特别是键盘挂钩。

你可以在这里读更多关于它的内容

您想要的挂钩类型是 WH_KEYBOARD,您可以通过 Win32 API SetWindowsHookEx 设置它。

基本上,每当在任何应用程序系统范围内按下一个键时,Windows 都会调用您创建的 dll 中的函数。

该钩子将调用您的函数,该函数将具有以下接口:

LRESULT CALLBACK KeyboardProc(      
    int code,
    WPARAM wParam,
    LPARAM lParam
);
Run Code Online (Sandbox Code Playgroud)

有关此回调的更多信息请参见此处

使用 Windows 挂钩,您不仅可以跟踪所有进程中的系统范围事件,还可以过滤它们并完全停止它们。