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을 리턴합니다.)