Hook=(HHOOK)SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)LauncherHook,theApp.m_hInstance,0);
提示error C2065: 'WH_KEYBOARD_LL' : undeclared identifier
要是把WH_KEYBOARD_LL改成WH_KEYBOARD就没问题,这是为啥?
SetWindowsHookEx第一个参数的问题
答案:2 悬赏:50 手机版
解决时间 2021-02-12 17:17
- 提问者网友:山高云阔
- 2021-02-12 14:24
最佳答案
- 五星知识达人网友:煞尾
- 2021-02-12 15:05
WinUser.h 里面有这个 所以程序里面要把这个_WIN32_WINNT定义成大于 0x0400才行
#if (_WIN32_WINNT >= 0x0400)
#define WH_KEYBOARD_LL 13
#define WH_MOUSE_LL 14
#endif // (_WIN32_WINNT >= 0x0400)
#if (_WIN32_WINNT >= 0x0400)
#define WH_KEYBOARD_LL 13
#define WH_MOUSE_LL 14
#endif // (_WIN32_WINNT >= 0x0400)
全部回答
- 1楼网友:北城痞子
- 2021-02-12 15:49
这个api是系统内封装好了的,你只需要使用就行了。wh_keyboard_ll表示全局系统键盘钩子,就是不论用户按下键盘上的任何键都会捕获该消息。而wh_keyboard是针对当前用应程序的,如果焦点不在该应用程序上,就不会被捕获。这些参数都是系统定义好的
1>wh_callwndproc(4): 安装一个挂钩处理过程,在系统将消息发送至目标窗口处理过程之前,对该消息进行监视,详情参见callwndproc挂钩处理过程.
2>wh_callwndprocret(12) :安装一个挂钩处理过程,它对已被目标窗口处理过程处理过了的消息进行监视,详情参见 callwndretproc 挂钩处理过程.
3>wh_cbt(5) :安装一个挂钩处理过程,接受对cbt应用程序有用的消息 ,详情参见 cbtproc 挂钩处理过程.
4>wh_debug(9):安装一个挂钩处理过程以便对其他挂钩处理过程进行调试, 详情参见debugproc挂钩处理过程.
5>wh_foregroundidle(11):安装一个挂钩处理过程,该挂钩处理过程当应用程序的前台线程即将进入空闲状态时被调用,它有助于在空闲时间内执行低优先级的任务.
6>wh_getmessage(3):安装一个挂钩处理过程对寄送至消息队列的消息进行监视,详情参见 getmsgproc 挂钩处理过程.
7>wh_journalplayback(1):安装一个挂钩处理过程,对此前由wh_journalrecord 挂钩处理过程纪录的消息进行寄送.详情参见 journalplaybackproc挂钩处理过程.
8>wh_journalrecord(0):安装一个挂钩处理过程,对寄送至系统消息队列的输入消息进行纪录.详情参见journalrecordproc挂钩处理过程.
9>wh_keyboard(2):安装一个挂钩处理过程对击键消息进行监视. 详情参见keyboardproc挂钩处理过程.
10>wh_keyboard_ll(13):此挂钩只能在windows nt中被安装,用来对底层的键盘输入事件进行监视.详情参见lowlevelkeyboardproc挂钩处理过程.
11>wh_mouse(7):安装一个挂钩处理过程,对鼠标消息进行监视. 详情参见 mouseproc挂钩处理过程.
12>wh_mouse_ll(14):此挂钩只能在windows nt中被安装,用来对底层的鼠标输入事件进行监视.详情参见lowlevelmouseproc挂钩处理过程.
13>wh_msgfilter(-1):安装一个挂钩处理过程, 以监视由对话框、消息框、菜单条、或滚动条中的输入事件引发的消息.详情参见messageproc挂钩处理过程.
14>wh_shell(10):安装一个挂钩处理过程以接受对外壳应用程序有用的通知, 详情参见 shellproc挂钩处理过程.
15>wh_sysmsgfilter(6):安装一个挂钩处理过程,以监视由对话框、消息框、菜单条、或滚动条中的输入事件引发的消息.这个挂钩处理过程对系统中所有应用程序的这类消息都进行监视.详情参见 sysmsgproc挂钩处理过程.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