如何以灵活的速度移动鼠标

时间:2015-12-29 11:32:10

标签: windows python-3.x pywin32

我读了一些关于pywin32的内容,你可以将光标移动到One Point到另一个。

我如何点击一个点并以特定的速度将其移动到另一个方向而没有光标"跳跃"那个方向? 我想要一个结果,你可以看到它已经过了什么点。

操作系统是Windows。

1 个答案:

答案 0 :(得分:0)

说你有两点,开始和停止;你可以计算它们之间的线方程,只需多次调用win32api.SetCursorPos来动画运动。

import win32api, time

def moveFromTo(p1, p2):
    # slope of our line
    m = (p2[1] - p1[1]) / (p2[0] - p1[0])
    # y intercept of our line
    i = p1[1] - m * p1[0]
    # current point
    cP = p1
    # while loop comparison
    comp = isGreater
    # moving left to right or right to left
    inc = -1
    # switch for moving to right
    if (p2[0] > p1[0]):
        comp = isLess
        inc = 1
    # move cursor one pixel at a time
    while comp(cP[0],p2[0]):
        win32api.SetCursorPos(cP)
        cP[0] += inc
        # get next point on line
        cP[1] = m * cP[0] + i
        # slow it down
        time.sleep(0.01)

def isLess(a,b):
    return a < b
def isGreater(a,b):
    return a > b

moveFromTo([500,500],[100,100])