Python 防止子进程使用按键

Python prevent subprocess from consuming keypress

我有一个 python 脚本在 Windows 中启动一个 .exe 程序。我希望能够通过按 "ESC" 来终止该程序。但是我在我的 Python 程序中看不到按键,它由 .exe 程序读取并使用。如何启动 .exe 程序,使其不从 stdin/keyboard 读取。我不需要向 .exe 程序发送任何键盘命令。

这是我使用的代码:

 pid = subprocess.Popen(functionCall)
    while ((pid.poll()) or (pid.returncode == None)):
        if msvcrt.kbhit() and msvcrt.getch()==chr(27):
            print("ESC detected")
            pid.kill()
            pid.wait()
        else:
            print("Sleep")
            time.sleep(1)
    print("Exit while")

不可能

父进程(在本例中 Python)没有直接控制(除了发送信号和从 stdout/stderr 并通过子进程发送到 stdin)。

您需要在 .EXEWindows 可执行文件)本身中处理此问题;假设您有源代码并且可以修改它。

看起来我的问题不是捕获按键的子进程。但是我处理读取按键和分析键值。抱歉打扰了。

我的问题的解决方案:

 msvcrt.getch().decode()==chr(27)

而不是:

msvcrt.getch()==chr(27)