开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4774|回复: 19
打印 上一主题 下一主题
收起左侧

[易语言纯源码] 想实现QQ自动登录~1秒登陆一次.

[复制链接]
结帖率:63% (17/27)
跳转到指定楼层
楼主
发表于 2012-1-2 19:52:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式   山东省淄博市
分享源码
界面截图:
是否带模块: -
备注说明: -
想实现QQ自动登录~1秒登陆一次。~~下面写法对吗
.版本 2
.支持库 eImgConverter
.支持库 dp1
.支持库 spec
.支持库 iext
.支持库 iconv

.程序集 _启动窗口_程序集
.程序集变量 user, 文本型
.程序集变量 事件组件, 客户

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

通用对话框1.初始目录 = 取运行目录 ()
载入 (窗口_验证码, _启动窗口, 假)

.子程序 还原为字节集, 字节集, , 将一串十六进制文本还原为字节集
.参数 文本, 文本型, , 如“00BFAD00AFD4FD4F9E054F9FF91FC5FF2076FBAFDB071044”,或者是“{206,210,202,199}”之类
.参数 十六进制, 逻辑型, 可空, 如果未指明则为十六进制文本,如果为假则为十进制文本
.局部变量 字节集, 字节集
.局部变量 i, 整数型
.局部变量 a, 整数型
.局部变量 临时文本, 文本型
.局部变量 临时数组, 文本型, , "0"

.如果真 (是否为空 (十六进制))
    十六进制 = 真

.如果真结束
字节集 = {  }
临时文本 = 文本
.如果 (十六进制)
    临时文本 = 子文本替换 (临时文本, “,”, , , , 真)
    临时文本 = 子文本替换 (临时文本, “{”, , , , 真)
    临时文本 = 子文本替换 (临时文本, “}”, , , , 真)
    .变量循环首 (1, 取文本长度 (文本), 2, i)
        a = 取十进制 (取文本中间 (文本, i, 2), 0)
        字节集 = 字节集 + 取字节集左边 (到字节集 (a), 1)
    .变量循环尾 ()
.否则
    临时文本 = 子文本替换 (临时文本, “{”, , , , 真)
    临时文本 = 子文本替换 (临时文本, “}”, , , , 真)
    临时数组 = 分割文本 (临时文本, “,”, )
    .变量循环首 (1, 取数组成员数 (临时数组), 1, i)
        a = 到数值 (临时数组 )
        字节集 = 字节集 + 取字节集左边 (到字节集 (a), 1)
    .变量循环尾 ()
.如果结束
返回 (字节集)

.子程序 取十进制, 整数型, , 将非十进制的标准格式文本转换成十进制整数值
.参数 欲转换的值, 文本型, , 欲转换的值,文本型!
.参数 数值类型, 整数型, 可空, 0,#十六进制;1,#十进制(默认);2,#八进制;3,#二进制
.局部变量 s, 整数型, , , 最终结果
.局部变量 a, 整数型, , , 中间变量
.局部变量 b, 整数型, , , 中间变量
.局部变量 c, 文本型, , , 中间变量
.局部变量 d, 整数型, , , 中间变量

欲转换的值 = 到小写 (欲转换的值)
.如果真 (是否为空 (数值类型))
    数值类型 = 1
.如果真结束
s = 0
.判断开始 (数值类型 = 0)
    a = 取文本长度 (欲转换的值)
    .变量循环首 (1, a, 1, b)
        c = 取文本中间 (欲转换的值, a - b + 1, 1)
        .如果真 (取代码 (c, ) ≤ 取代码 (“f”, ) 且 取代码 (c, ) ≥ 取代码 (“a”, ) 或 取代码 (c, ) ≤ 取代码 (“F”, ) 且 取代码 (c, ) ≥ 取代码 (“A”, ))
            .如果真 (取代码 (c, ) ≥ 取代码 (“A”, ) 且 取代码 (c, ) ≤ 取代码 (“F”, ))
                d = 取代码 (c, ) - 取代码 (“A”, ) + 10
            .如果真结束
            .如果真 (取代码 (c, ) ≥ 取代码 (“a”, ) 且 取代码 (c, ) ≤ 取代码 (“f”, ))
                d = 取代码 (c, ) - 取代码 (“a”, ) + 10
            .如果真结束

        .如果真结束
        .如果真 (取代码 (c, ) ≤ 取代码 (“9”, ) 且 取代码 (c, ) ≥ 取代码 (“0”, ))
            d = 到数值 (c)
        .如果真结束
        s = s + 求次方 (16, b - 1) × d
    .变量循环尾 ()
