Python直到击键才做任何事情

时间:2014-06-26 03:57:00

标签: python keystroke

所以基本上我需要一个Python程序或只在按下特定的键时才执行主程序的模块,例如F10键。我找到的所有其他模块(例如getch)在按下任何键时执行一次。

2 个答案:

答案 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,直到用户按下您想要的键。然后流程继续正常。