본문 바로가기

Windows/_System Programming

프로세스(Process) 생성 소스

/*       자식 프로세스(Child Process) */
#include <stdio.h>
#include <windows.h>
#include <tchar.h>
#include <locale.h>
INT_PTR _tmain(INT_PTR argc, TCHAR* argv[])
{
        _tsetlocale(LC_ALL, _T("Korean"));
        _tprintf(_T("자식 프로세스(Child Process) \n"));
        system("pause");
        return 0;
}

/*
      부모 프로세스(Parent Process : CreateProcess 이용)
*/
#include <stdio.h>
#include <windows.h>
#include <tchar.h>
#include <locale.h>
#define DIR_LEN MAX_PATH+1
INT_PTR _tmain(INT_PTR argc, TCHAR* argv[])
{
         _tsetlocale(LC_ALL, _T("Korean"));
         STARTUPINFO si={0}; 
         PROCESS_INFORMATION pi;
 
         si.cb = sizeof(si);
         si.dwFlags = STARTF_USEPOSITION | STARTF_USESIZE;
         si.dwX=100;
         si.dwY=200;
         si.dwXSize = 300;
         si.dwYSize = 200;
         si.lpTitle = _T("Hacker Dakuo");
 
        _tprintf(_T("부모 프로세스(Parent Process) \n"));
        TCHAR command[] = _T("dakuo_C_Process.exe");
        BOOL state;
        state = CreateProcess(NULL, command, NULL, NULL, TRUE,
                                        CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
        // CREATE_NEW_CONSOLE : 자식 프로세스를 새로운 콘솔 윈도우로 생성한다.
        // 콘솔을 기반으로 하지 않는 프로세스에는 의미가 없다
        // NULL : 부모 프로세스의 콘솔 윈도우를 자식 프로세스와 공유        
        
        if(state!=0)
        {
               _tprintf(_T("Creation Sucess\n"));
        }
        else
        {
              _tprintf(_T("Creation Fail\n"));
        }
        system("pause");
        return 0;
}

'Windows > _System Programming' 카테고리의 다른 글

커널 오브젝트(Kernel Object)  (2) 2010.02.11
CreateProcess 함수  (0) 2010.02.10
프로세스의 생성과 소멸  (0) 2010.02.09
명령 프롬프트(Cmd) 작성  (0) 2010.02.09
64비트 기반 프로그래밍  (0) 2010.02.08