文章来源:爱国者黑客 作者:小浩 呵呵 没有有什么技术含量,纯属娱乐
最近遇到一个不知情的问题 就喜欢上线下线 引起群众一番轰炸(骂我)
手动上线下线太麻烦了 就想到用程序实现.... 嘿嘿..
思路就是 首先获取QQ窗口类名 再截获 上线,下线所发送的WM_COMMAND 消息 然后我们使我们的程序用SendMessage 这个API 向QQ窗口发送WM_COMMAND消息
获取QQ窗口类名 和消息等等 有个程序可以帮我们实现 当然我们自己实现也不会很困难 :)
就是 LLYF Spy 打开 LLYF Spy 以后用它个 小图标 移动到QQ窗口那
如图:

我们获取到了 Class Name(类名) 和Caption (标题) 根据这俩项 我们就能获得 QQ窗口的句柄了
使用FindWindow 这个API 既能获取
代码:
HWND hQQWindow=FindWindow("#32770","");
if(!IsWindow(hQQWindow))
return 0;
这样 hQQWindow 就保存了 QQ的句柄接下来我们只要截获消息就行了 怎么截获呢?
come on.... 我们看看 LLYF SPY

Spy 就是开始 捕获所有消息 当然我们实现起来也不是很困难..! 自己能实现还是得多实现下 就当是学习学习嘛 :)
我们开始截获看看 OK 然后 点击Save 保存为 Msg.txt
找寻 WM_COMMAND 消息
如图:

有俩个WM_COMMAND 消息 一个上线 一个下线 还有一个是
757/273 WM_COMMAND 0000344C 00000000 00000000 GetMessage_Noremove 758/273 WM_COMMAND 0000344C 00000000 00000000 GetMessage_Remove
这个就不截图了 所截获到的 第一个是WPARAM 第2个是LPARAM
俩消息 LPARAM 都为0 我们根据所截获到的消息类型和消息参数 模拟一下就很简单了
代码:
SendMessage(hQQWindow,WM_COMMAND,0x0000344C,0); SendMessage(hQQWindow,WM_COMMAND,0x00003429,0);
完整代码:
printf("输入上线下线间隔时间 (单位是秒):\r\n"); int nTime=1; scanf("%d",&nTime); HWND hQQWindow=FindWindow("#32770",""); while(1) { SendMessage(hQQWindow,WM_COMMAND,0x0000344C,0); SendMessage(hQQWindow,WM_COMMAND,0x00003429,0); Sleep(nTime*1000); }
至此我们就完成了工作 .接下来就是Crazy........
由于我长期上线下线 我的好友早已习惯 都把上线提示关闭了 呵呵.. 一开始弄的时候 最高纪录10多人弹我视频呢 呵呵 纯属娱乐
献丑献丑 老鸟可以一笑而过......... |