1
我學習的窗戶掛鉤,和我寫了這個代碼:鍵盤鉤子問題
DLL:
extern "C" __declspec(dllexport) LRESULT CALLBACK CBTFrenk(int nCode, WPARAM wParam, LPARAM lParam){
FILE *fp = fopen ("F:\\log.txt", "a");
fprintf(fp, "CALLED!");
fclose(fp);
return CallNextHookEx(NULL, nCode, wParam, lParam); }
應用:
int _tmain(int argc, _TCHAR* argv[])
{
char fine;
HINSTANCE hdll = LoadLibrary((LPCTSTR) L"F:\\Progetti\\CBT_Hook\\Debug\\DllForHook.dll");
wprintf(L"%d\n", GetLastError());
HOOKPROC pfunc = (HOOKPROC)GetProcAddress(hdll, "[email protected]");
wprintf(L"%d\n", GetLastError());
HHOOK handleToAHook = SetWindowsHookEx(WH_KEYBOARD, pfunc, hdll, 0);
wprintf(L"%d\n", GetLastError());
scanf("%d", &fine);
return 0;
}
DLL和鉤子程序被加載,而不錯誤,但是當我按下鍵盤的按鍵時,該功能什麼也不做。爲什麼?如果我用WH_CBT改變WH_KEYBOARD,這是工作......是什麼原因? WH_KEYBOARD和WH_KEYBOARD_LL有什麼區別?
感謝您的合作。