2010-09-03 180 views
2

我想我的脚本的这一部分,它完美地工作帮助if语句

if win32gui.GetCursorInfo()[1] == 65567: 

,但是当我尝试添加该

win32gui.GetCursorInfo()[2] == categoriesScreenPos[1]: 

它停止工作......为什么?

categoriesScreenPos[1]是相同的值,光标的位置(17,242),但如果还是不行...

完全if

if win32gui.GetCursorInfo()[1] == 65567 and win32gui.GetCursorInfo()[2] == categoriesScreenPos[1]: 

我想要是,当光标位于指定的位置并且有指定的图标时,if会中断一段时间。

PS:如果我打印这样

print categoriesScreenPos[1] 
print win32gui.GetCursorInfo()[2] 

两个命令他们给我相同的结果!

编辑:不工作,因为我有一个休息,如果,而仍然继续......但只有第一个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 
+2

你是什么意思的“它不工作”?你期望发生什么?实际发生了什么? – NullUserException 2010-09-03 22:50:36

+0

尝试在'if'中使用print('something')来查看问题是否出现在'if'没有采用右侧或之后 – laurent 2010-09-03 23:01:48

+1

请发布__all__相关代码:break,while,all的。 – katrielalex 2010-09-03 23:06:26

回答

1

我觉得m_move(*loginScreenPos[0])导致鼠标坐标改变(因为它移动鼠标),因此也是如此win32gui.GetCursorInfo()[2] - 你说你print编辑它,但你print移动其他地方?