.默认

.判断结束
.判断开始 (数值类型 = 1)
    s = 到数值 (欲转换的值)
.默认

.判断结束
.判断开始 (数值类型 = 2)
    a = 取文本长度 (欲转换的值)
    .变量循环首 (1, a, 1, b)
        c = 取文本中间 (欲转换的值, a - b + 1, 1)
        .如果真 (取代码 (c, ) ≤ 取代码 (“7”, ) 且 取代码 (c, ) ≥ 取代码 (“0”, ))
            d = 到数值 (c)
        .如果真结束
        s = s + 求次方 (8, b - 1) × d
    .变量循环尾 ()
.默认

.判断结束
.判断开始 (数值类型 = 3)
    a = 取文本长度 (欲转换的值)
    .变量循环首 (1, a, 1, b)
        c = 取文本中间 (欲转换的值, a - b + 1, 1)
        .如果真 (取代码 (c, ) ≤ 取代码 (“1”, ) 且 取代码 (c, ) ≥ 取代码 (“0”, ))
            d = 到数值 (c)
        .如果真结束
        s = s + 求次方 (2, b - 1) × d
    .变量循环尾 ()
.默认

.判断结束
返回 (s)

.子程序 取验证码, 字节集
.参数 验证码文本字串, 文本型
.局部变量 验证码, 字节集

写到文件 (取运行目录 () + “\ameng.png”, 还原为字节集 (验证码文本字串))
转换到BMP (取运行目录 () + “\ameng.png”, 取运行目录 () + “\ameng.bmp”)
验证码 = 读入文件 (取运行目录 () + “\ameng.bmp”)
删除文件 (取运行目录 () + “\ameng.png”)
删除文件 (取运行目录 () + “\ameng.bmp”)
返回 (验证码)

.子程序 登录, , , 已创建的话 重新登录
.参数 帐号, 文本型
.参数 密码, 文本型
.局部变量 局部_客户, 客户

时钟1.时钟周期 = 100
置用户 (帐号, “查询是否已登录...”)
.如果真 (是否创建客户 (帐号) = 真)

    局部_客户 = 搜索客户 (帐号)
    置用户 (帐号, “正在断开连接...”)
    局部_客户.断开连接 ()
    置用户 (帐号, “正在复连...”)
    .如果 (连接 (局部_客户))
        置用户 (帐号, “正在登录...”)
        .如果 (发送 (局部_客户, “VER=1.4&CON=2&CMD=Login&SEQ=” + 标记 () + “&UIN=” + 帐号 + “&PS=” + 到大写 (取数据摘要 (到字节集 (密码))) + “&M5=1&LG=0&LC=812822641C978097&GD=5MWX2PF3FOVGTP6B&CKE=”))

            ' 置用户 (帐号, “>>>等待信息<<<”)
            ' 加入成员 (客户_数组, 局部_客户)
            调试输出 (“客户数:”, 取数组成员数 (客户_数组))
        .否则
            删除已创建客户 (帐号)
            置用户 (帐号, “登录失败!”)
            服务器1.发送数据 (user, “服务器挂机失败”, )
        .如果结束

    .否则
        置用户 (帐号, “复连失败!”)
    .如果结束
    ' 信息框 (“QQ:[” + 帐号 + “]已创建”, #警告图标, “阿蒙提示:”)
    返回 ()
