Partager via


Fonction SetConsoleMode

Définit le mode d’entrée d’une mémoire tampon d’entrée de console ou le mode de sortie d’une mémoire tampon d’écran de console.

Syntaxe

BOOL WINAPI SetConsoleMode(
  _In_ HANDLE hConsoleHandle,
  _In_ DWORD  dwMode
);

Paramètres

hConsoleHandle [entrée]
Handle vers la mémoire tampon d’entrée de console ou mémoire tampon d’écran de console. Le handle doit avoir le droit d’accès GENERIC_READ. Pour plus d’informations, consultez Sécurité de la mémoire tampon et droits d’accès d’une console.

dwMode [entrée]
Mode d’entrée ou de sortie à définir.

Si le paramètre hConsoleHandle est un handle d’entrée, le mode peut être une ou plusieurs des valeurs suivantes. Quand une console est créée, tous les modes d’entrée à l’exception de ENABLE_WINDOW_INPUT et ENABLE_VIRTUAL_TERMINAL_INPUT sont activés par défaut.

Valeur Signification
ENABLE_ECHO_INPUT 0x0004 Les caractères lus par la fonction ReadFile ou ReadConsole sont écrits dans la mémoire tampon d’écran active à mesure qu’ils sont tapés dans la console. Ce mode peut être utilisé uniquement si le mode ENABLE_LINE_INPUT est également activé.
ENABLE_INSERT_MODE 0x0020 Quand ce mode est activé, le texte entré dans une fenêtre de console est inséré à la position actuelle du curseur et tout le texte se trouvant après cette position n’est pas remplacé. Quand il est désactivé, tout le texte qui suit est remplacé.
ENABLE_LINE_INPUT 0x0002 La fonction ReadFile ou ReadConsole retourne une valeur uniquement quand un caractère de retour chariot est lu. Si ce mode est désactivé, les fonctions retournent un résultat quand un ou plusieurs caractères sont disponibles.
ENABLE_MOUSE_INPUT 0x0010 Si le pointeur de la souris se trouve dans les limites de la fenêtre de console et que la fenêtre a le focus clavier, les événements de souris générés par le déplacement de la souris et les pressions sur les boutons sont placés dans la mémoire tampon d’entrée. Ces événements sont ignorés par ReadFile ou ReadConsole, même si ce mode est activé. La fonction ReadConsoleInput peut être utilisée pour lire les enregistrements d’entrée MOUSE_EVENT à partir de la mémoire tampon d’entrée.
ENABLE_PROCESSED_INPUT 0x0001 La combinaison de touches CTRL+C est traité par le système et n’est pas placé dans la mémoire tampon d’entrée. Si la mémoire tampon d’entrée est lue par ReadFile ou ReadConsole, les autres clés de contrôle sont traitées par le système et ne sont pas retournées dans la mémoire tampon ReadFile ou ReadConsole. Si le mode ENABLE_LINE_INPUT est également activé, les caractères retour arrière, retour chariot et saut de ligne sont gérés par le système.
ENABLE_QUICK_EDIT_MODE 0x0040 Cet indicateur permet à l’utilisateur de sélectionner et de modifier du texte à l’aide de la souris. Pour activer ce mode, utilisez ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS. Pour désactiver ce mode, utilisez ENABLE_EXTENDED_FLAGS sans cet indicateur.
ENABLE_WINDOW_INPUT 0x0008 Les interactions utilisateur qui changent la taille de la mémoire tampon d’écran de console sont signalées dans la mémoire tampon d’entrée de la console. Les informations relatives à ces événements peuvent être lues à partir de la mémoire tampon d’entrée par les applications à l’aide de la fonction ReadConsoleInput, mais pas par celles utilisant ReadFile ou ReadConsole.
ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200 Si vous définissez cet indicateur, le moteur de traitement de terminal virtuel convertit les entrées utilisateur reçues par la fenêtre de console en séquences de terminal virtuel de console qui peuvent être récupérées par une application de prise en charge à l’aide des fonctions ReadFile ou ReadConsole.

