我用WH_JOURNALRECORD钩子拦截输入消息 。。那如果是键盘消息,我该怎么判断,又怎么把回调函数里的参数转为按键字母?
解决方案 »
- 控件是不是一定要有窗口?
- 如何获取当前进程的内存使用值
- 图标设计和文档客户区大小问题
- 内存映射空间 的 数据类型 对齐问题
- 怎么检测modem有新短信,怎么上网(GPRS)的同时接收短信?
- 关于Access数据库版本的问题
- 怪事,我ATL调用C#写的组件(用regasm注册并创建了Com),单步调试进去,其中一个BOOL型返回值,在.net下返回是true,到VC++下就变成-1了
- 谁能给俺讲讲模版类这东东!
- 在ClassWizard中Message:里没有列出的消息,怎样加进去?
- 简单的问题,关于线程的。
- 简单的界面问题
- 为什么这句GetRichEditCtrl().StreamOut(SF_RTF,es); 在我这里通不过?急
{
if (((DWORD)lParam & 0x40000000) &&(HC_ACTION==nCode))
{
if (wParam==VK_F2)
{
MessageBox(NULL,"fuck","fuck",MB_OK);
}
} LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam );
return RetVal;
}如上,记录wParam并转换就行了.不同的数字代表不同的键.
if (wParam==VK_RETURN)
{
ch='\n';
}
else
{
BYTE ks[256];
GetKeyboardState(ks);
WORD w;
UINT scan=0;
ToAscii(wParam,scan,ks,&w,0);
//ch=MapVirtualKey(wParam,2); //把虚键代码变为字符
ch =char(w);
}
fwrite(&ch, sizeof(char), 1, fl);
一定要把飯送到嘴巴面前麼....