// 键盘钩子消息处理过程
LRESULT CALLBACK DebugProc ( int nCode, WPARAM wParam, LPARAM lParam )
{
if ( nCode == HC_ACTION )
{
PDEBUGHOOKINFO pDebugHookInfo = (PDEBUGHOOKINFO)lParam ;
switch ( wParam )
{
case WH_KEYBOARD:
case WH_MOUSE:
{
// 如果钩子不是由当前DEBUG钩子所在线程安装
// 就直接返回非0值,取消钩子函数过程调用
if ( pDebugHookInfo->idThread != pDebugHookInfo->idThreadInstaller )
return 1 ;
}
break ;
}
}
// 继续传递消息
return CallNextHookEx ( hDebug, nCode, wParam, lParam ) ;
}
BOOL WINAPI SetHook ( BOOL isInstall )
{
// 需要安装,且钩子不存在
if ( isInstall && !hDebug )
{
// 设置全局钩子
hDebug = SetWindowsHookEx ( WH_DEBUG, (HOOKPROC)DebugProc, 0, GetCurrentThreadId() ) ;
if ( hDebug == NULL )
return FALSE ;
}
// 需要卸载,且钩子存在
if ( !isInstall && hDebug )
{
// 卸载钩子
BOOL ret = UnhookWindowsHookEx ( hDebug ) ;
hDebug= NULL ;
return ret ;
}
return TRUE ;
}
分享到:
相关推荐
利用debug解决漏洞和缺陷
如何利用DeBug解决问题
实验一 利用DEBUG调试工具调试程序 内容为实验具体步骤
eclipse离线插件:compiler反编译jar包、class文件,进行debug调试。
在调试程序时,可以用Outputdebugstring 来调试,不需要下断点。 用这个工具就可以看见Outputdebugstring 的输出。 关键他是全局的,不需要挂进程。
利用DEBUG调试汇编语言程序段.docx
使用过protobuf的同学肯定对pb的DebugString相关方法再熟悉不过了,其作用就是打印输出pb对象。有些时候我们可能会有根据这个输出还原原始pb对象的需求。仔细观察发现输出并不是标准json格式,也就是说基于json→pb...
利用DEBUG调试汇编语言程序段.docx
debug欣赏debug欣赏debug欣赏debug欣赏debug欣赏
debug的命令详解!DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节
debug.logdebug.log
Linux GDB 调试技术经典之作 《Debug Hacks中文版—深入调试的技术和工具》是Miracle Linux的创始人吉冈弘隆和几位工程师们多年从事内核开发的经验积累。从调试器的基本使用方法、汇编的基础知识开始,到内核错误...
消息钩子函数入门篇,自己看看是不适合需要!初级篇,
debug debug32 用于调试很有用的,具体用法可以先查看网上的资源,以后整理好了再上传.
DEBUG命令详解 Debug:A(汇编) 直接将 8086/8087/8088 记忆码合并到内存。 该命令从汇编语言语句创建可执行的机器码。所有数值都是十六进制格式,必须按一到四...有关反汇编字节的信息,请参看Debug U(反汇编)
备注:node在0.11.3版本也加入了util.debuglog()用于打印调试日志,使用方法跟debug模块大同小异。 基础例子 首先,安装debug模块。 npm install debug 使用很简单,运行node程序时,加上DEBUG=app环境变量即可。 ...
汇编debug调试命令汇编debug调试命令汇编debug调试命令汇编debug调试命令汇编debug调试命令
debug资料.rar debug资料.rar debug资料.rar debug资料.rar debug资料.rar debug资料.rar
xpdebug debug32这两个工具
DebugView帮助文档 DebugView使用说明 DebugView介绍DebugView帮助文档 DebugView使用说明 DebugView介绍DebugView帮助文档 DebugView使用说明 DebugView介绍DebugView帮助文档 DebugView使用说明 DebugView介绍