Python don';在击键之前我什么都不做
所以基本上我需要一个Python程序或一个模块,它只在按下一个特定的键时执行主程序,例如F10键。我发现的所有其他模块(例如getch)在按下任何键后都会执行 如果您已经在使用Python don';在击键之前我什么都不做,python,keystroke,Python,Keystroke,所以基本上我需要一个Python程序或一个模块,它只在按下一个特定的键时执行主程序,例如F10键。我发现的所有其他模块(例如getch)在按下任何键后都会执行 如果您已经在使用getch,您不妨在其上循环并等待您的键: while getch() != 'MAGIC KEY': pass 这将永远运行getch,直到用户按下所需的键。然后流继续正常运行。既然您提到了msvcrt,我就假设(Windows)。在Linux中你会做不同的事情 F10是一个2字节的返回,0068,所以。。。查
getch
,您不妨在其上循环并等待您的键:
while getch() != 'MAGIC KEY':
pass
这将永远运行
getch
,直到用户按下所需的键。然后流继续正常运行。既然您提到了msvcrt
,我就假设(Windows)。在Linux中你会做不同的事情
F10
是一个2字节的返回,0068
,所以。。。查找第一个字节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