정보: 콘솔 창 없어지는에서 때문에

요약

파일 관리자, 프로그램 관리자, Windows NT 탐색기 또는 명령 프롬프트에서 시작 < progname > 를 입력 하 여 콘솔 응용 프로그램 시작 시 자체 콘솔에서 실행 됩니다. 이 콘솔 응용 프로그램을 종료 하 고 따라서 사용자 간의 마지막 일시 중지 및 프로그램 종료 화면으로 기록 된 읽을 수 없습니다이 사라집니다. 콘솔 창 사라짐을 방지 하는 방법은 두 가지입니다.

자세한 내용

방법 1: 프로세스 분리 콘솔에서 실행 되는 경우 일시 중지.

첫 번째 방법은 별도 콘솔 창에서 실행 하면 바로 종료 하는 콘솔 응용 프로그램을 구현 하기 위한 것입니다. 그럴 가능성은 항상 프롬프트에서 시작할 때 콘솔 창에 정보를 표시 한 후 일시 중지 신청서를 사용할 수 있습니다. 그러나 명령줄을 사용 하 여 콘솔 응용 프로그램을 공유 여부를 직접 결정 하는 없는 API (응용 프로그래밍 인터페이스) 있습니다. EXE입니다. 이 메서드는 콘솔 커서의 현재 위치에 모양과 (0, 0) 인 경우 다음 해당 프로그램 가정 별도 콘솔 창에서 실행 되 고.

샘플 코드

   #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();
}
}

참고: 사용자는 지우기 화면 (CLS) 결합 하 고 응용 프로그램 (예: [C:\] CLS & < progname >), 한 번에 실행 커서 위치 때문에이 방법이 작동 하지 것입니다 됩니다 (0, 0) 명령줄에 속한 콘솔 응용 프로그램이 사용 하는 있지만 EXE입니다.

방법 2: cmd.exe를 사용 하 여 콘솔을 시작 하 /K

이 메서드는 응용 프로그램이 종료 된 후에 유지 하려면 창 고 별도 창에서 콘솔 응용 프로그램을 시작 합니다. 응용 프로그램 WinExec(), CreateProcess(), 또는 배치 파일에서 다음 명령줄을 사용할 수 있습니다.
cmd /K consoleapp.exe
Consoleapp.exe 종료 된 후 /K 스위치를 사용 하면 콘솔 창이 화면에. 응용 프로그램 사용자 콘솔 창을 닫으려면 끝내기명령을 입력할 수 있습니다.
속성

문서 ID: 99115 - 마지막 검토: 2017. 1. 12. - 수정: 1

피드백