Tôi đang tạo ứng dụng bảng điều khiển mà tôi muốn ghi lại các lần nhấn phím (như mũi tên lên). Tôi đã tạo ra một Bàn phím mức thấp Hook có nghĩa vụ phải nắm bắt tất cả các phím bấm trong bất kỳ chủ đề nào và gọi hàm gọi lại của tôi, nhưng nó không hoạt động. Các chương trình quầy hàng một chút khi tôi nhấn một phím, nhưng không bao giờ gọi lại gọi lại. Tôi đã kiểm tra tài liệu nhưng chưa tìm thấy gì cả. Tôi không biết liệu tôi có đang sử dụng SetWindowsHookEx() không chính xác (với kiến thức của tôi nó tạo thành công móc) hay hàm gọi lại của tôi không chính xác! Tôi không chắc chắn những gì sai! Xin được cảm ơn trước về sự giúp đỡ.C++ SetWindowsHookEx WH_KEYBOARD_LL Thiết lập đúng
#include "Windows.h"
#include <iostream>
using namespace std;
HHOOK hookHandle;
LRESULT CALLBACK keyHandler(int nCode, WPARAM wParam, LPARAM lParam);
int _tmain(int argc, _TCHAR* argv[]) {
hookHandle = SetWindowsHookEx(WH_KEYBOARD_LL, keyHandler, NULL, 0);
if(hookHandle == NULL) {
cout << "ERROR CREATING HOOK: ";
cout << GetLastError() << endl;
getchar();
return 0;
}
MSG message;
while(GetMessage(&message, NULL, 0, 0) != 0) {
TranslateMessage(&message);
DispatchMessage(&message);
}
cout << "Press any key to quit...";
getchar();
UnhookWindowsHookEx(hookHandle);
return 0;
}
LRESULT CALLBACK keyHandler(int nCode, WPARAM wParam, LPARAM lParam) {
cout << "Hello!" << endl;
// Checks whether params contain action about keystroke
if(nCode == HC_ACTION) {
cout << ((KBDLLHOOKSTRUCT *) lParam)->vkCode << endl;
}
return CallNextHookEx(hookHandle, nCode,
wParam, lParam);
}
Vui lòng xem [ở đây] (http://stackoverflow.com/questions/2127112/global-keyboard-hook-not-working/2127292 # 2127292) cho một câu hỏi tương tự, mà tôi đã trả lời sẽ giúp bạn. – t0mm13b