为编程爱好者分享易语言教程源码的资源网

网站首页 > 易语言相关 > 网络相关源码 正文

鼠标移动轨迹-用贝尔曲线实现【过hk检测】

三叶资源网 2021-02-28 09:32:20 网络相关源码 1550 ℃ 0 评论
.版本 2
.支持库 spec

.程序集 模拟轨迹

.子程序 贝尔曲线_HK计算坐标和间隔
.参数 参_起始_x, 整数型
.参数 参_起始_y, 整数型
.参数 参_终点_x, 整数型
.参数 参_终点_y, 整数型
.参数 参_返回坐标_x, 整数型, 参考 数组
.参数 参_返回坐标_y, 整数型, 参考 数组
.参数 参_返回延时, 整数型, 参考 数组, 毫秒级别
.局部变量 局_途经点坐标_x, 整数型, , "0"
.局部变量 局_途经点坐标_y, 整数型, , "0"
.局部变量 局_途径次数_距离, 整数型, , "0", 组代表次数 数字代表距离
.局部变量 局_精准度, 整数型
.局部变量 局_终点_漂移_x, 整数型
.局部变量 局_终点_漂移_y, 整数型
.局部变量 局_i, 整数型

置随机数种子 ()
.如果 (取随机数 (1, 2) = 1)  ' 随机回路和逐步,
    局_终点_漂移_x = 参_终点_x + 取随机数 (3, 10)
    局_终点_漂移_y = 参_终点_y + 取随机数 (2, 5) × 选择 (取随机数 (0, 1) = 0, -1, 1)
.否则
    局_终点_漂移_x = 参_终点_x - 取随机数 (3, 10)
    局_终点_漂移_y = 参_终点_y - 取随机数 (2, 5) × 选择 (取随机数 (0, 1) = 0, -1, 1)
.如果结束
.计次循环首 (3, )
    加入成员 (局_途径次数_距离, 取随机数 (6, 10))  ' 看情况可自己改
.计次循环尾 ()
贝尔曲线_自动计算位置 (参_起始_x, 参_起始_y, 局_终点_漂移_x, 局_终点_漂移_y, 局_途径次数_距离, 局_途经点坐标_x, 局_途经点坐标_y)
局_精准度 = 1
贝尔曲线_计算贝尔曲线 (局_途经点坐标_x, 局_途经点坐标_y, 局_精准度, 参_返回坐标_x, 参_返回坐标_y, 参_返回延时)
参_返回延时 [取数组成员数 (参_返回延时)] = 取随机数 (300, 2500)
清除数组 (局_途径次数_距离)
清除数组 (局_途经点坐标_x)
清除数组 (局_途经点坐标_y)
.计次循环首 (2, )
    加入成员 (局_途径次数_距离, 取随机数 (2, 5))
.计次循环尾 ()
贝尔曲线_自动计算位置 (局_终点_漂移_x, 局_终点_漂移_y, 参_终点_x, 参_终点_y, 局_途径次数_距离, 局_途经点坐标_x, 局_途经点坐标_y)
局_精准度 = 1
贝尔曲线_计算贝尔曲线 (局_途经点坐标_x, 局_途经点坐标_y, 局_精准度, 参_返回坐标_x, 参_返回坐标_y, 参_返回延时)

.子程序 贝尔曲线_自动计算位置
.参数 参_起始_x, 整数型
.参数 参_起始_y, 整数型
.参数 参_终点_x, 整数型
.参数 参_终点_y, 整数型
.参数 参_途径数_距离_组, 整数型, 数组, 可以是负数
.参数 参_返回坐标_x, 整数型, 参考 数组
.参数 参_返回坐标_y, 整数型, 参考 数组
.局部变量 局_途径数, 整数型
.局部变量 局_坐标距离_y, 整数型
.局部变量 局_坐标距离_x, 整数型
.局部变量 局_坐标距离平均数_x, 双精度小数型
.局部变量 局_坐标距离平均数_y, 双精度小数型
.局部变量 局_i, 整数型
.局部变量 局_方向_x, 逻辑型
.局部变量 局_方向_y, 逻辑型

