본문 바로가기

프로그래밍/MFC , WinAPI

STARTUPINFO 구조체란 무엇인가?

typedef struct _STARTUPINFO {
  DWORD  cb;
  LPTSTR lpReserved;
  LPTSTR lpDesktop;
  LPTSTR lpTitle;
  DWORD  dwX;
  DWORD  dwY;
  DWORD  dwXSize;
  DWORD  dwYSize;
  DWORD  dwXCountChars;
  DWORD  dwYCountChars;
  DWORD  dwFillAttribute;
  DWORD  dwFlags;
  WORD   wShowWindow;
  WORD   cbReserved2;
  LPBYTE lpReserved2;
  HANDLE hStdInput;
  HANDLE hStdOutput;
  HANDLE hStdError;
} STARTUPINFO, *LPSTARTUPINFO;

 

STARTUPINFO  구조체는 생성하는 프로세스의 속성을 지정할 때 사용된다.

 

1.cb - 구조체 변수의 크기를 전달한다.

 

2.lpReserved - 이 프로세스에 대한 바탕 화면의 이름 또는 바탕 화면과 창 스테이션의 이름.

     문자열의 백 슬래시는 문자열에 바탕 화면 및 창 스테이션 이름이 모두 포함되어 있음을 나타낸다.

 

3.lpDesktop -바탕 화면의 이름 또는이 프로세스에 대한 바탕 화면과 창 스테이션의 이름. 문자열의 백 슬래시는 문자열에 데스크톱 및 창 스테이션 이름이 모두 있음을 나타냅니다. 

 

4.lpTitle - 콘솔 프로세스의 경우 새 콘솔 창이 작성되면 제목 표시 줄에 표시되는 제목입니다. NULL이면 실행 파일의 이름이 창 제목으로 대신 사용됩니다. 이 매개 변수는 새 콘솔 창을 작성하지 않는 GUI 또는 콘솔 프로세스의 경우 NULL이어야합니다.

 

5.dwX - 프로세스 윈도우의 x좌표

 

6.dwY - 프로세스 윈도우의 y좌표

 

7.dwXSize - 프로세스 윈도우의 가로길이

 

8.dwYSize - 프로세스 윈도우의 세로길이

 

9.dwXCountChars - dwFlags 에 STARE_USECNTCHARs가 지정된 경우,
콘솔 프로세스에 새 콘솔 창이 생성되는 경우 이 멤버는 화면 버퍼 폭을 문자열로 지정합니다. 그렇지 않으면 이 멤버는 무시됩니다

 

10.dwYCountChars - dwFlags 에 STARE_USECNTCHARs가 지정된 경우,
콘솔 프로세스에 새 콘솔 창이 생성되는 경우 이 멤버는 화면 버퍼 높이를 문자열로 지정합니다. 그렇지 않으면 이 멤버는 무시됩니다

 

11.dwFillAttribute - dwFlags 에서 STAREB_USEFILLATTRIBUTE를 지정하는 경우, 이 멤버는 새 콘솔 창이 콘솔 응용 프로그램에 생성된 경우 초기 텍스트 및 배경 색입니다. 그렇지 않으면 이 멤버는 무시됩니다.
이 값은 FOREGROUND_BLUE, FOREGROUND_GREEN, BARE GRSEOUNDOUNDED,

FOREGROUND_INCKTENSITY의 임의 조합일 수 있다. 예를 들어 다음과 같은 값 조합을 사용하여 흰색 배경에 빨간 색 텍스트를 생성할 수 있습니다.

FOREGROUND_RED| BACKGROUND_RED| BACKGROUND_GREEN| BACKGROUND_BLUE

 

12.dwFlags - 설정된 맴버의 정보

   플래그값 참조 : https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms686331(v=vs.85).aspx 

 

13.wShowWindow - dwFlags 에 STARTF_USESHOWWINDOW가 지정된 경우 이 멤버는 SW_SHFANDOW를 제외하고 Window기능에 대해 지정할 수 있는 값 중 하나가 될 수 있습니다. 그렇지 않으면 이 멤버는 무시됩니다.
GUI프로세스의 경우, 처음 ShowWindows를 호출할 때 Windows표시 파라미터가 무시되어 기본 값을 지정합니다. 이후에 ShowWindow로 호출할 때 ShowWindow매개 변수를 SW_ShowdeFAULT로 설정한 경우 wSho .indow 멤버가 사용된다.

 

14.cbReserved2 - c 런타임에 사용하기 위해 예얀된 값은 0이어야합니다.

 

로딩중

15.lpReserved2 - c 런타임에 사용하기 위해 예얀된 값은 NULL이어야합니다.

 

로딩중

16.hStdInput - dwFlags 에 STAR_USESS/PANDALS를 지정할 경우, 이 멤버는 프로세스에 대한 표준 입력 핸들이다. STARM_USESNDALS를 지정하지 않으면, 표준 입력의 기본 값은 키보드 버퍼이다.
dwFlags 가 STARTF_USEHOTKEY를 지정하는 경우, 이 멤버는 첫번째로 생성된 최상위 프로세스에서 소유한 WM_SETHOTKEY 메시지의 mkaram매개 변수로 전송되는 핫 키 값을 지정합니다. 이 창이 WS_POPUP 창 스타일로 생성되는 경우 WSWS_EX_APPWINDOW확장 스타일이 설정되어 있지 않으면 사용할 수 없습니다. 그렇지 않으면 이 멤버는 무시됩니다.

 

17.hStdOutput - dwFlags 에 STARTF_USESTDHANDLES를 지정할 경우, 이 멤버는 프로세스에 대한 표준 출력 핸들이 된다. 그렇지 않으면 이 멤버는 무시되고 표준 출력의 기본 값은 콘솔 창의 버퍼입니다.
프로세스가 작업 표시 줄 또는 점프 목록에서 시작되면 시스템은 hStdOutput 을 프로세스 시작에 사용되는 작업 표시 줄이나 점프 목록이 포함 된 모니터의 핸들로 설정 합니다

 

18.hStdError - dwFlags 에 STARTF_USESTDHANDLES를 지정할 경우, 이 멤버는 프로세스에 대한 표준 오류 처리를 한다. 그렇지 않으면 이 멤버는 무시되고 표준 오류의 기본 값은 콘솔 창의 버퍼입니다.