Следующий фрагмент предназначен для отображения сообщения, когда пользователь вводит ключ. Даже если фокус не включен в приложение. Но, похоже, проблема связана со следующим кодом. Он не вызывает функцию, зарегистрированную в цепочке с окнами. Я думаю, проблема связана с HINSTANCE hInst
. Как мне изменить приведенный ниже код, чтобы я мог видеть это сообщение, когда пользователь удаляет ключ.отображение сообщения, когда пользователь удаляет ключ
// Global Variables
static HHOOK handleKeyboardHook = NULL;
HINSTANCE hInst = NULL;
void TestKeys_setWinHook // i call this function to activate the keyboard hook
(...) {
hInst = GetModuleHandle(NULL);
handleKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInst, 0); // LowLevelKeyboardProc should be put in the hook chain by the windows,but till now it doesn't do so.
printf("Inside function setWinHook !");
}
// the following function should be called when the user taps a key.
static LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {
printf("You pressed a key !\n");
return CallNextHookEx(handleKeyboardHook, nCode, wParam, lParam);
}
Но окна не вызывает функцию LowLevelKeyboardProc
. Я не понимаю причину, но я уверен, что проблема связана с функцией hInst
. Как мне его инициализировать?
До сих пор выход, который я вижу Inside function setWinHook !
Практически идентичный http://stackoverflow.com/questions/10731172/cannot-see-the-message-when-user-presses-the-key – Deanna
@Deanna да! начал эту работу после рассмотрения этого вопроса! –