模拟腾讯滑动自动验证的代码

此功能需要加载精易模块5.6

.版本 2
.支持库 EThread
.支持库 BmpOperate
.支持库 spec
.程序集 窗口程序集1
.程序集变量 图_原始, 字节集
.程序集变量 图_块, 字节集
.程序集变量 图_模版, 字节集
.程序集变量 初始高度, 整数型
.程序集变量 图_高度, 整数型
.程序集变量 图_宽度, 整数型
.子程序 图片处理, , , 加载图片,并转格式
.局部变量 返回文本, 文本型
.局部变量 vsig, 文本型
返回文本 = 网页_访问S (“https://ssl.captcha.qq.com/cap_union_new_getsig?aid=549000912&asig=&captype=&protocol=https&clientype=2&disturblevel=&apptype=2&curenv=inner&sess=5QXrJewkDEwg1vPDw8VhkcvqqFlg-iqmUkB2hmpkZr760j54ow_O5Ral9Mvn0FWnd8MNbzjTOfo0q13_o19RgaBSGxg1y7SvtwQtfjQYUmYJXehr0kAIofDGNQoChv6fmDfSHJMR6ecpe3cLGDNPdFwLNjGnT_9nRQTot36qu3sdKPWviiomNZHo7LOzDEe05ovs_u73D60*&theme=&noBorder=noborder&fb=1&showtype=embed&uid=2113494574&cap_cd=xkkVG0XdCXOo-yGWoBCds9jdJ0uWpmRxSEUCS8Y73GUbqzOpFCXCgw**&lang=2052&rnd=566947&rand=0.” + 文本_取随机数字 (16))
vsig = 文本_取出中间文本 (返回文本, “vsig” + #引号 + “:” + #引号, #引号)
初始高度 = 到整数 (文本_取出中间文本 (返回文本, “inity” + #引号 + “:” + #引号, #引号))
图_原始 = 网页_访问 (“https://ssl.captcha.qq.com/cap_union_new_getcapbysig?aid=549000912&asig=&captype=&protocol=https&clientype=2&disturblevel=&apptype=2&curenv=inner&sess=5QXrJewkDEwg1vPDw8VhkcvqqFlg-iqmUkB2hmpkZr760j54ow_O5Ral9Mvn0FWnd8MNbzjTOfo0q13_o19RgaBSGxg1y7SvtwQtfjQYUmYJXehr0kAIofDGNQoChv6fmDfSHJMR6ecpe3cLGDNPdFwLNjGnT_9nRQTot36qu3sdKPWviiomNZHo7LOzDEe05ovs_u73D60*&theme=&noBorder=noborder&fb=1&showtype=embed&uid=2113494574&cap_cd=xkkVG0XdCXOo-yGWoBCds9jdJ0uWpmRxSEUCS8Y73GUbqzOpFCXCgw**&lang=2052&rnd=566947&rand=0.8316309340056851&vsig=” + vsig + “&img_index=0”)
图_块 = 网页_访问 (“https://ssl.captcha.qq.com/cap_union_new_getcapbysig?aid=549000912&asig=&captype=&protocol=https&clientype=2&disturblevel=&apptype=2&curenv=inner&sess=5QXrJewkDEwg1vPDw8VhkcvqqFlg-iqmUkB2hmpkZr760j54ow_O5Ral9Mvn0FWnd8MNbzjTOfo0q13_o19RgaBSGxg1y7SvtwQtfjQYUmYJXehr0kAIofDGNQoChv6fmDfSHJMR6ecpe3cLGDNPdFwLNjGnT_9nRQTot36qu3sdKPWviiomNZHo7LOzDEe05ovs_u73D60*&theme=&noBorder=noborder&fb=1&showtype=embed&uid=2113494574&cap_cd=xkkVG0XdCXOo-yGWoBCds9jdJ0uWpmRxSEUCS8Y73GUbqzOpFCXCgw**&lang=2052&rnd=566947&rand=0.8316309340056851&vsig=” + vsig + “&img_index=2”)
图_模版 = 网页_访问 (“https://ssl.captcha.qq.com/cap_union_new_getcapbysig?aid=549000912&asig=&captype=&protocol=https&clientype=2&disturblevel=&apptype=2&curenv=inner&sess=5QXrJewkDEwg1vPDw8VhkcvqqFlg-iqmUkB2hmpkZr760j54ow_O5Ral9Mvn0FWnd8MNbzjTOfo0q13_o19RgaBSGxg1y7SvtwQtfjQYUmYJXehr0kAIofDGNQoChv6fmDfSHJMR6ecpe3cLGDNPdFwLNjGnT_9nRQTot36qu3sdKPWviiomNZHo7LOzDEe05ovs_u73D60*&theme=&noBorder=noborder&fb=1&showtype=embed&uid=2113494574&cap_cd=xkkVG0XdCXOo-yGWoBCds9jdJ0uWpmRxSEUCS8Y73GUbqzOpFCXCgw**&lang=2052&rnd=566947&rand=0.8316309340056851&vsig=” + vsig + “&img_index=1”)
图片_转换 (图_模版, 1, , 图_模版)
图片_转换 (图_原始, 1, , 图_原始)
图片_转换 (图_块, 1, , 图_块, )
图片框2.图片 = 图_块
图片框3.图片 = 图_模版
图_高度 = 图片_取高度 (图_模版)
图_宽度 = 图片_取宽度 (图_模版)
图片框2.顶边 = 初始高度
滑动 (图_原始, 图_模版, 3000000)
.子程序 _载入图片按钮_被单击
启动线程 (&图片处理, , )
.子程序 滑动, , , 滑动的过程
.参数 原始图, 字节集
.参数 模版图, 字节集
.参数 阀值, 整数型
.局部变量 原始位图, 位图
.局部变量 模版位图, 位图
.局部变量 块位图, 位图
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 是否跳出, 逻辑型
.局部变量 模版X, 整数型
.局部变量 连续差异次数, 整数型, 静态
.局部变量 块X, 整数型
原始位图.创建 (图_宽度, 图_高度, 24, )
原始位图.载入数据 (原始图)
模版位图.创建 (图_宽度, 图_高度, 24, )
模版位图.载入数据 (模版图)
块位图.创建 (图片_取宽度 (图_块), 图片_取高度 (图_块), 24, )
块位图.载入数据 (图_块)
.计次循环首 (图片_取宽度 (图_块), a)
  .计次循环首 (图片_取高度 (图_块), b)
    .如果 (块位图.取某点颜色 (a, b) = 9895935)
      调试输出 (“当前块” + 到文本 (a))
      块X = a
      是否跳出 = 真
      跳出循环 ()
    .否则
      是否跳出 = 假
    .如果结束
  .计次循环尾 ()
  .如果真 (是否跳出 = 真)
    是否跳出 = 假
    跳出循环 ()
  .如果真结束
.计次循环尾 ()
.计次循环首 (图_宽度, a)
  .计次循环首 (图_高度, b)
    .如果 (取绝对值 (原始位图.取某点颜色 (a, b) - 模版位图.取某点颜色 (a, b)) > 阀值)
      连续差异次数 = 连续差异次数 + 1
      .如果真 (连续差异次数 ≥ 5)
        模版X = a
        调试输出 (“当前模版” + 到文本 (a))
        是否跳出 = 真
        跳出循环 ()
      .如果真结束
    .否则
      连续差异次数 = 0
    .如果结束
  .计次循环尾 ()
  .如果真 (是否跳出 = 真)
    跳出循环 ()
  .如果真结束
.计次循环尾 ()
连续差异次数 = 0
图片框2.左边 = 模版X - 块X
信息框 (“滑动结果” + #换行符 + “X:” + 到文本 (图片框2.左边) + “,Y:” + 到文本 (初始高度), 0, , )
.子程序 二值化, 字节集, , (无用)本想先二值化处理一下,但是后来发现效果很差,所以放弃了
.参数 原始图, 字节集
.参数 阀值, 整数型
.局部变量 位图, 位图
.局部变量 局_y, 整数型
.局部变量 局_x, 整数型
.局部变量 亮度, 整数型
位图.创建 (图_宽度, 图_高度, 24, )
位图.载入数据 (原始图)
.计次循环首 (图_高度, 局_y)
  .计次循环首 (图_宽度, 局_x)
    亮度 = 位与 (位图.取某点颜色 (局_x - 1, 局_y - 1), 255)
    .如果 (亮度 < 阀值)
      位图.置某点颜色 (局_x - 1, 局_y - 1, #黑色)
    .否则
      位图.置某点颜色 (局_x - 1, 局_y - 1, #白色)
    .如果结束
  .计次循环尾 ()
.计次循环尾 ()
返回 (位图.取位图数据 ())

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对悠悠之家的支持。如果你想了解更多相关内容请查看下面相关链接

点赞(222)

评论列表共有 0 条评论

立即
投稿
返回
顶部