[英]Visual C++ Win32 api code to intercept a certain keystroke
我的 Windows 10 每隔幾分鍾就會輸入一個字符減號(-),我已經檢查過了,發現這不是我的鍵盤問題。 現在我想編寫一個在后台運行的程序,在我做一些嚴肅的工作時攔截並刪除不需要的字符? 如何使用 win32 api 做到這一點? (這樣我也可以學習 Win32 API。)
工具使用 -
我正在關注此參考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.