[英]Interrupt Python infinite while loop with key press
我正在編寫一個簡單的腳本來防止計算機進入睡眠狀態(沒有管理員權限),並且該腳本圍繞由“ while True”行引起的無限循環:
import time, win32api
cursorX = 0
cursorY = 0
while True:
cursorX, cursorY = win32api.GetCursorPos()
time.sleep(600)
cursorX = cursorX + 10
win32api.SetCursorPos((cursorX,cursorY))
cursorX, cursorY = win32api.GetCursorPos()
time.sleep(600)
cursorX = cursorX - 10
win32api.SetCursorPos((cursorX,cursorY))
現在,我可以使用一個簡單的Ctrl + C中斷此操作,但是我想更徹底地殺死它。 有沒有簡單的方法編寫條件來等待按鍵擊中循環? 我猜它可能涉及一個事件,對此我知之甚少。
我添加的最后三行將使您可以在按下任何鍵的情況下跳出循環。 不要忘記導入msvcrt
import time, win32api
import msvcrt
cursorX = 0
cursorY = 0
while True:
cursorX, cursorY = win32api.GetCursorPos()
time.sleep(600)
cursorX = cursorX + 10
win32api.SetCursorPos((cursorX,cursorY))
cursorX, cursorY = win32api.GetCursorPos()
time.sleep(600)
cursorX = cursorX - 10
win32api.SetCursorPos((cursorX,cursorY))
if msvcrt.kbhit():
if ord(msvcrt.getch()) != None:
break
清理CTRL-C的一種方法是使用try-except來捕獲KeyboardInterrupt,例如:
try:
while True:
...
...
except KeyboardInterrupt:
exit
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.