2010-09-01 40 views
-1

可能重複:
How can I make a while True break if certain key is pressed? [Python]如何用鑰匙退出一段時間? [Python的]

我有這樣的代碼:

def enterCategory(): 
    time.sleep(0.2) 
    if entercount == 1: 
     mouseMove(*position[5]) 
     while win32gui.GetCursorInfo()[1] != 65567: 
      mouseMove(*position[5]) 
      mouseMove(*position[4]) 
     mouseLeftClick() 

def onKeyboardEvent(event): 
    if event.KeyID == 13: #ENTER 
     print '\n' 
     mouseLeftClick() 
     enterCountInc() 
     enterCategory() 
     print '\n' 
    if event.KeyID == 113: #F2 
     doLogin() 
     enterCountReset() 
    return True 

hook.KeyDown = onKeyboardEvent 
hook.HookKeyboard() 
pythoncom.PumpMessages() 

而且這樣的工作:

當我按下F2,該腳本將填寫一些表格,並等待我的輸入登錄, n,當我按回車時,腳本跳轉到屏幕的一部分,並檢查該部分是否是鏈接(enterCategory()部分),如果是鏈接,腳本會成功執行我想要的操作,但如果出現問題與登錄,位置[4]和[5]永遠不會是一個鏈接,腳本將在無限循環...

我該如何解決?我如何做一些事情,所以當我按F2時,它存在的時間,並再次嘗試登錄?

很抱歉,如果我不理解=/

回答

0

你可以使用F2的處理設置一個全局標誌(例如,一個名爲proceed)到False,並在你現在有while win32gui...,有,而是

global proceed 
proceed = True 
while proceed and win32gui... 

不優雅,但是光標形狀分析既不是鼠標在鏈接上,也不是---)。