.版本 2
.支持库 iext
.程序集 窗口程序集1
.程序集变量 User_hwnd, 整数型
.程序集变量 Pass_hwnd, 整数型
.程序集变量 Parent_hwnd, 整数型
.程序集变量 子窗口数组, 整数型, , "0"
.程序集变量 路径, 文本型
.程序集变量 账号数组, 文本型, , "0"
.程序集变量 密码数组, 文本型, , "0"
.程序集变量 是否已登录, 逻辑型
.程序集变量 序列, 整数型
.子程序 _按钮1_被单击
Login (编辑框1.内容, 编辑框2.内容)
.子程序 Login
.参数 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) ' 运行
.子程序 __启动窗口_创建完毕
路径 = 取文本注册项 (4, “SOFTWARE\TENCENT\QQ2009\Install”, ) + “\Bin\QQ.exe”
.如果真 (路径 = “\Bin\QQ.exe”)
信息框 (“未检测到QQ2009,请手动查找”, 0, )
通用对话框1.打开 ()
.如果真 (通用对话框1.文件名 ≠ “”)
路径 = 通用对话框1.文件名
.如果真结束
.如果真结束
输出调试文本 (路径)
标签1.标题 = 路径
.子程序 子程序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))
返回 (窗口标题)
.子程序 _按钮2_被单击
.局部变量 a, 整数型
a = 超级列表框1.插入表项 (-1, 编辑框1.内容, , , , )
超级列表框1.置标题 (a, 1, 编辑框2.内容)
.子程序 _按钮3_被单击
.局部变量 i, 整数型
序列 = 0
是否已登录 = 假
清除数组 (账号数组)
清除数组 (密码数组)
.计次循环首 (超级列表框1.取表项数 (), i)
i = i - 1
.如果真 (超级列表框1.取当前状态图片 (i) = 1)
' Login (超级列表框1.取标题 (i, 0), 超级列表框1.取标题 (i, 1))
加入成员 (账号数组, 超级列表框1.取标题 (i, 0))
加入成员 (密码数组, 超级列表框1.取标题 (i, 1))
.如果真结束
.计次循环尾 ()
Login多 ()
.子程序 Login多
.局部变量 临时文本, 文本型
.局部变量 username, 文本型
.局部变量 password, 文本型
.如果真 (序列 = 取数组成员数 (密码数组) - 1)
是否已登录 = 真
.如果真结束
.判断开始 (序列 < 取数组成员数 (密码数组))
序列 = 序列 + 1
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)
延时 (50)
ShellExecute (0, “open”, “C:\windows\system32\temp.vbs”, “”, “”, 0) ' 运行
输出调试文本 (username, password)
延时 (1000)
.如果真 (是否已登录 = 假)
Login多 ()
点击进入下载-qq2009多账号自动登入.e |