Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

INFO: Verhindert das Konsolenfenster aus verschwindet

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 99115
Zusammenfassung
Wenn eine Konsolenanwendung entweder aus dem Datei-Manager den Programm-Manager, Windows NT Explorer oder durch Eingabe von <progname> Start gestartet wird an der Eingabeaufforderung es in Ihrer eigenen Konsole ausgeführt. Diese Konsole verschwindet, sobald die Anwendung beendet wird und daher nicht der Benutzer nichts auf dem Bildschirm zwischen dem letzten anhalten und Programm beenden ausgegeben lesen kann. Es gibt zwei Ansätze zum verhindern, dass des Konsolenfensters verschwindet.
Weitere Informationen

Methode 1: Halten Sie an, wenn der Prozess in separaten Konsole ausgeführt wird

Die erste Methode ist für die Implementierung einer Konsolenanwendung Beenden nicht sofort, wenn er in einem separaten Konsolenfenster ausgeführt wird. Es ist unwahrscheinlich, dass eine Anwendung immer nach Informationen im Konsolenfenster anzeigen, wenn Sie an der Eingabeaufforderung gestartet anhalten möchten. Es ist jedoch-keine API (Application programming Interface, die direkt bestimmt, ob die Anwendung eine Konsole mit cmd.exe teilt). Diese Methode sucht nach der aktuellen Position des Cursors Konsole, und wenn es (0,0) ist, dann das Programm geht es in eine separate Konsolenfenster ausgeführt wird.

Beispielcode

   #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();      }   }				
Hinweis: Diese Methode funktioniert nicht, wenn der Benutzer einen klaren Bildschirm (CLS) kombiniert und Ausführung der Anwendung in eine Schritt (for example, [C:\] CLS & <progname>), da der Cursor zu positionieren, wird sein (0, 0), aber die Anwendung wird mithilfe der Konsole, cmd.exe gehört.

Methode 2: Starten die Konsole mit cmd.exe/k

Diese Methode ist für eine Konsolenanwendung in einem separaten Fenster starten und erzwingen das Fenster bleiben, nachdem die Anwendung beendet wurde. Eine Anwendung kann mit WinExec() CreateProcess(), oder in einer Batchdatei die folgende Befehlszeile verwenden:
Cmd/k consoleapp.exe
Nach consoleapp.exe beendet wurde, stellt die Option/k im Konsolenfenster auf dem Bildschirm verbleiben. Benutzer der Anwendung kann dann den Befehl Beenden , um das Konsolenfenster schließen eingeben.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 99115 – Letzte Überarbeitung: 11/21/2006 15:46:16 – Revision: 4.1

Microsoft Win32 Application Programming Interface

  • kbmt kbconsole kbinfo kbkernbase kbprogramming KB99115 KbMtde
Feedback