TC官方合作论坛

标题: 请帮忙分析下代码意思 [打印本页]

作者: ssolsu    时间: 2015-1-28 17:03
标题: 请帮忙分析下代码意思
最近想自己弄一个真实的鼠标,但真的离开学校太久了,虽然有人写了个比较好的代码,查了一天资料,根本不明所以。还请了解的大神们,帮忙分析一下,也给那些把PI,把正切,余切知识还给老师的人,再拿回来,谢谢!
这个是按键的脚本。 最难理解的就是循环这个部分。距离/PI是什么意思?

Sub 鼠标慢慢跑(x1,y1,振幅,周期)
    Dim x0,y0,x,y, 距离,q0,q1,r,t,a
    x0 = 100
    y0 = 100
    MoveTo x0,y0
    距离=sqr((x1-x0)^2+(y1-y0)^2)
    q1 = 角度计算((x1-x0),(y1-y0))
    pi = Atn(1)*8
    a = 距离/pi
    t=周期/pi
    For i=0 To pi step 0.001
        x=x1-距离+i*a
        y =y1+振幅*sin(i)
        q0 = 角度计算(x-x1,y-y1)
        r=sqr((x-x1)^2+(y-y1)^2)
        x =x1+r*Cos((q0+q1))
        y = y1 + r * Sin((q0 + q1))
        LeftDown 1
        MoveTo x, y
        LeftUp 1
        Delay t
    Next
End Sub
Function 角度计算(x, y)
    If x = 0 Then
        x = 0.0001
    End If
    If x > 0 and y >= 0 Then
        角度计算 = (Atn(y / x))
    ElseIf x > 0 and y < 0 Then
        角度计算 = (Atn(y / x))+pi
    ElseIf x < 0 Then
        角度计算 = (Atn(y / x)) + pi/2
    End If  
End Function


作者: ssolsu    时间: 2015-1-28 20:07
没有大神愿意帮新手解惑吗?
作者: nha    时间: 2015-1-28 20:24
   你这个数学 我也是醉了 ..  直接找个鼠标Call都比这个简单
作者: ssolsu    时间: 2015-1-28 20:36
的确比较难理解,但是这个鼠标轨迹,在弧度上,速度上,都可以随机,而且比较圆滑,那么就可以比较真实的模拟鼠标轨迹。这个演示代码只是演示了从左到右的移动轨迹,那么想很好的应用,应该需要去理解它的意思,才能把代码完善起来。
作者: ssolsu    时间: 2015-1-28 21:15
求大神帮忙啊!
作者: 龍飛    时间: 2015-1-28 22:37
ssolsu 发表于 2015-1-28 21:15
求大神帮忙啊!

这个真心没多大用处,千言万语,大漠一句命令就搞定..

函数简介:
鼠标动作模拟真实操作,带移动轨迹,以及点击延时随机.

函数原型:
long EnableRealMouse(enable,mousedelay,mousestep)

参数定义:
enable 整形数: 0 关闭模拟
                     1 开启模拟
mousedelay 整形数: 单位是毫秒. 表示在模拟鼠标移动轨迹时,每移动一次的时间间隔.这个值越大,鼠标移动越慢.
Mousestep 整形数: 表示在模拟鼠标移动轨迹时,每移动一次的距离. 这个值越大,鼠标移动越快速.
返回值:
整形数:
0: 失败
1: 成功

示例:
dm.EnableRealMouse 1,20,30
dm.MoveTo 100,100
dm.MoveTo 500,500

作者: 2645572175    时间: 2015-6-24 21:32





欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1