관리 메뉴

Kim's Programming

프로세스 예제 본문

Programming/System Programming

프로세스 예제

Programmer. 2016. 2. 5. 01:54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<Windows.h>
#include<tchar.h>
#include<iostream>
#include<process.h>
 
int _tmain(int argv, TCHAR agrc[])
{
    DWORD Return = 0;
    STARTUPINFO si = { 0, };
    PROCESS_INFORMATION pi;
    
    TCHAR CommandLine[30= _T("notepad.exe");
    si.cb = sizeof(si);
    si.dwFlags = STARTF_USEPOSITION | STARTF_USESIZE;
    si.dwX = 100;
    si.dwY = 200;
    si.dwXSize = 300;
    si.dwXSize = 200;
    si.lpTitle = _T("Process");
 
    BOOL Check = CreateProcess(NULL, CommandLine, NULL, NULL, NULL, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
    if (Check == NULL)
    {
        std::wcout << _T("Cannot Create Process"<< std::endl;
        return -1;
    }
    WaitForSingleObject(pi.hProcess, INFINITE);
    GetExitCodeProcess(pi.hProcess, &Return);
 
    return 0;
}
cs



프로세스를 만드는 소스입니다. notepad 즉 메모장을 실행하는 소스입니다.


22번째 줄에서는 프로세스가 생성된 프로세스가 생성이 되지 않는다면 NULL이 리턴됩니다. 또 27번째 줄에서는 생성된 프로세스가 종료될때 까지 무제한적으로 기다립니다. 또 28번째 줄에서는 프로세스가 종료되면서 리턴되는 ExitCode를 받아옵니다. (notepad.exe는 종료할때 0을 리턴합니다.)