以下是一个简单的C语言桌面程序,它可以禁止键盘按一次键响应多次。该程序使用Windows API函数来捕获键盘输入,并在按键按下时禁用键盘,然后在按键释放时重新启用键盘。

注意:该程序只能禁用物理键盘,无法禁用虚拟键盘(如屏幕键盘)。

#include <Windows.h>

LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {
    if (nCode == HC_ACTION) {
        switch (wParam) {
        case WM_KEYDOWN:
        case WM_SYSKEYDOWN:
            // 禁用键盘
            BlockInput(TRUE);
            break;
        case WM_KEYUP:
        case WM_SYSKEYUP:
            // 启用键盘
            BlockInput(FALSE);
            break;
        }
    }
    return CallNextHookEx(NULL, nCode, wParam, lParam);
}

int main() {
    // 安装键盘钩子
    HHOOK hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, NULL, 0);
    if (!hHook) {
        printf("Failed to install keyboard hook.\n");
        return 1;
    }
    // 进入消息循环
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    // 卸载键盘钩子
    UnhookWindowsHookEx(hHook);
    return 0;
}
能帮我写一个禁止键盘按一次键响应多次的可以在window上运行的C语言桌面程序吗?

原文地址: https://www.cveoy.top/t/topic/rX5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录