.如果真结束
时钟1.时钟周期 = 100
置用户 (帐号, “创建登录用户...”)
.如果 (复制窗口组件 (客户1, 局部_客户))

    局部_客户.标记 = 帐号
    置用户 (帐号, “正在连接服务器...”)
    .如果真 (连接 (局部_客户) = 假)
        局部_客户.销毁 ()
        置用户 (帐号, “连接失败!”)
        服务器1.发送数据 (user, “服务器挂机失败”, )
        返回 ()
    .如果真结束
    置用户 (帐号, “正在登录...”)
    .如果 (发送 (局部_客户, “VER=1.4&CON=2&CMD=Login&SEQ=” + 标记 () + “&UIN=” + 帐号 + “&PS=” + 到大写 (取数据摘要 (到字节集 (密码))) + “&M5=1&LG=0&LC=812822641C978097&GD=5MWX2PF3FOVGTP6B&CKE=”))
        ' 置用户 (帐号, “>>>等待信息<<<”)
        加入成员 (客户_数组, 局部_客户)
        调试输出 (“客户数:”, 取数组成员数 (客户_数组))
        编辑框3.加入文本 (到文本 (取现行时间 ()) + “系统当前加入在线用户:” + 帐号 + “----服务器在线数” + 到文本 (取数组成员数 (客户_数组)))
        服务器1.发送数据 (user, “服务器挂机成功”, )
    .否则

        局部_客户.断开连接 ()
        局部_客户.销毁 ()
        置用户 (帐号, “登录失败!”)
        ' 信息框 (“登录失败,请稍候重试。”, #错误图标, “阿蒙提示:”)
    .如果结束
    事件转移 (局部_客户, 客户1)
