我正在尝试我的脚本的这一部分并且它工作得很好
if win32gui.GetCursorInfo()[1] == 65567:
但是当我尝试添加这个时
win32gui.GetCursorInfo()[2] == categoriesScreenPos[1]:
它停止工作...为什么?
categoriesScreenPos[1] 与光标位置的值 (17,242) 相同,但 if 不起作用...
完整的if:
if win32gui.GetCursorInfo()[1] == 65567 and win32gui.GetCursorInfo()[2] == categoriesScreenPos[1]:
我正在尝试的是,当光标位于指定位置并具有指定图标时,if break 一会儿。
ps: 如果我像这样打印这两个命令
print categoriesScreenPos[1]
print win32gui.GetCursorInfo()[2]
他们给了我相同的结果!
编辑:不起作用,因为我在 if 内部有一个中断,而 while 仍然继续......但只有第一个 if 语句,工作得很好。
对不起... 脚本的完整部分:
while timer < timerMax:
timer = timer + 1
time.sleep(2)
m_move(*categoriesScreenPos[1])
time.sleep(2)
m_move(*loginScreenPos[0])
if win32gui.GetCursorInfo()[1] == 65567 and win32gui.GetCursorInfo()[2] == categoriesScreenPos[1]:
print '[' + time.strftime('%Y/%m/%d %H:%M:%S')+'] ' + 'Login Sucess'
break
if win32gui.GetCursorInfo()[1] == 65541:
time.sleep(0.2)
kbShell.SendKeys('{F2}')
print '[' + time.strftime('%Y/%m/%d %H:%M:%S')+'] ' + 'Login Failed'
break
请您参考如下方法:
我认为 m_move(*loginScreenPos[0]) 会导致鼠标坐标发生变化(因为它移动了鼠标),因此 win32gui.GetCursorInfo()[2] -- 你说你打印了它,但你是否在将鼠标移到别处后立即打印它?
