#define _WIN32_WINNT 0x0400 #include <windows.h> #include <stdio.h> HHOOK hHook; LRESULT CALLBACK LLKeyBoardProc(int nCode, WPARAM wParam, LPARAM lParam) { PKBDLLHOOKSTRUCT pkl = (PKBDLLHOOKSTRUCT)lParam; TCHAR buffer[123]; if(nCode >= HC_ACTION && !(pkl->flags & 0x80)) { sprintf(buffer, "你按下了%c键哦", pkl->vkCode); MessageBox(NULL, buffer, TEXT("钩子"), MB_OK); return TRUE; } return CallNextHookEx(hHook, nCode, wParam, lParam); } int main() { hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LLKeyBoardProc, GetModuleHandle(NULL), 0); MSG msg; while(GetMessage(&msg, NULL, 0, 0)) DispatchMessage(&msg); UnhookWindowsHookEx(hHook); return 0; }