软件星级:3分
很早的一个东西,...
测试环境是 Tim2.2.0 QQ没有做测试
运行流程:
第一次运行会生成一个config
把QQ号添加进config中 123456789是QQ号
使用方法:
在 config 中加入若干行....
形如:
``
[QQNum]
123456789=tt,dd,45
123456781=tt,dd,45
123456782=tt,dd,45
123456783=tt,dd,45
123456784=tt,dd,45
123456785=tt,dd,45
然后右键导入
或者直接在memo中输入
上面的东西, 都是可以的[QQNum]
123456789=tt,dd,45
如果需要验证的话=tt,dd,45 不需要的话可以不加
这里tt,dd,45 分别是三次验证的回答 加几个逗号 程序执行几次验证
# 原理
#### 原理1
+ 如何把 Tencent://关联QQ[HKEY_CLASSES_ROOT"TENCENT]
@="TencentProtocol"
“URL Protocol"="D:""Program Files""Tencent""QQ""Timwp.exe"
[HKEY_CLASSES_ROOT"TENCENT"DefaultIcon]
@="D:""Program Files""Tencent""QQ""Timwp.exe,1"
[HKEY_CLASSES_ROOT"TENCENT"shell]
[HKEY_CLASSES_ROOT"TENCENT"shell"open]
[HKEY_CLASSES_ROOT"TENCENT"shell"open"command]
@="""D:""Program Files""Tencent""QQ""Timwp.exe"" ""%1"""
#### 原理2
强行聊天的代码:
tencent://Message/?Uin=574201314&websiteName=www.oicqzone.com&Menu=yes
强行加好友的代码:
tencent://AddContact/?fromId=30&fromSubId=1&subcmd=all&uin=QQ号
# 代码解读
#### 1. 由原理1找到真正运行的程序QQTimwp 自己加上相应的param
```qqTimWpPath := TQQUtil.getQQTimwp;```
#### 因为QQ本神的防修改 无法用按键精灵之类的获取到控件的handle 然后用sendmessage发送/获取数据 这里使用按键模拟, 但是按键的有个缺点, 就是必须设置延迟, 放在配置文件里了, 能快就快, 太快了会导致相当于没按,单位是毫秒 //手动复制粘贴
FClip.AsText := strVertify; {把窗体标题放入剪切板}
for I := 1 to 3 do
begin
Sleep(iSleep);
keybd_event(VK_TAB, MapVirtualKey(VK_TAB, 0), 0, 0); //按下Tap键
keybd_event(VK_TAB, MapVirtualKey(VK_TAB, 0), KEYEVENTF_KEYUP, 0); //放开Tap键
end;
Sleep(iSleep);
keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), 0, 0); //按下Ctrl键
keybd_event(ord('V'), MapVirtualKey(ord('V'), 0), 0, 0); //按下V键
keybd_event(ord('V'), MapVirtualKey(ord('V'), 0), KEYEVENTF_KEYUP, 0); //放开V键
keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), KEYEVENTF_KEYUP, 0); //放开Ctrl键
Sleep(iSleep);
keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), 0, 0); //按下Enter键
keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), KEYEVENTF_KEYUP, 0); //放开Enter键
keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), 0, 0); //按下Enter键
keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), KEYEVENTF_KEYUP, 0); //放开Enter键
end;
```主要是验证很麻烦.. 为了防止qq封号纯用键盘模拟来做
不验证的话(这里就是遍历所有的Handle)
CloseWindow('添加好友')
验证的话
qqWindow := ObtainWindow('添加好友');
配置文件
[Config]
Close=True
Vertify=True
Sleep = 300
[QQNum]
123456789=tt,dd,45Close 控制这界面的是否验证功能
Sleep 单位是毫秒