以下是我的函数原型:LRESULT CALLBACK JournalRecoProc(int code, WPARAM wParam, LPARAM lParam)
{
}
如何检查内部,如果有输入或鼠标按钮被点击?
我想应该使用lParam,但我找不到方法。
最佳答案
作为MSDN says:
如果hook过程返回的消息范围为WM_KEYFIRST to
WM_KEYLAST,以下条件适用:
EVENTMSG结构的paramL成员指定按下的键的虚拟键代码。
EVENTMSG结构的paramH成员指定扫描代码。
无法指定重复计数。事件总是表示一个关键事件。
所以,您可以这样访问它:
LRESULT CALLBACK JournalPlaybackProc(int code, WPARAM wParam, LPARAM lParam)
{
// ... blah blah ...
if (code == HC_GETNEXT)
{
// examine eventmsg
EVENTMSG *pEvent = (EVENTMSG*)lParam;
// keypress
if (pEvent->message >= WM_KEYFIRST &&
pEvent->message <= WM_KEYLAST)
{
// decode key press
unsigned int uVirtualKeyCode = pEvent->paramL;
unsigned int uScanCode = pEvent->paramH;
// do your conditional checks here
if (uVirtualKeyCode == VK_ENTER)
{
// Enter key was pressed
}
}
else if (pEvent->message == WM_LBUTTONDOWN)
{
// left mouse click
}
else // ... add checks for other messages ....
}
// ... blah blah ...
}
关于c++ - JOURNAL RECORDPROC确定按下的键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21114651/