置随机数种子 (取启动时间 ())
局_途径数 = 取数组成员数 (参_途径数_距离_组)
重定义数组 (参_返回坐标_x, 假, 局_途径数 + 2)
重定义数组 (参_返回坐标_y, 假, 局_途径数 + 2)
参_返回坐标_x [1] = 参_起始_x
参_返回坐标_y [1] = 参_起始_y
参_返回坐标_x [局_途径数 + 2] = 参_终点_x
参_返回坐标_y [局_途径数 + 2] = 参_终点_y
局_坐标距离_x = 参_起始_x - 参_终点_x
局_坐标距离_y = 参_起始_y - 参_终点_y
.如果 (局_坐标距离_x < 0)
    局_方向_x = 假
    局_坐标距离_x = 取绝对值 (局_坐标距离_x)
.否则
    局_方向_x = 真
.如果结束

.如果 (局_坐标距离_y < 0)
    局_方向_y = 假
    局_坐标距离_y = 取绝对值 (局_坐标距离_y)
.否则
    局_方向_y = 真
.如果结束

.如果真 (局_坐标距离_x = 0)
    局_坐标距离_x = 1
.如果真结束
.如果真 (局_坐标距离_y = 0)
    局_坐标距离_y = 1
.如果真结束

局_坐标距离平均数_x = 局_坐标距离_x ÷ (局_途径数 + 1)
局_坐标距离平均数_y = 局_坐标距离_y ÷ (局_途径数 + 1)

.计次循环首 (局_途径数, 局_i)

    .如果 (局_方向_x)
        参_返回坐标_x [局_i + 1] = 参_起始_x - 局_坐标距离平均数_x × 局_i + 选择 (局_坐标距离_x < 局_坐标距离_y, -参_途径数_距离_组 [局_i], 0)
    .否则
        参_返回坐标_x [局_i + 1] = 参_起始_x + 局_坐标距离平均数_x × 局_i + 选择 (局_坐标距离_x < 局_坐标距离_y, -参_途径数_距离_组 [局_i], 0)
    .如果结束


    .如果 (局_方向_y)
        参_返回坐标_y [局_i + 1] = 参_起始_y - 局_坐标距离平均数_y × 局_i + 选择 (局_坐标距离_x > 局_坐标距离_y, -参_途径数_距离_组 [局_i], 0)
    .否则
        参_返回坐标_y [局_i + 1] = 参_起始_y + 局_坐标距离平均数_y × 局_i + 选择 (局_坐标距离_x > 局_坐标距离_y, -参_途径数_距离_组 [局_i], 0)
    .如果结束

.计次循环尾 ()


.子程序 贝尔曲线_计算贝尔曲线
.参数 参_途经坐标_x, 整数型, 数组
.参数 参_途经坐标_y, 整数型, 数组
.参数 参_精准度, 整数型
.参数 参_返回坐标_x, 整数型, 参考 数组
.参数 参_返回坐标_y, 整数型, 参考 数组
.参数 参_返回延时, 整数型, 参考 数组
.局部变量 局_变量1, 小数型, , "0"
.局部变量 局_变量2, 小数型, , "0"
.局部变量 局_变量3, 小数型, , "0"
.局部变量 局_变量4, 小数型, , "0"
.局部变量 局_变量5, 小数型
.局部变量 局_终点坐标_x, 整数型
.局部变量 局_终点坐标_y, 整数型
.局部变量 局_起点坐标_x, 整数型
.局部变量 局_起点坐标_y, 整数型
.局部变量 局_循环变量1, 整数型
.局部变量 局_循环变量2, 整数型
.局部变量 局_循环变量3, 整数型
.局部变量 局_途径数量, 整数型
.局部变量 局_途经坐标_x, 整数型, , "0"
.局部变量 局_途经坐标_y, 整数型, , "0"
.局部变量 局_临时坐标_x, 整数型, , "0"
.局部变量 局_临时坐标_y, 整数型, , "0"

' 清除数组 (参_返回坐标)
置随机数种子 (取启动时间 ())
.如果真 (参_精准度 < 1)
    参_精准度 = 1
