mfc createprocess 예제

Posted on

lpApplicationName 매개 변수는 NULL일 수 있습니다. 이 경우 모듈 이름은 lpCommandLine 문자열의 첫 번째 공백 구분 토큰이어야 합니다. 공백이 포함된 긴 파일 이름을 사용하는 경우 인용된 문자열을 사용하여 파일 이름이 끝나고 인수가 시작되는 위치를 나타내고 그렇지 않으면 파일 이름이 모호합니다. 예를 들어 문자열 “c:program 파일sub dirprogram 이름”을 생각해 보십시오. 이 문자열은 여러 가지 방법으로 해석될 수 있습니다. 시스템은 다음과 같은 순서로 가능성을 시도합니다: 지정된 모듈은 Win32 기반 응용 프로그램일 수 있습니다. 로컬 컴퓨터에서 적절한 하위 시스템을 사용할 수 있는 경우 다른 유형의 모듈(예: MS-DOS 또는 OS/2)일 수 있습니다. 호출 스레드는 WaitForInputIdle 함수를 사용하여 새 프로세스가 초기화를 완료하고 입력 보류 중이 없는 사용자 입력을 기다리는 때까지 기다릴 수 있습니다. CreateProcess는 새 프로세스가 초기화를 완료할 때까지 기다리지 않고 반환되므로 부모 프로세스와 자식 프로세스 간의 동기화에 유용할 수 있습니다. 예를 들어 만들기 프로세스는 새 프로세스와 연결된 창을 찾기 전에 WaitForInputIdle을 사용합니다.

응용 프로그램이 환경 블록을 제공하는 경우 시스템 드라이브의 현재 디렉터리 정보가 새 프로세스로 자동으로 전파되지 않습니다. 예를 들어 =C라는 환경 변수가 있는데, 그 값이 드라이브 C의 현재 디렉토리입니다. 응용 프로그램은 현재 디렉터리 정보를 새 프로세스로 수동으로 전달해야 합니다. 이렇게 하려면 응용 프로그램에서 이러한 환경 변수 문자열을 명시적으로 만들고 사전순으로 정렬해야 합니다(시스템에서 정렬된 환경을 사용하기 때문에). 일반적으로 환경 블록 정렬 순서로 인해 환경 블록의 맨 앞에 이동합니다. 환경 블록은 null-종료된 null 문자열의 null 종료 블록으로 구성됩니다. 각 문자열은 양식에 있습니다: CreateProcess가 성공하면 새 프로세스 및 해당 기본 스레드에 대한 핸들 및 식별자가 포함된 PROCESS_INFORMATION 구조를 반환합니다. 스레드 및 프로세스 핸들은 전체 액세스 권한으로 만들어지지만 보안 설명자지정시 액세스를 제한할 수 있습니다. 이러한 핸들이 더 이상 필요하지 않으면 CloseHandle 함수를 사용하여 핸들을 닫습니다. memset(&si,0,sizeof(si); si.cb= sizeof (si); _tcscpy(cmdline,_T(“MyProgram.exe/param1”)); 직관적이지 않은 첫 번째 매개 변수를 기록합니다. _tcscpy(프로그램 경로,_T(“MyProgram.exe”)); 경우(! CreateProcess(프로그램 경로, cmdline, NULL, NULL, 거짓, 0, NULL, null,si,&pi)) { AfxMessageBox(“프로그램을 실행할 수 없습니다.”)) 명령이 성공적으로 실행되었지만 종료 코드를 확인할 수 없는 경우 함수는 FALSE를 반환합니다.

이 동작을 수정하거나 수정하지 않을 수도 있습니다. Windows CE 버전 1.0의 경우 dwCreationFlags 매개 변수는 CREATE_SUSPENDED 및 0의 값만 지원합니다. 생성된 프로세스는 프로세스 내의 모든 스레드가 종료되고 프로세스에 대한 모든 핸들이 닫히고 해당 스레드가 CloseHandle 호출을 통해 닫힙니다. 프로세스와 주 스레드모두에 대한 핸들은 CloseHandle 호출을 통해 닫아야 합니다. 이러한 핸들이 필요하지 않은 경우 프로세스를 만든 후 즉시 닫는 것이 가장 좋습니다. lpApplicationName 및 lpCommandLine이 NULL이 아닌 경우 *lpApplicationName은 실행할 모듈을 지정하고 *lpCommandLine은 명령줄을 지정합니다. 새 프로세스는 GetCommandLine을 사용하여 전체 명령줄을 검색할 수 있습니다. C 런타임 프로세스는 argc 및 argv 인수를 사용할 수 있습니다. 데이 카운터는 계약 전자 설계 전문.