Enlever la croix quitter du cmd via le langage c

Résolu
mariusvn Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
mariusvn Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
bonjour j'aimerai pouvoir enlever la croix du cmd via le c ou le c++ (je les contrôles bien)
il ne faut pas oublier que j'execute un batch avec le c qui ouvre lui même le cmd
voici mon codage :
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
     system ("c:\\\"Documents and Settings\"\\Marius\\Desktop\\error\\matrix.bat");
    return 0;
}

serait-ce possible de modifier ce fichier pour arriver a ma solution?
merci d'avence!
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Impossible de manière standard. Ce n'est pas le C qui gère l'affichage de la fenêtre MS-DOS mais l'OS. Il faut donc que tu vois en amont.
Ou alors, il faut passer par une application graphique C (plus compliqué).
Sinon pour info, si ton programme se résume à appeler un .bat, il y a des outils plus adaptés que le C. Pourquoi faire du C ?
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut mariusvn,

Comme fiddy l'a indiqué, en C standard, tu ne peux pas influer sur la console.

Cependant, puisque tu es sous Windows, tu peux utiliser les API Windows pour paramétrer la console.

La fonction SetConsoleDisplayMode permet, par exemple, de forcer l'affichage d'une console en plein écran (il n'y a donc pas de "croix du cmd", puisqu'il n'y a même pas de fenêtre).

Elle est décrite ici :

https://docs.microsoft.com/en-us/windows/console/setconsoledisplaymode?redirectedfrom=MSDN

Comme l'indique cette documentation, la fonction est incluse dans kernel32.dll.

Si tu utilises un environnement de programmation MinGW, tu peux faire cela pour charger dynamiquement cette dll dans ton programme, et faire usage de cette API :

#include <stdio.h> 
#include <stdlib.h> 
#include <windows.h> 

/* 
 * Exemple de code Windows pour un programme console compilé avec MinGW 
 * permettant l'affichage de la console en plein écran 
 */ 

#define CONSOLE_FULLSCREEN_MODE 1 
typedef BOOL (WINAPI *SetConsoleDisplayModeProc)(HANDLE, DWORD, PCOORD); 

int main(void) 
{ 

    HMODULE dll; 
    COORD coord; 

    /* on charge kernel32.dll */ 
    if (!(dll = LoadLibrary("kernel32.dll"))) 
    { 
        printf("Erreur : impossible de charger kernel32.dll"); 
        system("PAUSE"); 
        exit(EXIT_FAILURE); 
    } 
    SetConsoleDisplayModeProc SetConsoleDisplayMode = 
            (SetConsoleDisplayModeProc) GetProcAddress(dll, 
                    "SetConsoleDisplayMode"); 

    /* on obtient un handle sur la console */ 
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); 
    if (hConsole == NULL || hConsole == INVALID_HANDLE_VALUE) 
    { 
        printf("Erreur : impossible d'obtenir" 
                "un handle sur la console"); 
        system("PAUSE"); 
        FreeLibrary(dll); 
        exit(EXIT_FAILURE); 
    } 

    /* on appelle l'API Windows SetConsoleDisplayMode */ 
    if (!SetConsoleDisplayMode(hConsole,  
            CONSOLE_FULLSCREEN_MODE, &coord)) 
    { 
        printf("Erreur : impossible de mettre " 
                "la console en mode plein écran"); 
        system("PAUSE"); 
        FreeLibrary(dll); 
        exit(EXIT_FAILURE); 
    } 

    printf("Bonjour, je suis en plein écran :-)\n"); 
    system("PAUSE"); 

    /* on libère kernel32.dll */ 
    FreeLibrary(dll); 
    return 0; 
}

Dal
0
mariusvn Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   3
 
merci pour l'info :)
0