INFO: Verhinderen dat het consolevenster verdwijnen

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 99115 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

Als een consoletoepassing wordt gestart een vanuit Bestandsbeheer de Program Manager, Windows NT Verkenner of door te typen Start<progname></progname> uit de opdrachtprompt wordt uitgevoerd in een eigen console. Deze console verdwijnt Als de toepassing wordt beëindigd, en daarom de gebruiker kan niet lezen geschreven naar het scherm tussen de laatste onderbreken en het programma afsluiten. Er zijn twee methoden om te voorkomen dat het consolevenster verdwijnen.

Meer informatie

Methode 1: Als het proces wordt uitgevoerd in afzonderlijke Console onderbreken

De eerste methode is voor de uitvoering van een consoletoepassing niet beëindigd. onmiddellijk wanneer deze wordt uitgevoerd in een aparte consolevenster. Het is niet waarschijnlijk is dat u dat een toepassing altijd onderbreken wilt na weergeven informatie naar het consolevenster wanneer u vanaf de opdrachtprompt gestart. Er is echter geen API (application programming interface) die rechtstreeks bepaalt of de toepassing een console met CMD. deeltEXE. Deze methode lijkt op de huidige locatie van de cursor console en als het het programma wordt ervan uitgegaan dat deze wordt uitgevoerd in een aparte console (0,0) is het venster.

Voorbeeldcode

   #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();
      }
   }
				
Opmerking: Deze methode werkt niet als de gebruiker een helder scherm (CLS combineert) en de uitvoering van de toepassing in één stap (bijvoorbeeld [C:\] CLS & <progname>), omdat de cursorpositie (0, 0), maar de toepassing met behulp van de console CMD. behoortEXE. </progname>

Methode 2: Start de console met cmd.exe /K

Deze methode is een consoletoepassing in een afzonderlijk venster starten en gedwongen het venster blijft nadat de toepassing is beëindigd. Een toepassing kunt de volgende opdrachtregel gebruiken met WinExec(), CreateProcess(), of in een batchbestand:
cmd /K consoleapp.exe
Nadat consoleapp.exe is beëindigd, wordt de schakeloptie /K het consolevenster op het scherm blijft staan. Kan de toepassing gebruiker typt de exitopdracht het consolevenster sluiten.

Eigenschappen

Artikel ID: 99115 - Laatste beoordeling: woensdag 13 juni 2012 - Wijziging: 4.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Win32-API
Trefwoorden: 
kbconsole kbinfo kbkernbase kbprogramming kbmt KB99115 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende: 99115

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com