.如果真结束
.计次循环首 (取数组成员数 (参_途经坐标_x), 局_循环变量1)
    .计次循环首 (参_精准度, )
        加入成员 (局_途经坐标_x, 参_途经坐标_x [局_循环变量1])
        加入成员 (局_途经坐标_y, 参_途经坐标_y [局_循环变量1])
    .计次循环尾 ()
.计次循环尾 ()
局_途径数量 = 取数组成员数 (局_途经坐标_x) - 1
重定义数组 (局_变量1, 假, 局_途径数量 + 1)
重定义数组 (局_变量2, 假, 局_途径数量 + 1)
重定义数组 (局_变量3, 假, 局_途径数量 + 1)
重定义数组 (局_变量4, 假, 局_途径数量 + 1)
局_起点坐标_x = 局_途经坐标_x [1]
局_起点坐标_y = 局_途经坐标_y [1]
.变量循环首 (0, 局_途径数量, 1, 局_循环变量1)
    局_变量1 [局_循环变量1 + 1] = 1
.变量循环尾 ()
.变量循环首 (2, 局_途径数量, 1, 局_循环变量1)
    .变量循环首 (1, 局_循环变量1 - 1, 1, 局_循环变量2)
        局_变量2 [局_循环变量2 + 1] = 局_变量1 [局_循环变量2] + 局_变量1 [局_循环变量2 + 1]
    .变量循环尾 ()
    .变量循环首 (1, 局_循环变量1 - 1, 1, 局_循环变量2)
        局_变量1 [局_循环变量2 + 1] = 局_变量2 [局_循环变量2 + 1]
    .变量循环尾 ()
.变量循环尾 ()
.变量循环首 (1, 局_途径数量 × 局_途径数量 + 1, 1, 局_循环变量1)
    局_变量5 = 局_循环变量1 ÷ (局_途径数量 × 局_途径数量 + 1)
    局_变量3 [1] = 1
    局_变量4 [1] = 1
    .变量循环首 (1, 局_途径数量, 1, 局_循环变量2)
        局_变量3 [局_循环变量2 + 1] = 局_变量3 [局_循环变量2] × 局_变量5
        局_变量4 [局_循环变量2 + 1] = 局_变量4 [局_循环变量2] × (1 - 局_变量5)
    .变量循环尾 ()
    .变量循环首 (0, 局_途径数量, 1, 局_循环变量2)
        局_变量2 [局_循环变量2 + 1] = 局_变量3 [局_循环变量2 + 1] × 局_变量4 [局_途径数量 + 1 - 局_循环变量2]
    .变量循环尾 ()
    局_终点坐标_x = 0
    局_终点坐标_y = 0
    .变量循环首 (0, 局_途径数量, 1, 局_循环变量2)
        局_终点坐标_x = 局_终点坐标_x + 局_变量1 [局_循环变量2 + 1] × 局_变量2 [局_循环变量2 + 1] × 局_途经坐标_x [局_循环变量2 + 1]
        局_终点坐标_y = 局_终点坐标_y + 局_变量1 [局_循环变量2 + 1] × 局_变量2 [局_循环变量2 + 1] × 局_途经坐标_y [局_循环变量2 + 1]
    .变量循环尾 ()
    贝尔曲线_取直线像素点 (局_起点坐标_x, 局_起点坐标_y, 局_终点坐标_x, 局_终点坐标_y, 局_临时坐标_x, 局_临时坐标_y)  ' 给多的点点连接起来
    .计次循环首 (取数组成员数 (局_临时坐标_x), 局_循环变量3)
        加入成员 (参_返回延时, 取随机数 (3, 4))
        加入成员 (参_返回坐标_x, 局_临时坐标_x [局_循环变量3])
        加入成员 (参_返回坐标_y, 局_临时坐标_y [局_循环变量3])
    .计次循环尾 ()
    局_起点坐标_x = 局_终点坐标_x
    局_起点坐标_y = 局_终点坐标_y
.变量循环尾 ()

