love400 发表于 2010-4-24 20:13:19

一个09版QQ登录器源码,不是我,从易论坛上找的.感觉不错.

声明:不是我的,是我收集的.   原理是模拟按键..版本 2
.支持库 iext
.支持库 eAPI

.程序集 窗口程序集1
.程序集变量 路径, 文本型
.程序集变量 账号, 文本型
.程序集变量 User_hwnd, 整数型
.程序集变量 Pass_hwnd, 整数型
.程序集变量 Parent_hwnd, 整数型
.程序集变量 子窗口数组, 整数型, , "0"
.程序集变量 序列, 整数型
.程序集变量 密码, 文本型

.子程序 __启动窗口_创建完毕

路径 = 取文本注册项 (4, “SOFTWARE\TENCENT\QQ2009\Install”, ) + “\Bin\QQ.exe”
.如果真 (路径 = “\Bin\QQ.exe”)
    信息框 (“未检测到QQ安装!”, 0, )
.如果真结束
打开 (取运行目录 () + “\use.edb”, “用户数据库”, 假, , , , )
置当前库 (取运行目录 () + “\use.edb”)
读取账号 ()

.子程序 读取账号

.判断循环首 (尾记录后 () = 假)
    超级列表框1.插入表项 (, 读 (“id”), , , , )
    跳过 ()
.判断循环尾 ()

.子程序 _超级按钮1_被单击

载入 (窗口1, , 真)

.子程序 _超级按钮2_被单击

清空 ()
超级列表框1.全部删除 ()

.子程序 _超级按钮3_被单击

登录 (账号, 密码)

.子程序 _超级列表框1_当前表项被改变

到首记录 ()
账号 = 超级列表框1.取标题 (超级列表框1.现行选中项, )
.判断开始 (查找 (读 (“id”) = 删首尾空 (账号)) = 真)
    密码 = 读 (“pass”)
.默认

.判断结束


.子程序 登录
.参数 username, 文本型
.参数 password, 文本型
.局部变量 临时文本, 文本型

ShellExecute (0, “open”, 路径, “”, “”, #SW_SHOW)' 运行
延时 (1000)
Pass_hwnd = 0
EnumWindows (&子程序1, 0)' 枚举
.如果真 (Parent_hwnd = 0)
    延时 (1000)
    EnumWindows (&子程序1, 0)' 枚举
    .如果真 (Parent_hwnd = 0)
      延时 (1000)
      EnumWindows (&子程序1, 0)' 枚举
      .如果真 (Parent_hwnd = 0)
            信息框 (“未找到登陆框!”, #警告图标, )
      .如果真结束

    .如果真结束

.如果真结束
SendMessage_String (User_hwnd, #wm_settext, 0, username)
临时文本 = #vds
临时文本 = 子文本替换 (临时文本, “||密码||”, password, , , 真)
写到文件 (“C:\windows\system32\temp.vbs”, 到字节集 (临时文本))
SetForegroundWindow (Parent_hwnd)
PostMessage (User_hwnd, 513, 0, 0)
PostMessage (User_hwnd, 514, 0, 0)
PostMessage (User_hwnd, #WM_KEYDOWN, #Tab键, 0)
PostMessage (User_hwnd, #WM_KEYUP, #Tab键, 0)
ShellExecute (0, “open”, “C:\windows\system32\temp.vbs”, “”, “”, 0)' 运行

.子程序 子程序1, 逻辑型, , 枚举父窗口
.参数 hwnd, 整数型
.局部变量 Text, 文本型


Text = _取窗口标题 (hwnd)
.如果真 (寻找文本 (Text, “QQ2009”, , 假) ≠ -1)
    清除数组 (子窗口数组)
    EnumChildWindows (hwnd, &子程序2, 0)
    .如果真 (取数组成员数 (子窗口数组) = 2)
      Parent_hwnd = hwnd
      EnumChildWindows (Parent_hwnd, &子程序3, 0)
      ' 输出调试文本 (“父窗口句柄: ” + 到文本 (hwnd))


    .如果真结束

.如果真结束

返回 (真)

.子程序 子程序2, 逻辑型, , 枚举子窗口个数
.参数 hwnd, 整数型

加入成员 (子窗口数组, hwnd)

返回 (真)

.子程序 子程序3, 逻辑型, , 枚举帐号、密码窗口句柄
.参数 hwnd, 整数型
.局部变量 ClassName, 文本型

ClassName = _取窗口类名 (hwnd)
.如果真 (ClassName ≠ “Edit”)
    User_hwnd = hwnd
    ' 输出调试文本 (“账号子窗口句柄: ” + 到文本 (User_hwnd))

.如果真结束

.如果真 (ClassName = “Edit”)
    Pass_hwnd = hwnd
    ' 输出调试文本 (“密码子窗口句柄: ” + 到文本 (Pass_hwnd))

.如果真结束

返回 (真)

.子程序 _取窗口类名, 文本型
.参数 hwnd, 整数型
.局部变量 ClassNmae, 文本型

ClassNmae = 取空白文本 (255)
GetClassName (hwnd, ClassNmae, 255)
返回 (ClassNmae)

.子程序 _取窗口标题, 文本型, , 取指定窗口的标题。成功返回窗口标题,失败返回空。
.参数 窗口句柄, 整数型
.局部变量 窗口标题, 文本型
.局部变量 总字符数, 整数型
.局部变量 临时整数, 整数型

临时整数 = 255
窗口标题 = 取空白文本 (临时整数)
SendMessage (窗口句柄, #WM_GETTEXT, 临时整数 + 1, lstrcpyn (窗口标题, 窗口标题, 0))


返回 (窗口标题)

.子程序 _超级列表框1_鼠标右键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

弹出菜单 (右键菜单, , )

.子程序 _增加_被选择

_超级按钮1_被单击 ()

.子程序 _清空_被选择

_超级按钮2_被单击 ()

.子程序 _登录_被选择

_超级按钮3_被单击 ()

.子程序 _图片框1_鼠标左键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

打开指定网址 (“http://www.xtzj.com//index.php?fromuid=359252”)

.子程序 _超级按钮4_被单击

信息框 (到文本 (#about), 0, )

凤凰 发表于 2010-6-22 18:55:13

不错的呀,看了

gftluo 发表于 2010-11-25 10:24:10

好像没有完全脱离QQ!!!!!!

tenver 发表于 2010-11-28 23:59:52

下下来看看是什么效果

???? 发表于 2012-12-4 12:41:33

下下来看看是什么效果
页: [1]
查看完整版本: 一个09版QQ登录器源码,不是我,从易论坛上找的.感觉不错.