Cet indicateur est conçu pour être généralement utilisé conjointement avec ENABLE_VIRTUAL_TERMINAL_PROCESSING sur le handle de sortie afin de se connecter à une application qui communique exclusivement par le biais de séquences de terminal virtuel.

Si le paramètre hConsoleHandle est un handle de mémoire tampon d’écran, le mode peut être une ou plusieurs des valeurs suivantes. Quand une mémoire tampon d’écran est créée, les deux modes de sortie sont activés par défaut.

Valeur Signification
ENABLE_PROCESSED_OUTPUT 0x0001 Les caractères écrits par la fonction WriteFile ou WriteConsole ou répercutés par la fonction ReadFile ou ReadConsole sont analysés pour les séquences de contrôle ASCII, et l’action appropriée est effectuée. Les caractères retour arrière, tabulation, cloche, retour chariot et saut de ligne sont traités. Elle doit être activée lors de l’utilisation de séquences de contrôle ou quand ENABLE_VIRTUAL_TERMINAL_PROCESSING est défini.
ENABLE_WRAP_AT_EOL_OUTPUT 0x0002 Lors de l’écriture avec WriteFile ou WriteConsole ou de la répercussion avec ReadFile ou ReadConsole, le curseur se déplace au début de la ligne suivante quand il atteint la fin de la ligne actuelle. Cela entraîne le défilement automatique des lignes affichées dans la fenêtre de console quand le curseur avance au-delà de la dernière ligne de la fenêtre. De plus, le contenu de la mémoire tampon d’écran de console défile également vers le haut (../ignorant la ligne supérieure de la mémoire tampon d’écran de console) quand le curseur avance au-delà de la dernière ligne dans la mémoire tampon d’écran de console. Si ce mode est désactivé, le dernier caractère de la ligne est remplacé par les caractères suivants.
ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 Lors de l’écriture avec WriteFile ou WriteConsole, les caractères sont analysés pour les séquences VT100 et les séquences de caractères de contrôle similaires qui contrôlent le déplacement du curseur, le mode couleur/police et d’autres opérations qui peuvent également être effectuées par le biais des API de console existantes. Pour plus d’informations, consultez Séquences de terminal virtuel de console.
Vérifiez que ENABLE_PROCESSED_OUTPUT est défini lors de l’utilisation de cet indicateur.
DISABLE_NEWLINE_AUTO_RETURN 0x0008 Lors de l’écriture avec WriteFile ou WriteConsole, cela ajoute un état supplémentaire au retour à la ligne qui peut retarder le déplacement du curseur et les opérations de défilement de la mémoire tampon.

Normalement, quand ENABLE_WRAP_AT_EOL_OUTPUT est défini et que le texte atteint la fin de la ligne, le curseur se déplace immédiatement à la ligne suivante et le contenu de la mémoire tampon remonte d’une ligne vers le haut. Contrairement à ce jeu d’indicateurs, le curseur ne passe pas à la ligne suivante et l’opération de défilement n’est pas effectuée. Le caractère écrit est imprimé en position finale sur la ligne et le curseur reste au-dessus de ce caractère comme si ENABLE_WRAP_AT_EOL_OUTPUT était désactivé, mais le prochain caractère imprimable sera imprimé comme si ENABLE_WRAP_AT_EOL_OUTPUT était activé. Aucun remplacement ne se produit. Plus précisément, le curseur avance rapidement jusqu’à la ligne suivante, un défilement est effectué si nécessaire, le caractère est affiché et le curseur avance d’une position.

