在键盘记录中去实现汉字输入法?

zhangyongbin88161104 2008-04-05 10:36:40
现在在做用钩子做一个键盘记录,只是练习,不会用于不正当的目的,可是不知道怎么去实现记录汉字的信息?

希望指教。
...全文
65 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tiger波波 2008-04-11
如果字符(包括汉字)会收到WM_CHAR消息或者WM_UNICHAR消息,消息中的wParam参数就是输入的字符,汉字会收到两个WM_CHAR消息或者一个WM_UNICHAR消息。
-------------
汉字占2个字节,按照这个说法,估计你接受2次wParam后,就能组成一个汉字
回复
tiger波波 2008-04-11
LRESULT CALLBACK LauncherHook(int nCode,WPARAM wParam,LPARAM lParam)
{
int a;
LRESULT Result=CallNextHookEx(Hook,nCode,wParam,lParam);
a = 1;
return Result;
}

你可以先这样写,然后调试,进到这个函数里边后,看看wParam和lParam都是什么东西,再看看你键盘实际上打得是什么字,再看看参数跟字之间什么关系,搞明白了,你就知道里边怎么处理了
回复
我写了这样的代码出现了下列提示的错误:
ompiling...
汉字.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\汉字\汉字.cpp(78) : error C2065: 'WM_UNICHAR' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\汉字\汉字.cpp(78) : error C2051: case expression not constant
C:\Program Files\Microsoft Visual Studio\MyProjects\汉字\汉字.cpp(82) : warning C4060: switch statement contains no 'case' or 'default' labels
Error executing cl.exe.

汉字.dll - 2 error(s), 1 warning(s)

DllExport void WINAPI InstallLaunchEv()
{
Hook=(HHOOK)SetWindowsHookEx(WH_GETMESSAGE,
(HOOKPROC)LauncherHook,
theApp.m_hInstance,
0);
}
LRESULT CALLBACK LauncherHook(int nCode,WPARAM wParam,LPARAM lParam)
{
LRESULT Result=CallNextHookEx(Hook,nCode,wParam,lParam);


不知道怎么修改??
MSG*pmsg= (MSG*)lParam;
switch(pmsg->message)
{
case WM_UNICHAR:
Hanzi+=wParam;
break;

}
return Result;
}
回复
cnzdgs 2008-04-05
如果字符(包括汉字)会收到WM_CHAR消息或者WM_UNICHAR消息,消息中的wParam参数就是输入的字符,汉字会收到两个WM_CHAR消息或者一个WM_UNICHAR消息。
回复
由于某中原因要下线了

希望的到您的恢复
回复
就是用汉字输入法输入了汉字能显示在窗口中
回复
cnzdgs 2008-04-05
你做的这个记录之后想要做什么,知道你的目的后才能确定要如何做。
回复
能不能在说的明白点?

谢谢了
回复
cnzdgs 2008-04-05
输入法上的按键也可以Hook到。
或者你Hook窗口消息WM_CHAR、WM_UNICHAR。
回复
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-04-05 10:36
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……