2 votes

La signification de ENABLE_PROCESSED_INPUT dans les drapeaux SetConsoleMode

Dans l'API Windows, il existe la fonction SetConsoleMode. Parmi les valeurs de mode, je ne comprends pas la valeur ENABLE_PROCESSED_INPUT valeur. Le document MSDN dit

ENABLE_PROCESSED_INPUT : value (0x0001) : CTRL+C est traité par le système et n'est pas placé dans le tampon d'entrée. Si le tampon d'entrée est lu par ReadFile ou ReadConsole Les autres touches de contrôle sont traitées par le système et ne sont pas renvoyées dans le message d'erreur. ReadFile ou ReadConsole tampon. Si le ENABLE_LINE_INPUT est également activé, les caractères de retour arrière, de retour de chariot et de saut de ligne sont gérés par le système.

Cela signifie-t-il que lorsque ce drapeau est activé, CTRL+C n'est pas placé dans le tampon d'entrée (parce qu'il est traité par le système) ? ou est-ce autrement( CTRL+C est placé dans le tampon d'entrée) ? L'explication est confuse pour moi.. Quelqu'un peut-il me l'expliquer ?

3voto

Frédéric Hamidi Points 123646

Cela signifie que Ctrl + C ne sera pas placé dans le tampon d'entrée si le paramètre ENABLE_PROCESSED_INPUT est activé (au lieu de cela, le système le traitera et enverra l'indicateur SIGINT au processus en cours d'exécution dans la console).

Le même comportement s'applique à la ENABLE_LINE_INPUT s'il est activé, les caractères comme backspace , carriage return y line feed ne sont pas placés dans le tampon d'entrée et sont traités par le système (effacement des caractères du tampon et traitement automatique des fins de lignes).

0voto

SingerOfTheFall Points 9936

ENABLE_PROCESSED_INPUT : value (0x0001) : CTRL+C est traité par le système et est ne sont pas placés dans le tampon d'entrée.

Donc, fondamentalement, oui, rien ne va dans le tampon d'entrée, car les symboles spéciaux sont gérés par le système.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X