簡體   English   中英

Visual C++ Win32 api代碼攔截某個擊鍵

[英]Visual C++ Win32 api code to intercept a certain keystroke

我的 Windows 10 每隔幾分鍾就會輸入一個字符減號(-),我已經檢查過了,發現這不是我的鍵盤問題。 現在我想編寫一個在后台運行的程序,在我做一些嚴肅的工作時攔截並刪除不需要的字符? 如何使用 win32 api 做到這一點? (這樣我也可以學習 Win32 API。)

工具使用 -

  • Visual Studio C++ 2010 express-
  • 贏得 10 個 SDK。

我正在關注此參考https://docs.microsoft.com/en-us/windows/desktop/learnwin32/keyboard-input

#include <Windows.h>
#include <stdio.h>

static LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if ((wParam == WM_KEYDOWN || wParam == WM_KEYUP) && lParam != NULL)
    {
        if (((LPKBDLLHOOKSTRUCT)lParam)->vkCode == VK_OEM_MINUS)
        {
            return 1;
        }
    }

    return CallNextHookEx(NULL, nCode, wParam, lParam);
}

int main()
{
    HHOOK hHook = SetWindowsHookExW(WH_KEYBOARD_LL, LowLevelKeyboardProc, NULL, 0);
    MessageBoxW(NULL, L"hooking", L"", MB_ICONEXCLAMATION | MB_SYSTEMMODAL);
    UnhookWindowsHookEx(hHook);
    return 0;
}

編譯並運行這個程序,你會發現你不能在屏幕的任何地方輸入“-”。

如果它不適用於某些目標進程,請以管理員權限運行此程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM