2010-09-03 6 views
2

J'essaie cette partie de mon script et il fonctionne parfaitementavec instruction if

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

mais quand je suis en train d'ajouter cette

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

il arrêter de travailler ... pourquoi ?

Le categoriesScreenPos[1] est la même valeur (17,242) de la position du curseur, mais ne fonctionne pas si ...

pleine if:

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

Ce que je suis en train est de, lorsque le curseur se trouve dans une position spécifiée et possède une icône spécifiée, la pause de si un moment.

ps: si j'imprimer les deux commandes comme cette

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

ils me donnent le même résultat!

edit: ne fonctionne pas parce que j'ai une pause dans le si, et le reste continue ... mais seulement avec la première instruction if, a parfaitement fonctionné.

Je suis désolé ... part entière du script:

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

Que voulez-vous dire par "ça ne marche pas"? Qu'attendez-vous qu'il se passe? Qu'est-ce qui se passe réellement? – NullUserException

+0

essayer d'utiliser une impression ('quelque chose') à l'intérieur du 'si 'pour voir si le problème est avec le' si' ne pas prendre le côté droit ou après cela – laurent

+1

S'il vous plaît envoyer __all__ le code pertinent: la pause, le temps, tout de cela. – katrielalex

Répondre

1

Je pense que la cause m_move(*loginScreenPos[0]) coordonnées de la souris pour changer (car il déplace la souris) et par conséquent le fait win32gui.GetCursorInfo()[2] - vous vous dites print l'a édité, mais avez-vous print il immédiatement après déplaçant la souris ailleurs?