如何用钩子得到中文啊?

g_ongtian 2003-09-15 12:12:39
我想用钩子得到键盘输入的字符串。
键盘钩子只能得到英文字符,而且还是大写的。
怎么才能得到输入的中文?
...全文
45 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bottom 2003-11-17
  • 打赏
  • 举报
回复
NowCan 2003-09-15
  • 打赏
  • 举报
回复
o,3x.
papaya_stone 2003-09-15
  • 打赏
  • 举报
回复
用WH_CALLWNDPROC的钩子截获WM_IME_COMPOSITION消息

在钩子函数中:

if(cs->message == WM_IME_COMPOSITION)//截获中文输入
{
if (((LPMSG)lParam)->lParam & GCS_RESULTSTR)
{
HIMC hIMC;
DWORD dwSize;
HGLOBAL hstr;
LPSTR lpstr;

hIMC = ImmGetContext(::GetFocus());
dwSize = ImmGetCompositionString(hIMC, GCS_RESULTSTR, NULL, 0);
dwSize += sizeof(WCHAR);
hstr = GlobalAlloc(GHND,dwSize);
lpstr = (LPSTR)GlobalLock(hstr);
ImmGetCompositionString(hIMC, GCS_RESULTSTR, lpstr, dwSize);

lstrcpy(szPlayText, lpstr);

ImmReleaseContext(::GetFocus(), hIMC);

}
}

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