.子程序 贝尔曲线_取直线像素点, , , 取路径点
.参数 参_起点横向位置, 整数型
.参数 参_起点纵向位置, 整数型
.参数 参_终点横向位置, 整数型
.参数 参_终点纵向位置, 整数型
.参数 参_返回坐标_x, 整数型, 参考 数组
.参数 参_返回坐标_y, 整数型, 参考 数组
.参数 参_递进, 整数型, 可空
.局部变量 临时坐标_x, 整数型
.局部变量 临时坐标_y, 整数型
.局部变量 dx, 整数型
.局部变量 dy, 整数型
.局部变量 e, 小数型
.局部变量 k, 小数型
.局部变量 n, 整数型

清除数组 (参_返回坐标_x)
清除数组 (参_返回坐标_y)
e = -0.5
.如果真 (是否为空 (参_递进))
    参_递进 = 1
.如果真结束
.如果真 (参_起点横向位置 ≤ 参_终点横向位置 且 参_起点纵向位置 ≤ 参_终点纵向位置)
    dx = 参_终点横向位置 - 参_起点横向位置 - 参_递进
    dy = 参_终点纵向位置 - 参_起点纵向位置 - 参_递进
    k = dy ÷ dx
    临时坐标_x = 参_起点横向位置
    临时坐标_y = 参_起点纵向位置
    .如果 (k > 1)
        k = dx ÷ dy
        加入成员 (参_返回坐标_x, 临时坐标_x)
        加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环首 (dy, n)
            临时坐标_y = 临时坐标_y + 参_递进
            e = e + k
            .如果真 (e ≥ 0)
                临时坐标_x = 临时坐标_x + 参_递进
                e = e - 参_递进
            .如果真结束
            加入成员 (参_返回坐标_x, 临时坐标_x)
            加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环尾 ()
        返回 ()
    .否则
        加入成员 (参_返回坐标_x, 临时坐标_x)
        加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环首 (dx, n)
            临时坐标_x = 临时坐标_x + 参_递进
            e = e + k
            .如果真 (e ≥ 0)
                临时坐标_y = 临时坐标_y + 参_递进
                e = e - 参_递进
            .如果真结束
            加入成员 (参_返回坐标_x, 临时坐标_x)
            加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环尾 ()
        返回 ()
    .如果结束

.如果真结束

.如果真 (参_起点横向位置 ≥ 参_终点横向位置 且 参_起点纵向位置 ≤ 参_终点纵向位置)
    dx = 参_起点横向位置 - 参_终点横向位置 + 参_递进
    dy = 参_终点纵向位置 - 参_起点纵向位置 - 参_递进
    k = dy ÷ dx
    临时坐标_x = 参_起点横向位置
    临时坐标_y = 参_起点纵向位置
    .如果 (k > 1)
        k = dx ÷ dy
        加入成员 (参_返回坐标_x, 临时坐标_x)
        加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环首 (dy, n)
            临时坐标_y = 临时坐标_y + 参_递进
            e = e + k
            .如果真 (e ≥ 0)
                临时坐标_x = 临时坐标_x - 参_递进
                e = e - 参_递进
            .如果真结束
            加入成员 (参_返回坐标_x, 临时坐标_x)
            加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环尾 ()
        返回 ()
    .否则
        加入成员 (参_返回坐标_x, 临时坐标_x)
        加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环首 (dx, n)
            临时坐标_x = 临时坐标_x - 参_递进
            e = e + k
            .如果真 (e ≥ 0)
                临时坐标_y = 临时坐标_y + 参_递进
                e = e - 参_递进
            .如果真结束
            加入成员 (参_返回坐标_x, 临时坐标_x)
            加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环尾 ()
        返回 ()
    .如果结束

.如果真结束

.如果真 (参_起点横向位置 ≤ 参_终点横向位置 且 参_起点纵向位置 ≥ 参_终点纵向位置)
    dx = 参_终点横向位置 - 参_起点横向位置 - 参_递进
    dy = 参_起点纵向位置 - 参_终点纵向位置 + 参_递进
    k = dy ÷ dx
    临时坐标_x = 参_起点横向位置
    临时坐标_y = 参_起点纵向位置
    .如果 (k > 1)
        k = dx ÷ dy
        加入成员 (参_返回坐标_x, 临时坐标_x)
        加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环首 (dy, n)
            临时坐标_y = 临时坐标_y - 参_递进
            e = e + k
            .如果真 (e ≥ 0)
                临时坐标_x = 临时坐标_x + 参_递进
                e = e - 参_递进
            .如果真结束
            加入成员 (参_返回坐标_x, 临时坐标_x)
            加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环尾 ()
        返回 ()
    .否则
        加入成员 (参_返回坐标_x, 临时坐标_x)
        加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环首 (dx, n)
            临时坐标_x = 临时坐标_x + 参_递进
            e = e + k
            .如果真 (e ≥ 0)
                临时坐标_y = 临时坐标_y - 参_递进
                e = e - 参_递进
            .如果真结束
            加入成员 (参_返回坐标_x, 临时坐标_x)
            加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环尾 ()
        返回 ()
    .如果结束

