Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

INFO : éviter la fenêtre de console de disparaître

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 99115
Résumé
Lorsqu'une application de console est démarrée soit de l'Explorateur Windows NT File Manager, responsable de programme, ou en tapant début <progname>à partir de l'invite de commande, il exécute dans son propre console. Cette console disparaît dès que l'application s'arrête et par conséquent l'utilisateur ne peut pas lire tout écrits dans l'écran entre le dernier suspendre et le programme quitter. Il existe deux approches pour empêcher la fenêtre de console de disparaître.
Plus d'informations

Méthode 1: interrompre si l'exécution du processus dans différents console

La première méthode consiste pour implémenter une application console pour ne pas terminer immédiatement lorsqu'elle s'exécute dans une fenêtre de console distincts. Il n'est pas probable est qu'une application pour toujours suspendre après l'affichage d'informations dans la fenêtre de console lorsque vous avez démarré à partir de l'invite. Cependant, il n'existe aucune API (application programming interface) qui détermine directement ou non l'application partage une console avec cmd.exe. Cette méthode recherche à l'emplacement actuel du curseur de la console, et si elle est (0,0), puis le programme suppose qu'il s'exécute dans une fenêtre de console distincts.

Exemple de code

   #include <windows.h>   #include <stdio.h>   #include <conio.h>   CONSOLE_SCREEN_BUFFER_INFO csbi;   HANDLE hStdOutput;   BOOL bUsePause;   void main(void)   {      hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);      if (!GetConsoleScreenBufferInfo(hStdOutput, &csbi))      {         printf("GetConsoleScreenBufferInfo failed: %d\n", GetLastError());         return;      }      // if cursor position is (0,0) then use pause      bUsePause = ((!csbi.dwCursorPosition.X) &&                   (!csbi.dwCursorPosition.Y));      printf("Interesting information to read.\n");      printf("More interesting information to read.\n");      // only pause if running in separate console window.      if (bUsePause)      {         int ch;         printf("\n\tPress any key to exit...\n");         ch = getch();      }   }				
Remarque : cette méthode ne fonctionnera pas si l'utilisateur combine un écran clair (CLS) et l'exécution de l'application en une étape (for example, CLS [C:\] & <progname>), car vous placez le curseur est être (0, 0), mais l'application utilise la console, qui appartient à cmd.exe.

Méthode 2: démarrer la console avec cmd.exe /K

Cette méthode est du démarrage d'une application de console dans une fenêtre séparée et de forcer la fenêtre pour restent après que l'application a terminé. Une application peut utiliser la ligne de commande suivante avec WinExec(), CreateProcess(), ou dans un fichier de commandes :
cmd /K consoleapp.exe
Une fois consoleapp.exe terminée, le commutateur /K permet de la fenêtre de console restent sur l'écran. L'utilisateur d'application pouvez ensuite taper la commande exit pour fermer la fenêtre de console.

Avertissement : cet article a été traduit automatiquement

Propriétés

ID d'article : 99115 - Dernière mise à jour : 11/21/2006 15:46:16 - Révision : 4.1

Microsoft Win32 Application Programming Interface

  • kbmt kbconsole kbinfo kbkernbase kbprogramming KB99115 KbMtfr
Commentaires
&t=">")[0].appendChild(m);