我有一个使用鼠标点击的脚本,因此控制台窗口不处于活动状态。因此,如果我想终止循环,我不能简单地使用Ctrl-C键盘中断它。你知道吗
如果按下一个键,我如何在一个循环中加入一个检查来打破它?例如,我想要这样的东西:
while True:
if key_pressed.ascii() == 27: #escape is pressed
break
print('foo')
我试过使用msvcrt
,但它只在窗口处于活动状态时起作用。我尝试过使用pyHook,但无法在循环中工作。你知道吗
编辑: 这里有一个例子,几乎工作的方式,我想它。但是,它不会在运行完成后正确退出(即使使用系统出口())而且在我的实际代码中实现时pygame.event.pump泵()调用似乎弄乱了循环代码。我做错什么了?你知道吗
import pyHook, pygame, sys
def OnKeyboardEvent(event):
if event.Ascii==27:
global shouldBreak
shouldBreak=True
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
shouldBreak=False
pygame.init()
while True:
pygame.event.pump()
if shouldBreak:
break
#loop code
print('foo')
#post loop code
print('bar')
sys.exit()
目前没有回答
相关问题 更多 >
编程相关推荐