随性学习的,有问题请大家多多指教。
首先之所以将钩子没有分语言写简单使用的教程是有原因的,windows的钩子是基于他的消息机制进行,无论c++也好还是c#的的钩子实现都是调用系统api进行实现。
其次分类开搞:
C++
案例:
KBLock
环境:vs2015
需要注意的有两点:
1. 编译时会有由于编码集为utf导致的错误,解决办法为设置字符集为多字节
2. 编译时会有main的dll多个的错误,解决方案为:
#ifdef _X86_
extern "C" { int _afxForceUSRDLL; }
#else
extern "C" { int __afxForceUSRDLL; }
#endif
设置宏编译的策略
网上案例有两处:
问题解决网站:
http://www.cnblogs.com/profession/p/5849440.html
钩子写法:
http://blog.youkuaiyun.com/yedezhanghao/article/details/6799371
C#
案例:
键盘钩子
环境:vs2015
没有什么需要注意的
网站案例:
主体案例:
http://jingyan.baidu.com/article/ceb9fb10ebd9f68cad2ba03c.html
附加的案例:
http://www.ithao123.cn/content-1010315.html
http://www.cnblogs.com/fanxiaojun/archive/2012/04/01/2428022.html
http://www.cnblogs.com/lellansin/archive/2012/05/15/2502313.html
源代码路径:
http://download.youkuaiyun.com/detail/w6025110/9861166