【原创,转载请注明出处】Windows的键盘钩子,这是一个很实用很强大的功能,也是一个老生常谈的问题,但它本身是有一定缺陷的,比如不能所有的字符输入都是大写、不能记录上档字符输入、数字键盘输入被打上了“Num”前缀,等待。下面是一个能够获得有效键盘输入的全局键盘钩子,已处理了大小写转换、上档输入、数字键盘输入转换,代码如下:
#include <windows.h>
//控制台编译添加的编译选项
#pragma comment(lib,"kernel32.lib")
#pragma comment(lib,"user32.lib")
#pragma comment(linker,"/section:shareddata,rws")
extern "C" __declspec(dllexport) char* FlushBuffer();
extern "C" __declspec(dllexport) BOOL EnableKeyboardHook();
extern "C" __declspec(dllexport) BOOL DisableKeyboardHook();
HHOOK hhkHook=NULL;
HINSTANCE hInstance=NULL;
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved