发现很久没写日志了,也发现自己以前写的东西真的没点技术含量!主要是因为底子薄,不敢出来露怯,怕广大同志们所为不齿。这次的东西稍微有点技术,因为涉及了钩子,因为涉及了一些底层的API。程序的主要功能如下:
- 获取鼠标所在位置窗口的句柄以及类名
- 激活一些应用程序的灰化按钮
拦取鼠标信息,钩子名称是WH_MOUSE,不同的钩子涉及到不同的钩子信息:
WH_MOUSE :
- nCode 为HC_ACTION 或 HC_NOREMOVE
- wParam 包含鼠标的事件消息
- lParam 指向MOUSEHOOKSTRUCT型结构体变量的指针
- return value: 如果不处理返回0,否则返回非0值
MHook.asm源代码如下,我们的任务是将它封装成DLL,并且将.bss段编译成共享
主函数内容主要是处理WM_MOUSEHOOK消息,这是我们自定义的消息,值为WM_USER + 4,Spy--.asm代码如下:
当然程序中也用到了另外一个Splash.dll,启动画面的功能组件,没什么技术,就不拿出来露怯了。另外还想完成的功能是:
- 像Jeffrey的SPY++一样有截取消息的功能
- 有个探取按钮,当鼠标点在上面的时候,光标形状变成一个小圆,并且光标所到之处能显示出来控件的形状,我想主要涉及到一些绘图函数,很容易解决
-
如下图:
本程序截图如下: