HOOK小记
来源:互联网 发布:网络出租屋怎么赚钱的 编辑:程序博客网 时间:2024/06/06 01:25
孙鑫VC++深入详解笔记
dwThreadId为当前线程ID时为进程内钩子。当为0时为全局钩子与运行的所有进程都相关,此时lpfn为一个DLL中的钩子过程,hMod为DLL句柄
HHOOK SetWindowsHookEx( int idHook, // hook type HOOKPROC lpfn, // hook procedure HINSTANCE hMod, // handle to application instance DWORD dwThreadId // thread identifier);
LRESULT CallNextHookEx( HHOOK hhk, // handle to current hook int nCode, // hook code passed to hook procedure WPARAM wParam, // value passed to hook procedure LPARAM lParam // value passed to hook procedure);
BOOL UnhookWindowsHookEx( HHOOK hhk // handle to hook procedure);
LRESULT CALLBACK MouseProc( int nCode, // hook code WPARAM wParam, // message identifier LPARAM lParam // mouse coordinates);LRESULT CALLBACK KeyboardProc( int code, // hook code WPARAM wParam, // virtual-key code LPARAM lParam // keystroke-message information);进程内钩子:1,定义钩子函数:LRESULT CALLBACK KeyboardProc( int code, // hook code WPARAM wParam, // virtual-key code LPARAM lParam // keystroke-message information ){
//二种按键判断VK_SPACE==wParam 或 HIBYTE(GetKeyState(VK_SPACE))
// if(VK_SPACE==wParam){// return 1;// } if(HIBYTE(GetKeyState(VK_SPACE))){ return TRUE; }
//alt组合键 (lParam>>29&1)值为1时为ALT为按下状态
// if(VK_F4==wParam&&(lParam>>29&1)){// return TRUE;// }
//组合键 下列为CTRL+O// if(HIBYTE(GetKeyState(VK_CONTROL))&&HIBYTE(GetKeyState(_T('O')))){// return 1;// }
return CallNextHookEx(g_hKeyboard,code,wParam,lParam);}
2,定义 HHOOK g_hKeyboard=NULL;3,加载钩子 g_hKeyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,GetCurrentThreadId());以下方法可以在钩子的回调函数中区分出大小写,很简单: BYTE ks[256]; GetKeyboardState(ks); WORD w; UINT scan; scan=0; ToAscii(wParam,scan,ks,&w,0); char ch =char(w); ch就是区分过大小写后的输入了,试试,很简单。
- Hook小记
- HOOK小记
- NDIS HOOK开发小记
- hook实例小记
- hook
- HOOK
- hook
- Hook
- Hook
- hook
- Hook
- Hook
- hook
- hook
- Hook
- Hook?
- hook
- hook
- 最近学到update的另一种写法
- Camera拍照声音消除问题
- ASP.NET 网站路径
- 浅谈聚合与耦合
- ios iphone开发-内存管理
- HOOK小记
- FOR语句提权中基础语法
- Mule ESB Service 配置摘要
- 围绕最终交付物,而不是角色,组织软件交付活动:持续交付与跨功能团队
- Linux下代码阅读 -- 配置vim+ctags+taglist+cscope[转]
- [编辑]Android LayoutInflater
- android java 判断某张表是否存在
- BAT遍历所有文件夹及其子文件夹
- dalvik虚拟机解释器高频解释代码的加速