INFORMACE: Zabránění okna konzoly z vymizení

Překlady článku Překlady článku
ID článku: 99115 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Při spuštění aplikace konzoly buď z Průzkumníka Windows NT Správce souborů, Správce programů, nebo zadáním zahájení <progname> z příkazového řádku, spustí ve vlastní konzole. Tato konzola zmizí, jakmile ukončí aplikaci, a proto nelze uživatele číst nic zapsány do obrazovky mezi poslední pozastavení a ukončení programu. Chcete-li zabránit vymizení okna konzoly dvěma způsoby.

Další informace

Metoda 1: Pozastavit, pokud je proces spuštění v samostatných konzoly

První metoda je určena pro aplikace konzoly nelze ukončit okamžitě spuštěná v okn? konzoly samostatné implementace. Není pravděpodobné, že je vhodné žádost o pozastavení vždy po zobrazení informací do okna konzoly, při spuštění z příkazového řádku. Neexistuje však žádný API (application programming interface), které přímo určuje, zda aplikace sdílí konzoly s cmd.exe. Tato metoda vypadá do aktuálního umístění kurzoru konzoly a je-li (0,0), potom program předpokládá že je spuštěn v okně konzoly samostatné.

Ukázkový kód

   #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();
      }
   }
				
Poznámka: Tato metoda nebude fungovat, pokud uživatel kombinuje jasný obrazovky (CLS) a provádění aplikace do jednoho kroku (například [C:\] CLS & <progname>), protože umístěte kurzor být (0, 0), ale aplikace je pomocí konzoly, který patří do programu Cmd.exe.

Metoda 2: Spusťte konzolu s cmd.exe /K

Tato metoda slouží ke spuštění v samostatném okně konzolové aplikace a vynucení okna zůstat i po aplikaci ukončil. Aplikace lze použít na příkazovém řádku následující příkaz, s WinExec() CreateProcess(), nebo v dávkovém souboru:
cmd /K consoleapp.exe
Po dokončení consoleapp.exe, umožňuje přepínače /K okna konzoly, zůstal na obrazovce. Uživatel aplikací může zadejte příkaz exit zavřete okno konzoly.

Vlastnosti

ID článku: 99115 - Poslední aktualizace: 21. listopadu 2006 - Revize: 4.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Win32 Application Programming Interface na těchto platformách
    • Microsoft Windows NT Advanced Server 3.1
    • Microsoft Windows NT 4.0
    • Microsoft Windows NT 3.51 Service Pack 5
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Klíčová slova: 
kbmt kbconsole kbinfo kbkernbase kbprogramming KB99115 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:99115

Dejte nám zpětnou vazbu

 

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