下面是HOOK的代码
void SetHook(HWND hwnd)
{
g_hWnd=hwnd;
g_hHook=SetWindowsHookEx(WH_CALLWNDPROC,CallWndProc,GetModuleHandle("messagehook"),0);
}
回调函数处理:
LRESULT CALLBACK CallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
char buf[512] ={0};
if (nCode <0 )
{
return ::CallNextHookEx(g_hHook,nCode,wParam,lParam);
}
PCWPSTRUCT pcwpStruct;
char *pclass =NULL, *pcaption =NULL;
pcwpStruct = (PCWPSTRUCT )lParam;
if(nCode >=0 && pcwpStruct)
{
switch(pcwpStruct->message)
{
case WM_GETTEXT: WideCharToMultiByte(CP_ACP,0,(LPCWSTR)pcwpStruct->lParam,(int)wParam,buf,sizeof(buf),NULL,NULL);
if (buf[0] != '\0')
{
OutputDebugString(buf);
}
各位大哥帮忙看一下,是什么问题。个人感觉是宽字节转换这里出了问题。。
总是出现乱码.
拜谢各位大哥了
void SetHook(HWND hwnd)
{
g_hWnd=hwnd;
g_hHook=SetWindowsHookEx(WH_CALLWNDPROC,CallWndProc,GetModuleHandle("messagehook"),0);
}
回调函数处理:
LRESULT CALLBACK CallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
char buf[512] ={0};
if (nCode <0 )
{
return ::CallNextHookEx(g_hHook,nCode,wParam,lParam);
}
PCWPSTRUCT pcwpStruct;
char *pclass =NULL, *pcaption =NULL;
pcwpStruct = (PCWPSTRUCT )lParam;
if(nCode >=0 && pcwpStruct)
{
switch(pcwpStruct->message)
{
case WM_GETTEXT: WideCharToMultiByte(CP_ACP,0,(LPCWSTR)pcwpStruct->lParam,(int)wParam,buf,sizeof(buf),NULL,NULL);
if (buf[0] != '\0')
{
OutputDebugString(buf);
}
各位大哥帮忙看一下,是什么问题。个人感觉是宽字节转换这里出了问题。。
总是出现乱码.
拜谢各位大哥了
解决方案 »
- 简易版win7中安装程序,提示安装失败
- Cview 某个区域内消息响应函数
- 基于对话框的串口通讯小程序需要分页,麻烦重重
- vc++ 右键快捷菜单
- 监视剪贴板的问题,搞了一晚上还没好,请教!
- 各位passer,我就着两天打算写一份关于H323协议的详细研究报告,想要的请进来举手!!俺都给~~~
- 在ADO中,如何记录集的空值?
- 在北京,一个精通VC的软件程序员拿多少钱?
- 一个简单的问题,小女子实在搞不懂,_T("xxxxxxxx")是什么意思?
- 检测直线的缺口
- 借咱们的地方问个问题,ibm x31黑屏!
- 书上看到的代码,简单的网络通信,编译器 VS2005 。客户端和服务器连不上 , 代码先封装网络编程通用部分
钩子在窗口过程之前,这时候lParam指向的内存还是空的