输入法上的按键也可以Hook到。
或者你Hook窗口消息WM_CHAR、WM_UNICHAR。
或者你Hook窗口消息WM_CHAR、WM_UNICHAR。
解决方案 »
- 如果对文件进行分割和合并
- 怎么在一个对话框中得到另一个对话框的指针,下面是我的方法,测试失败,运行时出现 重试 忽略 终止 提示,郁闷,在线等待
- 新手提问,关于设置对话框大小
- 谁有通讯录管理程序(VC)的源程序,我给100分
- 有关ShellExecute的问题
- 我新建了一个类(Clistbox的派生类),不知怎样才能右键双击listbox控件的子项才有动作(现在双击空白处也有动作)?
- 在线等待!!!
- 关于unicode的问题,怎么用messagebox把 char s1[20]显示出来?
- 简单问题,如何读数据文件......
- MFC建立的三种dll有何区别?(80分)
- 如何通过进程的名获得进程id
- 文件调用
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;
}
{
int a;
LRESULT Result=CallNextHookEx(Hook,nCode,wParam,lParam);
a = 1;
return Result;
} 你可以先这样写,然后调试,进到这个函数里边后,看看wParam和lParam都是什么东西,再看看你键盘实际上打得是什么字,再看看参数跟字之间什么关系,搞明白了,你就知道里边怎么处理了
-------------
汉字占2个字节,按照这个说法,估计你接受2次wParam后,就能组成一个汉字