HHook= g_msgHook = SetWindowsHookEx(WH_CALLWNDPROC, HookMessageProc, hApp1, GetCurrentThreadId());
LRESULT Widget::HookMessageProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= HC_ACTION)
{
CWPSTRUCT* tagCwp = (CWPSTRUCT*)lParam;
DWORD lw = LOWORD(tagCwp->wParam);
DWORD hw = HIWORD(tagCwp->wParam);
QString str = QString("handle =%1,message=%2,lp=%3,lw=%4 hw=%5").
arg(QString::number((int)tagCwp->hwnd)).
arg(QString::number(tagCwp->message,16)).
arg(QString::number(tagCwp->lParam)).
arg(QString::number(lw)).
arg(QString::number(hw));
QFile file("d:\\text.txt");
file.open(QIODevice::WriteOnly | QIODevice::Text|QIODevice::Append);
file.write(str.toUtf8()+"\n");
file.close();
return 1;
}
return CallNextHookEx(g_wndHook, nCode, wParam, lParam);
}
以下是运行的输出结果 :
请问下 Message ,以及 LPARAM是什么含义,该如何解析呢?
handle =1969694,message=24,lp=469898159872,lw=0 hw=0
handle =1969694,message=81,lp=469898159792,lw=0 hw=0
handle =1969694,message=46,lp=469898155952,lw=0 hw=0
handle =1969694,message=83,lp=469898155904,lw=1 hw=0
handle =1969694,message=47,lp=469898155952,lw=0 hw=0
handle =1969694,message=3,lp=17891950,lw=0 hw=0
handle =1969694,message=5,lp=32506532,lw=0 hw=0
handle =1969694,message=7f,lp=0,lw=2 hw=0
handle =1969694,message=7f,lp=0,lw=0 hw=0
handle =1969694,message=7f,lp=0,lw=1 hw=0
handle =4851442,message=81,lp=469898159792,lw=0 hw=0
handle =4851442,message=83,lp=469898159904,lw=0 hw=0
handle =4851442,message=1,lp=469898159792,lw=0 hw=0
handle =4851442,message=5,lp=0,lw=0 hw=0
handle =4851442,message=3,lp=0,lw=0 hw=0
handle =4851442,message=287,lp=0,lw=33 hw=0
handle =1969694,message=83,lp=469898159904,lw=0 hw=0
handle =1969694,message=1,lp=469898159744,lw=0 hw=0
handle =1969694,message=5,lp=32506532,lw=0 hw=0
handle =1969694,message=3,lp=17891950,lw=0 hw=0
handle =1969694,message=46,lp=469898162016,lw=0 hw=0
handle =1969694,message=83,lp=469898161968,lw=1 hw=0
handle =1969694,message=47,lp=469898162016,lw=0 hw=0 |