2015-12-29 31 views
0

我读了一些关于pywin32的内容,让您可以将光标移动到另一个点上。如何以灵活的速度移动我的鼠标

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

OS是Windows。

回答

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])