// 함수 원형 //
BOOL CreateProcess(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
각 Parameters 의 의미는 MSDN을 참고!!
부모 프로세스에서 CreateProcess()를 이용하여 자식 프로세스를 만들어 줄수 있는데,
일반적으로 다음과 같이 사용을 한다.
if(!CreateProcess( NULL ,
"C:\\Program Files\\TEST_Program\\Test Manager.exe",
NULL,
NULL,
FALSE,
0,
NULL,
NULL ,
&si,
&pi))
}
"C:\\Program Files\\TEST_Program\\Test Manager.exe",
NULL,
NULL,
FALSE,
0,
NULL,
NULL ,
&si,
&pi))
}
보통 별 무리 없이 잘 사용했는데....
어떤 프로그램의 경우 프로그램은 실행되나, 정상적으로 동작을 하지 않는 경우가 발생했다.
버튼을 눌러도 반응이 없거나 등등...
이럴 경우 8번째 인자의 값을 수정해서 정상 동작 하는 것을 확인하였다.
"LPCTSTR lpCurrentDirectory "
생성하는 프로세스의 현재 디랙터리를 설정( NULL = 부모 프로세스의 현재 디랙터리)
//수정//
if(!CreateProcess( NULL ,
"C:\\Program Files\\TEST_Program\\Test Manager.exe",
NULL,
NULL,
FALSE,
0,
NULL,
"C:\\Program Files\\TEST_Program\\"
&si,
&pi))
}
if(!CreateProcess( NULL ,
"C:\\Program Files\\TEST_Program\\Test Manager.exe",
NULL,
NULL,
FALSE,
0,
NULL,
"C:\\Program Files\\TEST_Program\\"
&si,
&pi))
}
'이것저것 > My_Work' 카테고리의 다른 글
EFI (Extensible Firmware Interface) (0) | 2009.04.15 |
---|---|
Internet Explorer8 설치 후 Visual studio2005에서 문제 발생 (0) | 2009.04.08 |
[MFC] - PlaySound()를 이용한 Wave 파일 재생 (1) | 2009.03.23 |
[MFC] - 다이얼로그 기반 프로그램에서 실행과 동시에 다이얼로그 감추기 (0) | 2009.03.20 |
DLL 학습 중 (0) | 2009.03.15 |