Cet indicateur est conçu pour être généralement utilisé conjointement avec ENABLE_VIRTUAL_TERMINAL_PROCESSING défini afin de mieux émuler un émulateur de terminal où l’écriture du caractère final à l’écran (../en bas à droite) sans déclencher un défilement immédiat est le comportement souhaité.
ENABLE_LVB_GRID_WORLDWIDE 0x0010 Les API pour écrire des attributs de caractères, notamment WriteConsoleOutput et WriteConsoleOutputAttribute permettent l’utilisation d’indicateurs à partir d’attributs de caractères pour ajuster la couleur du premier plan et de l’arrière-plan du texte. De plus, une plage d’indicateurs DBCS a été spécifiée avec le préfixe COMMON_LVB. Ces indicateurs fonctionnaient uniquement dans les pages de codes DBCS pour le chinois, le japonais et le coréen.

À l’exception des indicateurs d’octet de début et d’octet de fin, les indicateurs restants qui décrivent le dessin au trait et la vidéo inverse (../permuter les couleurs de premier plan et d’arrière-plan) peuvent être utiles pour d’autres langues afin de mettre en évidence certaines parties de la sortie.

La définition de cet indicateur de mode de la console permet d’utiliser ces attributs dans chaque page de codes de chaque langue.

Il est désactivé par défaut pour assurer la compatibilité avec les applications connues qui ont historiquement tiré parti de la console en ignorant ces indicateurs sur les ordinateurs non CJC (chinois, japonais, coréen) pour stocker des bits dans ces champs pour leur propre fonctionnement ou par accident.

Notez que l’utilisation du mode ENABLE_VIRTUAL_TERMINAL_PROCESSING peut entraîner la définition d’indicateurs de grille LVB et de vidéo inverse alors que cet indicateur est encore désactivé si l’application attachée demande le soulignement ou la vidéo inverse par le biais de séquences de terminal virtuel de console.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Notes

Une console se compose d’une mémoire tampon d’entrée et d’une ou de plusieurs mémoires tampons d’écran. Le mode d’une mémoire tampon de console détermine le comportement de la console lors des opérations d’entrée ou de sortie (E/S). Un ensemble de constantes d’indicateur est utilisé avec les handles d’entrée, et un autre ensemble est utilisé avec les handles (de sortie) de mémoire tampon d’écran. La définition des modes de sortie d’une mémoire tampon d’écran n’affecte pas les modes de sortie des autres mémoires tampons d’écran.

Les modes ENABLE_LINE_INPUT et ENABLE_ECHO_INPUT affectent uniquement les processus qui utilisent ReadFile ou ReadConsole pour lire à partir de la mémoire tampon d’entrée de la console. De même, le mode ENABLE_PROCESSED_INPUT affecte principalement les utilisateurs de ReadFile et ReadConsole, sauf qu’il détermine également si l’entrée CTRL+C est signalée dans la mémoire tampon d’entrée (pour être lue par la fonction ReadConsoleInput) ou si elle est passée à une fonction définie par l’application.

Les modes ENABLE_WINDOW_INPUT et ENABLE_MOUSE_INPUT déterminent si les interactions utilisateur impliquant un redimensionnement de fenêtre et des actions de la souris sont signalées dans la mémoire tampon d’entrée ou si elles sont ignorées. Ces événements peuvent être lus par ReadConsoleInput, mais ils sont toujours filtrés par ReadFile et ReadConsole.

Les modes ENABLE_PROCESSED_OUTPUT et ENABLE_WRAP_AT_EOL_OUTPUT affectent uniquement les processus qui utilisent ReadFile ou ReadConsole et WriteFile ou WriteConsole.

Pour déterminer le mode actuel d’une mémoire tampon d’entrée de console ou d’une mémoire tampon d’écran, utilisez la fonction GetConsoleMode.

Exemples

Pour obtenir un exemple, consultez Lecture des événements de mémoire tampon d’entrée.

Spécifications

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête ConsoleApi.h (via WinCon.h, inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Fonctions de console

Modes de la console

GetConsoleMode

HandlerRoutine

ReadConsole

ReadConsoleInput

ReadFile

WriteConsole

WriteFile