COMMENT FAIRE : Effacer la fenêtre de console avec Visual C# .NET

Pour vous procurer une version Microsoft Visual Basic de cet article, reportez-vous à l'article .


Cet article a trait aux espaces de noms de la bibliothèque de classe Microsoft .NET Framework suivants :

  • System

  • System.Runtime.InteropServices

DANS CETTE TÂCHE


Résumé

Cet article pas à pas montre comment effacer la fenêtre de la console par le biais d'un programme à l'aide de Visual C# .NET.


Exemple de programme


  1. Démarrez Microsoft Visual Studio .NET.

  2. Créez un nouveau projet Application de console Visual C#.

  3. Collez l'instruction using suivante en haut de la classe par défaut :

                        
    using nsClearConsole;
  4. Collez le code suivant dans la procédure principale de l'application de console :

                        
    static void Main(string[] args)
    {
    ClearConsole ClearMyConsole = new ClearConsole();
    Console.WriteLine("CECI EST LA PREMIÈRE LIGNE"); // Some text
    Console.WriteLine("CECI EST LA DEUXIÈME LIGNE"); // Some text
    Console.WriteLine("CECI EST LA TROISIÈME LIGNE"); // Some text
    Console.WriteLine("CECI EST LA QUATRIÈME LIGNE"); // Some text
    Console.WriteLine("CECI EST LA CINQUIÈME LIGNE"); // Some text
    Console.WriteLine("Appuyez sur entrée pour effacer"); // Some text
    Console.ReadLine(); // Wait for user input
    ClearMyConsole.Clear(); // Clear the screen
    Console.WriteLine("LA CONSOLE EST EFFACÉE"); // Some text to clear console
    Console.WriteLine("Appuyez sur entrée pour terminer"); // Some text
    Console.ReadLine(); // Wait for user input
    }
  5. Dans le menu Projet, cliquez sur Ajouter une classe.

  6. Dans le menu Ajouter un nouvel élément, sélectionnez classe puis cliquez sur Ouvrir.

  7. Remplacez l'ensemble du code existant dans la nouvelle classe par le code suivant :

                        
    using System;
    using System.Runtime.InteropServices;

    namespace nsClearConsole
    {
    /// <summary>
    /// Description récapitulative pour ClearConsole.
    /// </summary><BR/>
    public class ClearConsole
    {
    private const int STD_OUTPUT_HANDLE = -11;
    private const byte EMPTY = 32;

    [StructLayout(LayoutKind.Sequential)]
    struct COORD
    {
    public short x;
    public short y;
    }

    [StructLayout(LayoutKind.Sequential)]
    struct SMALL_RECT
    {
    public short Left;
    public short Top;
    public short Right;
    public short Bottom;
    }

    [StructLayout(LayoutKind.Sequential)]
    structCONSOLE_SCREEN_BUFFER_INFO
    {
    public COORD dwSize;
    public COORD dwCursorPosition;
    public int wAttributes;
    public SMALL_RECT srWindow;
    public COORD dwMaximumWindowSize;
    }

    [DllImport("kernel32.dll", EntryPoint="GetStdHandle", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
    private static extern int GetStdHandle(int nStdHandle);

    [DllImport("kernel32.dll", EntryPoint="FillConsoleOutputCharacter", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
    private static extern int FillConsoleOutputCharacter(int hConsoleOutput, byte cCharacter, int nLength, COORD dwWriteCoord, ref int lpNumberOfCharsWritten);

    [DllImport("kernel32.dll", EntryPoint="GetConsoleScreenBufferInfo", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
    private static extern int GetConsoleScreenBufferInfo(int hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);

    [DllImport("kernel32.dll", EntryPoint="SetConsoleCursorPosition", SetLastError=true, CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
    private static extern int SetConsoleCursorPosition(int hConsoleOutput, COORD dwCursorPosition);

    private int hConsoleHandle;

    public ClearConsole()
    {
    //
    // TODO : Ajouter la logique constructeur ici.
    //
    hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    }

    public void Clear()
    {
    int hWrittenChars = 0;
    CONSOLE_SCREEN_BUFFER_INFO strConsoleInfo = new CONSOLE_SCREEN_BUFFER_INFO();
    COORD Home;
    Home.x = Home.y = 0;
    GetConsoleScreenBufferInfo(hConsoleHandle, ref strConsoleInfo);
    FillConsoleOutputCharacter(hConsoleHandle, EMPTY, strConsoleInfo.dwSize.x * strConsoleInfo.dwSize.y, Home, ref hWrittenChars);
    SetConsoleCursorPosition(hConsoleHandle, Home);
    }
    }
    }
  8. Appuyez sur F5 pour exécuter l'application. Notez que le texte dans la fenêtre de la console est effacé.

Références

Pour plus d'informations sur les fonctions de la console, visitez le site Web de MSDN (Microsoft Developer Network) suivant :

Fonctions de la console

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×