.如果真结束

.如果真 (参_起点横向位置 ≥ 参_终点横向位置 且 参_起点纵向位置 ≥ 参_终点纵向位置)
    dx = 参_起点横向位置 - 参_终点横向位置 + 参_递进
    dy = 参_起点纵向位置 - 参_终点纵向位置 + 参_递进
    k = dy ÷ dx
    临时坐标_x = 参_起点横向位置
    临时坐标_y = 参_起点纵向位置
    .如果 (k > 1)
        k = dx ÷ dy
        加入成员 (参_返回坐标_x, 临时坐标_x)
        加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环首 (dy, n)
            临时坐标_y = 临时坐标_y - 参_递进
            e = e + k
            .如果真 (e ≥ 0)
                临时坐标_x = 临时坐标_x - 参_递进
                e = e - 参_递进
            .如果真结束
            加入成员 (参_返回坐标_x, 临时坐标_x)
            加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环尾 ()
        返回 ()
    .否则
        加入成员 (参_返回坐标_x, 临时坐标_x)
        加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环首 (dx, n)
            临时坐标_x = 临时坐标_x - 参_递进
            e = e + k
            .如果真 (e ≥ 0)
                临时坐标_y = 临时坐标_y - 参_递进
                e = e - 参_递进
            .如果真结束
            加入成员 (参_返回坐标_x, 临时坐标_x)
            加入成员 (参_返回坐标_y, 临时坐标_y)
        .计次循环尾 ()
        返回 ()
    .如果结束

.如果真结束


.子程序 功能_模拟轨迹, , , 对你有帮助的话可以打赏红包。
.参数 参_起始坐标_X, 整数型
.参数 参_起始坐标_Y, 整数型
.参数 参_结束坐标_X, 整数型
.参数 参_结束坐标_Y, 整数型
.局部变量 局_移动组_X, 整数型, , "0"
.局部变量 局_移动组_Y, 整数型, , "0"
.局部变量 局_i, 整数型
.局部变量 局_移动间隔时间, 整数型, , "0"
.局部变量 局_X偏差, 整数型

置随机数种子 (取启动时间 ())
局_X偏差 = 取随机数 (2, 5)
贝尔曲线_HK计算坐标和间隔 (参_起始坐标_X + 局_X偏差, 参_起始坐标_Y + 取随机数 (1, 5), 参_结束坐标_X + 局_X偏差, 参_结束坐标_Y + 取随机数 (2, 5), 局_移动组_X, 局_移动组_Y, 局_移动间隔时间)
鼠标_移动 (, 局_移动组_X [1], 局_移动组_Y [1])
延迟 (取随机数 (100, 200))
' 鼠标_按键 (1, 3)
延迟 (取随机数 (100, 200))
.计次循环首 (取数组成员数 (局_移动组_X), 局_i)
    鼠标_移动 (, 局_移动组_X [局_i], 局_移动组_Y [局_i])
    ' 窗口_写字 (窗口_取桌面句柄 (), “.”, , , , 局_移动组_X [局_i], 局_移动组_Y [局_i])
    延时 (局_移动间隔时间 [局_i])
.计次循环尾 ()
延迟 (取随机数 (300, 3000))
' 鼠标_按键 (1, 4)

@戏人


文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
POST示例seo套接字高级输入框QQ头像采集拖放支持库弹幕监听读写锁外挂网页删除空cookie喊麦奇易模块例程控制托盘图标雷电模拟器TCP挂机心跳通用架构快递批量查询源码多线程特训班hp-socket蓝牙类库COM
最新评论