Teď jste offline a čekáte, až se znova připojí internet.

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

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
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.

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 99115 - Poslední kontrola: 11/21/2006 15:46:16 - Revize: 4.1

Microsoft Win32 Application Programming Interface

  • kbmt kbconsole kbinfo kbkernbase kbprogramming KB99115 KbMtcs
Váš názor