簡體   English   中英

通過按鍵中斷Python無限while循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM