我有类标签和(x,y)坐标,我想在此基础上控制基本的鼠标操作。到目前为止,我可以执行移动鼠标、单击(鼠标左键)、双击和右键单击等操作。我面临的问题是光标移动到绝对位置,但我想让它从最后一个位置移动。以下是函数:
import mouse as m
def OperateMouse(mX,mY,sW,sH,classLabl):
if classLabl == "Close":
print("Close Sign Detected... Exiting")
return False
if classLabl == "Move":
#mX = sW + ((mX - (sW/2))*sW/(sW/2)-(sH/2))
m.move(mX,mY)
elif classLabl == "SC":
m.click(button='left')
elif classLabl == "T_DC":
m.double_click(button='left')
elif classLabl == "RC":
m.right_click()
这里,mX和mY是我从屏幕一半大小的输出窗口获得的坐标,sW和sH是屏幕宽度和高度。在使用鼠标之前,我还尝试了pyautogui。
以下是我尝试过的修改:
lX, lY = pyautogui.position()
print("Last Pos:" , lX, lY)
print("Curnt Pos:" , mX, mY)
print("Diff = " , mX-lX, mY-lY)
nX, nY = mX-lX, mY-lY
mX, mY = mX+nX, mY+nY
#m.move(mX-lX, mY-lY)
try:
pyautogui.move(mX,mY)
if pyautogui.failSafeCheck():
raise pyautogui.FailSafeException()
except:
print("FailSafe Exception")
不起作用,当跳转到右下角时引发FailSafe异常
PyAutoGUI支持绝对移动和相对移动。
pyautogui。moveRel(xOffset,yOffset)
相对于鼠标的当前位置移动鼠标李>如果查看PyAutoGUI源代码,您会发现move()
只是v1中添加的moveRel()
的别名。0
如果要将坐标从窗口空间转换为屏幕空间,首先要计算窗口在屏幕空间中的位置,并在计算屏幕空间坐标时将其用作偏移量。