.否则
    信息框 (“创建登录用户失败,请稍后重试。”, #错误图标, “阿蒙提示:”)
.如果结束


.子程序 搜索客户, 客户, , 在搜索调用前 请确保客户已创建!
.参数 QQ, 文本型
.局部变量 记次
.局部变量 局部_客户, 客户

.计次循环首 (取数组成员数 (客户_数组), 记次)
    .如果真 (客户_数组 [记次].标记 = QQ)
        局部_客户 = 客户_数组 [记次]
        跳出循环 ()
    .如果真结束

.计次循环尾 ()
返回 (局部_客户)

.子程序 是否创建客户, 逻辑型, , 判断指定QQ是否已经创建客户端
.参数 QQ, 文本型
.局部变量 记次

.计次循环首 (取数组成员数 (客户_数组), 记次)
    .如果真 (客户_数组 [记次].标记 = QQ)
        返回 (真)
        跳出循环 ()
    .如果真结束

.计次循环尾 ()
返回 (假)

.子程序 删除已创建客户, 逻辑型, , 删除并断开已创建的QQ客户
.参数 QQ, 文本型
.局部变量 记次

.计次循环首 (取数组成员数 (客户_数组), 记次)
    .如果真 (客户_数组 [记次].标记 = QQ)
        客户_数组 [记次].断开连接 ()
        删除成员 (客户_数组, 记次, )
        返回 (真)
        跳出循环 ()
    .如果真结束

.计次循环尾 ()
返回 (假)

.子程序 置用户, , , 不存在 自动创建
.参数 QQ, 文本型
.参数 状态文本, 文本型, 可空, 为空 保持不变
.参数 状态图片, 整数型, 可空, 为空则保存不变,0.离线 1.隐身 2.在线
.局部变量 表项

表项 = 超级列表框1.查找表项 (QQ, , , 1)
.如果真 (表项 = -1)
    表项 = 超级列表框1.插入表项 (, 到文本 (超级列表框1.取表项数 () + 1), , 0, , )  ' 默认离线图标
    超级列表框1.置标题 (表项, 1, QQ)
.如果真结束
.如果真 (是否为空 (状态文本) = 假)
    超级列表框1.置标题 (表项, 2, 状态文本)
.如果真结束
.如果真 (是否为空 (状态图片) = 假)
    超级列表框1.置状态图片 (表项, 状态图片)
.如果真结束
.如果真 (状态图片 = 2)  ' 在线的话 就置表项数值
    超级列表框1.置表项数值 (表项, 1)
.如果真结束


.子程序 连接, 逻辑型, , 连接到服务器 成功返回真
.参数 客户, 客户

返回 (客户.连接 (“211.136.236.88”, 14000))

.子程序 发送, 逻辑型
.参数 客户, 客户
.参数 内容, 文本型

返回 (客户.发送数据 (内容 + #换行符))

.子程序 标记, 文本型
.局部变量 seq, 整数型, 静态

.如果真 (seq = 0)
    seq = 10  ' 初始值为10
.如果真结束
seq = seq + 1
返回 (到文本 (seq))

.子程序 _按钮_登录_被单击

时钟1.时钟周期 = 100
登录 (编辑框1.内容, 编辑框2.内容)

.子程序 _客户1_连接断开

事件组件 = 取事件组件 ()
置用户 (事件组件.标记, “断开连接”, 0)
输出调试文本 (“断开服务器:” + 事件组件.标记)
事件组件.销毁 ()

.子程序 _客户1_数据到达
.局部变量 返回文本, 文本型
.局部变量 QQ, 文本型
.局部变量 类型_, 文本型

事件组件 = 取事件组件 ()
QQ = 事件组件.标记
返回文本 = 到文本 (编码转换 (事件组件.取回数据 (), #编码_UTF_8, #编码_GBK, ))
类型_ = 取指定内容 (返回文本, “&CMD=”, “&”)
调试输出 (QQ, 返回文本, 类型_)
.如果真 (寻找文本 (返回文本, “&UIN=” + QQ + “&RES=20”, , 假) ≠ -1 且 类型_ = “Change_Stat”)
    置用户 (QQ, “另一地点登录”, 0)
    ' 结束 ()

    返回 ()
.如果真结束
' “1009908653” | “VER=1.1&CMD=Server_Msg&SEQ=13&UIN=1009908653&RES=0&MN=1&MT=513&UN=10000&MG=DESC=手机腾讯网:%250a今晨1时36分,神舟八号与天宫一号飞行器成功完成首次交会对接,我国成为第三个掌握该技术的国家。%26RESPCONDITION=MANUAL%26RESPCONTENTS=%26RESPCONTENTTYPES=WAP%26RESPDESC=详情%26RESPDEST=http://info.3g.qq.com/g/s?aid%253dtemplate%2526tid%253dnews_s8dj%2526tid%253d10345%2526g_f%253d524%2526icfa%253dsubcr_mqq%26SUBJECT=神八天宫成功完成首次对接

' ” | “Server_Msg”

.判断开始 (类型_ = “VERIFYCODE” 且 取文本长度 (返回文本) > 70)  ' 验证码

    加入验证码 (QQ, 取验证码 (取指定内容 (返回文本, “&VC=”, #换行符)))

    置用户 (QQ, “需要验证码”)

.判断 (类型_ = “Login”)  ' 登录成功或失败

    ' VER=1.1&CMD=Login&SEQ=12&UIN=1587427614&RES=0&RS=1&RA=Password error!’失败
    .如果 (寻找文本 (返回文本, “Password error”, , 假) ≠ -1)
        输出调试文本 (“登录失败,密码错误。”)
        置用户 (QQ, “帐号或密码错误!”, 0)
    .否则
        输出调试文本 (“登录成功。”)
        ' 登录成功代码
        置用户 (QQ, “我在线上”, 2)  ' 顺便置状态图片

        ' 时钟_保持在线.时钟周期 = 150000  ' 2.5分钟/次

    .如果结束


.判断 (类型_ = “update_stat”)  ' 好友在线状态被改变

.默认
    ' 自己判断 类型_ 定义事件
.判断结束


.子程序 取指定内容, 文本型
.参数 全部内容, 文本型
.参数 左边文本, 文本型
.参数 右边文本, 文本型
.局部变量 临时位置, 整数型
.局部变量 总长度, 整数型
.局部变量 临时文本, 文本型

总长度 = 取文本长度 (全部内容)
临时位置 = 寻找文本 (全部内容, 左边文本, , 假) + 取文本长度 (左边文本)
临时文本 = 取文本中间 (全部内容, 临时位置, 总长度)
总长度 = 取文本长度 (临时文本)
临时位置 = 寻找文本 (临时文本, 右边文本, , 假) - 1
临时文本 = 取文本中间 (临时文本, 1, 临时位置)
返回 (临时文本)

.子程序 _时钟_保存用户在线_周期事件
.局部变量 记次

.计次循环首 (取数组成员数 (客户_数组), 记次)
    输出调试文本 (“保存在线: ” + 客户_数组 [记次].标记 + “ ,客户数: ” + 到文本 (取数组成员数 (客户_数组)) + “个”)
    .如果 (超级列表框1.取当前状态图片 (超级列表框1.查找表项 (客户_数组 [记次].标记, , , 1)) = 1)
        发送 (客户_数组 [记次], “VER=1.4&CON=1&CMD=Change_Stat&SEQ=” + 标记 () + “&UIN=” + 客户_数组 [记次].标记 + “&SID=&XP=C4CA4238A0B92382&ST=40”)
    .否则
        发送 (客户_数组 [记次], “VER=1.4&CON=1&CMD=Change_Stat&SEQ=” + 标记 () + “&UIN=” + 客户_数组 [记次].标记 + “&SID=&XP=C4CA4238A0B92382&ST=10”)
    .如果结束

.计次循环尾 ()

.子程序 __启动窗口_位置被改变

.如果真 (是否已创建 (窗口_验证码))
    窗口_验证码.左边 = 左边 + 宽度 ÷ 2 - 窗口_验证码.宽度 ÷ 2
    窗口_验证码.顶边 = 顶边 + 高度 ÷ 2 - 窗口_验证码.高度 ÷ 2
.如果真结束


.子程序 _按钮_导入_被单击
.局部变量 数据, 文本型
.局部变量 记次
.局部变量 行_数组, 文本型, , "0"
.局部变量 列_数组, 文本型, , "0"
.局部变量 分隔符, 文本型, , , 可以自定义分隔符,如:----

分隔符 = “----”
.如果真 (通用对话框1.打开 ())
    数据 = 到文本 (读入文件 (通用对话框1.文件名))
    行_数组 = 分割文本 (数据, #换行符, )
    .计次循环首 (取数组成员数 (行_数组), 记次)
        处理事件 ()
        .如果真 (寻找文本 (行_数组 [记次], 分隔符, , 假) ≠ -1)
            列_数组 = 分割文本 (行_数组 [记次], 分隔符, )
            .如果真 (取数组成员数 (列_数组) ≥ 2)
                登录 (列_数组 [1], 列_数组 [2])
                输出调试文本 (行_数组 [记次])
            .如果真结束

        .如果真结束

    .计次循环尾 ()
    .如果真 (取数组成员数 (行_数组) = 0 或 寻找文本 (数据, 分隔符, , 假) = -1)
        信息框 (“导入失败!” + #换行符 + “您打开的文件不是正确的格式。” + #换行符 + #换行符 + “格式: 帐号” + 分隔符 + “密码” + #换行符 + “每个帐号请按格式填写,每行代表一个帐号。”, #错误图标, “阿蒙提示:”)
    .如果真结束

.如果真结束


.子程序 _超级列表框1_检查框状态被改变
.参数 表项索引, 整数型
.参数 检查框状态, 整数型
.局部变量 局部_客户, 客户
.局部变量 QQ, 文本型

QQ = 超级列表框1.取标题 (表项索引, 1)
局部_客户 = 搜索客户 (QQ)
.如果 (超级列表框1.取表项数值 (表项索引) = 1)  ' 帐号已登录
    .判断开始 (检查框状态 = 0)
        发送 (局部_客户, “VER=1.4&CON=1&CMD=Change_Stat&SEQ=” + 标记 () + “&UIN=” + QQ + “&SID=&XP=C4CA4238A0B92382&ST=40”)
        ' 10.#在线 20.#离线 30.#离开或忙碌 40.#隐身
        置用户 (QQ, “隐身”, 1)

    .默认
        发送 (局部_客户, “VER=1.4&CON=1&CMD=Change_Stat&SEQ=” + 标记 () + “&UIN=” + QQ + “&SID=&XP=C4CA4238A0B92382&ST=10”)
        置用户 (QQ, “我在线上”, 2)
    .判断结束

.否则
    置用户 (QQ, “帐号未登录!”, 0)
.如果结束










.子程序 _服务器1_数据到达
.局部变量 临时数据, 文本型
.局部变量 分割数据, 文本型, , "0"

临时数据 = 到文本 (服务器1.取回数据 ())
分割数据 = 分割文本 (临时数据, “|”, )
.判断开始 (分割数据 [1] = “用户数据”)
    编辑框1.内容 = 取文本中间 (分割数据 [2], 6, 取文本长度 (分割数据 [2]) - 5)
    编辑框2.内容 = 取文本中间 (分割数据 [3], 10, 取文本长度 (分割数据 [3]) - 9)
    _按钮_登录_被单击 ()
.默认

.判断结束


.子程序 _服务器1_客户进入

user = 服务器1.取回客户 ()

.子程序 _时钟1_周期事件

时钟1.时钟周期 = 100





点评

是啊   江苏省盐城市  发表于 2012-10-4 11:16

评分

参与人数 1精币 +1 收起 理由
阿蒙 + 1 你的分类应该是分享

查看全部评分


结帖率:74% (14/19)
沙发
发表于 2012-1-2 19:56:16 | 只看该作者   江西省宜春市
LZ好样的,不过貌似QQ自己有自动登录的选项
回复 支持 反对

使用道具 举报

结帖率:63% (17/27)
板凳
 楼主| 发表于 2012-1-2 19:57:13 | 只看该作者   山东省淄博市
jechenjie1028 发表于 2012-1-2 19:56
LZ好样的,不过貌似QQ自己有自动登录的选项

想实现自动抢登~~~~~~~~
回复 支持 反对

使用道具 举报

结帖率:74% (14/19)
地板
发表于 2012-1-2 19:58:31 | 只看该作者   江西省宜春市
宝贝你变了 发表于 2012-1-2 19:57
想实现自动抢登~~~~~~~~

0.0     =。=  
回复 支持 反对

使用道具 举报

结帖率:100% (60/60)
地下
发表于 2012-1-2 19:58:42 | 只看该作者   浙江省丽水市
额.这个难度太高 我还不会 去学习啊POST 的吧
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)
6
发表于 2012-1-2 19:59:42 | 只看该作者   重庆市重庆市
发这么长串源码。。你好无聊
回复 支持 反对

使用道具 举报

结帖率:63% (17/27)
7
 楼主| 发表于 2012-1-2 20:01:51 | 只看该作者   山东省淄博市
易团俊 发表于 2012-1-2 19:59
发这么长串源码。。你好无聊

{:3_227:}你写个短的我看看···哈哈~木有办法~求1秒循环登录例子额···
回复 支持 反对

使用道具 举报

结帖率:88% (14/16)
8
发表于 2012-1-2 20:09:58 | 只看该作者   广西壮族自治区南宁市
哎!沒有利益可圖    路過算了!{:3_234:}
回复 支持 反对

使用道具 举报

结帖率:57% (4/7)
9
发表于 2012-1-2 20:16:50 | 只看该作者   四川省自贡市
嘿嘿  抢号的时候应该可以用的说
回复 支持 反对

使用道具 举报

签到天数: 9 天

10
发表于 2012-1-2 23:03:03 | 只看该作者   四川省乐山市
{:3_227:}{:3_227:}{:3_227:}喷血之作
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表