ENABLE_PROCESSED_INPUT在 SetConsoleMode 标志中的含义

The meaning of ENABLE_PROCESSED_INPUT in SetConsoleMode flags

本文关键字:标志 SetConsoleMode PROCESSED INPUT ENABLE      更新时间:2023-10-16

在Windows API中,有SetConsoleMode函数。在模式值中,我无法理解ENABLE_PROCESSED_INPUT值。MSDN文件说

ENABLE_PROCESSED_INPUT : value (0x0001)CTRL+C由系统处理,不会放置在输入缓冲区中。如果输入缓冲区由ReadFileReadConsole读取,则其他控制键由系统处理,不会在ReadFileReadConsole缓冲区中返回。如果还启用了ENABLE_LINE_INPUT模式,则退格、回车符和换行符将由系统处理。

这是否意味着设置此标志时,CTRL+C 不会放置在输入缓冲区中(因为它由系统处理)? 还是其他(CTRL+C放置在输入缓冲区中)?这个解释让我感到困惑。请问谁能向我解释一下?

这意味着

如果设置了 ENABLE_PROCESSED_INPUT 标志,则不会将 Ctrl+C 放入输入缓冲区中(相反,系统将处理它并将SIGINT信号发送到控制台中运行的进程)。

相同的行为适用于 ENABLE_LINE_INPUT 标志:如果设置了该标志,则 backspacecarriage returnline feed 等字符不会放入输入缓冲区中,而是由系统处理(从缓冲区中删除字符并自动处理行尾)。

ENABLE_PROCESSED_INPUT

value (0x0001)CTRL+C 由系统处理,不会放置在输入缓冲区中。

所以基本上是的,没有任何东西进入输入缓冲区,因为特殊符号由系统处理。