小编Mah*_*hir的帖子

C++ SetWindowsHookEx WH_KEYBOARD_LL正确设置

我正在创建一个控制台应用程序,我想记录按键(如向上箭头).我已经创建了一个低级键盘挂钩,它应该捕获任何线程中的所有按键并调用我的回调函数,但它不起作用.当我按下一个键时程序停止了一段时间,但从不调用回调.我检查了文档,但没有找到任何东西.我不知道我是否错误地使用了SetWindowsHookEx()(据我所知它成功创建了钩子)或者我的回调函数是不正确的!我不确定什么是错的!在此先感谢您的帮助.

#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 …
Run Code Online (Sandbox Code Playgroud)

c++ hook key capture setwindowshookex

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

capture ×1

hook ×1

key ×1

setwindowshookex ×1