所以基本上我需要一个Python程序或只在按下特定的键时才执行主程序的模块,例如F10键。我找到的所有其他模块(例如getch)在按下任何键时执行一次。
答案 0 :(得分:1)
由于您提到msvcrt
,我将假设(Windows)。你在Linux中做的与众不同。
F10
是一个2字节的返回值,00 68
,所以...你找到第一个字节00
,然后是第二个字节68
。还有一个2字节的返回值,第一个字节有224
,所以你也要检查它。
我在kbhit()
上添加了一个区块,因为如果您让它在getch()
上阻止,它会选择Ctrl-C
并且您无法突破。阻止这个机会给你机会。
如果您愿意,可以将此更加通用,这是F10
的硬编码。
import msvcrt
while True:
if msvcrt.kbhit():
first = ord(msvcrt.getch())
if first in (0, 224):
second = ord(msvcrt.getch())
if first == 0 and second == 68:
break
答案 1 :(得分:0)
如果您已经在使用getch
,那么您可以循环使用它并等待您的密钥:
while getch() != 'MAGIC KEY':
pass
这将永远运行getch
,直到用户按下您想要的键。然后流程继续正常。