Partage
  • Partager sur Facebook
  • Partager sur Twitter

cacher la fenetre de la console

    8 décembre 2023 à 21:51:01

    Bonjour, j'ai un souci avec le langage C.

    Je veux écrire un mini programme en C capable d'effectuer une tache précise sur mon ordinateur. Mais le souci est qu'il y a toujours cette console CMD Windows pénible qui s'ouvre et qui reste jusqu'à l'arrêt du programme en question.

    Je voulais savoir s'il y a un moyen de cacher/faire disparaître cette console qui s'ouvre à l'éxecution du programme.

    merci d'avance;

    • Partager sur Facebook
    • Partager sur Twitter
      8 décembre 2023 à 22:25:16

      Bonsoir,

      Tu peux peut-être regarder du côté de l'API Windows par exemple avec ShowWindow

      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        9 décembre 2023 à 9:23:15

        d'accord mais je ne suis pas tres bien avancer en c et je ne sais pas c'est quoi un handle, j'imagine que c'est une carasteristique de la fenetre, peu tu me donner un exemple de code?

        et ou puis-je trouver winuser ?

        -
        Edité par TiboFilo 9 décembre 2023 à 9:26:38

        • Partager sur Facebook
        • Partager sur Twitter
          9 décembre 2023 à 9:43:08

          je n'utilise pas Windows, teste ce code

          #include <windows.h>
          
          int main(void) {
              HWND hWnd = GetConsoleWindow();
              ShowWindow(hWnd, SW_HIDE);
              
              // Le reste de ton code
          
              return 0;
          }
          

          Un handle est une valeur abstraite qui réfère à des objets liés à un système d'exploitation par exemple.

          -
          Edité par fred1599 9 décembre 2023 à 9:43:44

          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

            9 décembre 2023 à 11:02:59

            fred1599 a écrit:

            #include <windows.h>
            
            int main(void) {
                HWND hWnd = GetConsoleWindow();
                ShowWindow(hWnd, SW_HIDE);
                
                // Le reste de ton code
            
                return 0;
            }
            

            sa minimise la fenetre mais pas plus

            par contre j'ai vu plusieurs type de showWindow alors je vais essayer 

            edit : merci baucoup !

            -
            Edité par TiboFilo 9 décembre 2023 à 11:04:16

            • Partager sur Facebook
            • Partager sur Twitter
              9 décembre 2023 à 11:05:28

              Pas sûr que tu trouves mieux, mais une autre idée serait de regarder du côté des options de ton compilateur.
              • Partager sur Facebook
              • Partager sur Twitter

              Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
              La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                9 décembre 2023 à 11:45:20

                Peut-être :

                #include <windows.h>
                
                int main(void)
                {
                    FreeConsole();
                
                    // Le reste de ton code;
                
                    return 0;
                }
                

                Il y a d'autre solutions, mais on ne connait pas le but que tu souhaites atteindre ?

                • Partager sur Facebook
                • Partager sur Twitter
                ...
                  9 décembre 2023 à 12:43:42

                  en fait, je voudrais faire un programme qui tourne en arriere plan et qui afficher tout les x temps un message:

                   sa fait X heure que tu geek !

                  mais on pourais aussi faire d'autre truc je voudrais simplement aprendre !!!

                  ps: non se n'est pas pour du hacking .

                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 décembre 2023 à 13:21:06

                    La fonction FreeConsole te convient-elle ? (Attention, il ne faut pas exécuter ton programme dans un EDI qui lui, créées une console).

                    Et tu veux l'afficher où ce message en l’absence de console ? (Dans  une fenêtre graphique).

                    Pour les processus qui tourne en tâche de fond il y a les services. 

                    Est-ce que tu veux que ton application soit accessible par une icone de notification.

                    As-tu commencé de faire quelque chose ? si oui montre nous. 

                    Bref, sois plus précis...

                    Edit :

                    Sous minGW, tu peux aussi compiler avec l'option de linker -mwindows (Il n'y aura pas de console créée).

                    #include <windows.h>
                    
                    int main(void)
                    {
                        while(1)
                        {
                            Sleep(5000);
                            if(MessageBox(NULL, "Ça fait X heure que tu geekes !.\r\nQuit (Y/N) ?",
                                               "Title", MB_YESNO | MB_ICONQUESTION) == IDYES) break;
                        };
                        return 0;
                    }

                    -
                    Edité par rouIoude 9 décembre 2023 à 14:13:24

                    • Partager sur Facebook
                    • Partager sur Twitter
                    ...
                      9 décembre 2023 à 14:28:41

                      non, la première étape était pour moi de cacher la console, et mon premier problème est la.

                      je voudrais une popup comme ton code sauf que quand j'execute ton code (rouIoude) il y est ecrit du mandarin ou des caractere chinois.

                      ps: freeconsole ne marche pas

                      pps: je suis sous VC

                      -
                      Edité par TiboFilo 9 décembre 2023 à 14:32:31

                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 décembre 2023 à 17:00:37

                        Hello,

                        Chez moi (console win10), le dernier code de @rouloude fonctionne parfaitement. Et le FreeConsole() fonctionne également:

                        #include <windows.h>
                         
                        int main(void) {
                            FreeConsole();
                            Sleep(5000);
                        	
                            return(0);
                        }



                        • Partager sur Facebook
                        • Partager sur Twitter

                        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                          9 décembre 2023 à 21:24:55

                          Sa la minimise chez moi

                          Et  le show windows ne marche pas

                          • Partager sur Facebook
                          • Partager sur Twitter
                            9 décembre 2023 à 22:56:51

                            TiboFilo a écrit:

                            Sa la minimise chez moi

                            Etonant, car ce n'est pas du tout le rôle de FreeConsole. Et tu bien sûr d’exécuter les codes qu'on te donne ?

                            Pour ne pas créer de console sous VC les options de link sont : /SUBSYSTEM:windows et /ENTRY:mainCRTStartup



                            • Partager sur Facebook
                            • Partager sur Twitter
                            ...
                              10 décembre 2023 à 0:15:34

                              rouIoude a écrit:

                              TiboFilo a écrit:

                              Sa la minimise chez moi

                              Etonant, car ce n'est pas du tout le rôle de FreeConsole. Et tu bien sûr d’exécuter les codes qu'on te donne ?

                              Pour ne pas créer de console sous VC les options de link sont : /SUBSYSTEM:windows et /ENTRY:mainCRTStartup



                              a sa marche ! je suis alez dans les link et fait ce que tu ma dit et c bon merci :)

                              • Partager sur Facebook
                              • Partager sur Twitter
                                2 janvier 2024 à 16:37:32

                                je l'ai fait dans un projet, et puis quand je le fait dans un autre (le subsistm/window) sa ne marche pas , il ne trouve pas la definition de Windows (/SUBSYSTEM:WINDOWS)

                                mon code est vide :

                                • #include <stdio.h>
                                  #include <stdlib.h>
                                  #include <windows.h>
                                  
                                  
                                  
                                  
                                  int main() {
                                  
                                  }
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 janvier 2024 à 18:03:26

                                  /SUBSYSTEM:WINDOWS c'est une option pour le linkeur de Microsoft Visual C. Si tu l'utilises correctement ça fonctionne.

                                  Maintenant, comme tu ne donne pas beaucoup de détail depuis le début et qu'on on ne sait pas trop ce que tu fais, ça va être difficile de t'en dire plus.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  ...
                                    2 janvier 2024 à 23:21:28

                                    J'ai comme un doute sur l'utilisation des majuscules:
                                    invalid subsystem type WINDOWS
                                    Perso (sous win7 / win10), j'ai toujours utilisé
                                    -Wl,--subsystem=windows

                                    Edit: gcc 12.2.0

                                    -
                                    Edité par edgarjacobs 2 janvier 2024 à 23:58:27

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                                      2 janvier 2024 à 23:59:36

                                      Tu utilises ça sous Visual C++ ?

                                      C'est des slashs '/' pour les options sous Visual C++

                                      EDIT : Ok, mais là on parle de Visual C++

                                      -
                                      Edité par rouIoude 3 janvier 2024 à 0:01:55

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      ...
                                        3 janvier 2024 à 0:38:05

                                        Non, j'utilise cette écriture (en console) dans un batch ou un makefile. Désolé d'avoir répondu à côté de la plaque :honte:

                                        -
                                        Edité par edgarjacobs 3 janvier 2024 à 0:39:05

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                                          3 janvier 2024 à 11:16:47

                                          j'utilise les option proposer PAR visual community, le meme que celui sur mon autre projet, mais me sors une erreur de type 

                                          LNK2001   symbole externe non resolu _WinMain@16



                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            3 janvier 2024 à 13:31:21

                                            rouIoude a écrit:

                                            Pour ne pas créer de console sous VC les options de link sont : /SUBSYSTEM:windows et /ENTRY:mainCRTStartup

                                            Tu en a déjà oublié un bout ? /ENTRY:mainCRTStartup

                                            Avec /SUBSYSTEM:windows le linker attend une fonction d'entrée WinMain alors pour avoir la fonction d'entrée en main il faut rajouté /ENTRY:mainCRTStartup.

                                            -
                                            Edité par rouIoude 3 janvier 2024 à 13:38:44

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            ...
                                              11 janvier 2024 à 15:48:28 - Message modéré pour le motif suivant : Merci d'écrire en français


                                                11 janvier 2024 à 18:02:30 - Message modéré pour le motif suivant : Réponse à un message modéré


                                                Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                                  11 janvier 2024 à 19:57:17 - Message modéré pour le motif suivant : Si je modère un message, pour quelles raisons le recopier ici?


                                                  On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                                                  cacher la fenetre de la console

                                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                  • Editeur
                                                  • Markdown