BILGI: konsol penceresinde, gelen Disappearing engelleme

Makale çevirileri Makale çevirileri
Makale numarası: 99115 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Dosya Yöneticisi ' Program Yöneticisi, Windows NT Explorer'da veya Başlangıç <progname>yazarak bir konsol uygulaması başlatıldığında kendi konsolunda, komut isteminden çalıştırılır. Bu konsol uygulama sona erdirir ve bu nedenle kullanıcı arasındaki son pause ve program çıkış ekranda yazılan herhangi bir şey okunamıyor olarak kaybolur. Konsol penceresi disappearing karşı korumak için iki yaklaşım vardır.

Daha fazla bilgi

Yöntem 1: İşlem ayrı Console'da çalışan, Duraklat

Hemen bir ayrı bir konsol penceresi içinde çalışırken sonlandırmak için bir konsol uygulaması uygulamak için ilk yöntemdir. Her zaman isteminden başlatıldığında bilgileri konsol penceresine görüntüleyen sonra duraklatmak için bir uygulama isteyebilirsiniz olası değil. Ancak, doğrudan uygulama CMD.EXE ile bir konsolun paylaşımları olup olmadığını belirleyen hiçbir API (uygulama programlama arabirimi) yok. Bu yöntem, konsol imlecin geçerli konumda arar ve sonra programı ayrı bir konsol penceresinde çalıştığı varsayılmaktadır (0,0) ise.

Örnek kod

   #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();
      }
   }
				
Not: Bir düz ekran (CLS) kullanıcı birleştirir ve uygulamaya (örneğin, [C:\] CLS & <progname>), bir adım yürütülmesini imleci yerleştirmek için bu yöntem çalışmaz olması (0, 0), ancak uygulama CMD.EXE'YI ait konsolun kullanmaktadır.

Yöntem 2: cmd.exe ile Konsolu başlatmak /K

Bu yöntem, ayrı bir pencerede bir konsol uygulaması başlatma ve uygulama sonlandırıldı sonra için pencereyi zorlama içindir. Bir uygulama, bir toplu iş dosyasında veya WinExec(), CreateProcess(), aşağıdaki komut satırını kullanabilirsiniz:
cmd /K consoleapp.exe
/K anahtarını, consoleapp.exe sonlandırıldı sonra ekranda kalır konsol penceresi yapar. Uygulama kullanıcı ardından konsol penceresini kapatmak için exit komutu da yazabilirsiniz.

Özellikler

Makale numarası: 99115 - Last Review: 21 Kasım 2006 Salı - Gözden geçirme: 4.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Win32 Uygulama Programlama Arabirimi, Ne zaman ne ile kullanilir:
    • 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
Anahtar Kelimeler: 
kbmt kbconsole kbinfo kbkernbase kbprogramming KB99115 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:99115

Geri Bildirim Ver

 

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