62 votes

Console Windows avec gestion des couleurs ANSI

Y a-t-il un émulateur de console pour Windows qui interprète la coloration ANSI?

Nous utilisons rspec et une partie de notre équipe utilise Windows et les chaînes spéciales pour la coloration ne leur sont pas très utiles ;).

3voto

Red Tux Points 2074

Windows Terminal a le support des codes d'échappement ANSI :

https://github.com/microsoft/terminal

C'est un logiciel open source, et vous pouvez également télécharger des versions depuis ici :

https://github.com/microsoft/terminal/releases

1voto

Graham Dearsley Points 11

Voici le code pour activer en toute sécurité les séquences de terminal virtuel de la console dans vos propres programmes. C'est plus ou moins un copier-coller du code du site Microsoft avec quelques codes de contrôle de position du curseur à la fin.

#include
#include

using namespace std;

int main()
{

    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

    if (hOut == INVALID_HANDLE_VALUE)
    {
        return false;
    }

    HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE);

    if (hIn == INVALID_HANDLE_VALUE)
    {
        return false;
    }

    DWORD dwOriginalOutMode = 0;
    DWORD dwOriginalInMode = 0;

    if (!GetConsoleMode(hOut, &dwOriginalOutMode))
    {
        return false;
    }

    if (!GetConsoleMode(hIn, &dwOriginalInMode))
    {
        return false;
    }

    DWORD dwRequestedOutModes = ENABLE_VIRTUAL_TERMINAL_PROCESSING | DISABLE_NEWLINE_AUTO_RETURN;
    DWORD dwRequestedInModes = ENABLE_VIRTUAL_TERMINAL_INPUT;

    DWORD dwOutMode = dwOriginalOutMode | dwRequestedOutModes;

    if (!SetConsoleMode(hOut, dwOutMode))
    {
        return -1;
    }

    DWORD dwInMode = dwOriginalInMode | ENABLE_VIRTUAL_TERMINAL_INPUT;

    if (!SetConsoleMode(hIn, dwInMode))
    {
        return -1;
    }

    cout << "blink";

    cout << "\x1B[10;20fHello";

    cout << "\x1B[11;20fWorld" << endl;
}

0 votes

Oh, j'ai oublié #include ;-)

0 votes

Le code mentionné ci-dessus se trouve ici.

0voto

Jay Dutt Points 1

Bien que vous puissiez activer l'encodage ANSI en utilisant les méthodes ci-dessus, cela comporte ses propres limites. Au lieu de passer par des processus complexes, vous pouvez utiliser Git Bash, qui code toutes les couleurs ANSI, et c'est facile à utiliser.

1 votes

Gitbash utilise msys, ce qui modifie le shell, pas seulement la console. Ce n'est pas ce que les gens ont demandé. Utilisez simplement la nouvelle application Terminal Windows du Windows Store.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X