일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Series
- GT-S80
- SPL
- javascript
- RNN
- keras
- ipad
- Splunk
- LSTM
- pandas
- DFS
- index
- Python
- synology
- pip
- install
- Lotto
- CNN
- 삼성소프트웨어멤버십
- dataframe
- pycharm
- Numpy
- 알고리즘
- SciPy
- imread
- E-P1
- mean
- GitHub
- mariadb
- Button
Archives
- Today
- Total
잠토의 잠망경
CreateProcess & OpenProcess &GetExitCodeProcess &TerminateProcess 본문
#undef UNICODE #include#include void ProcA() { STARTUPINFO si={sizeof(STARTUPINFO),}; PROCESS_INFORMATION pi; //프로세스를 하나 실행시킵니다. if(CreateProcess(NULL, //[in]실행파일의 이름 "NotePad.exe",//[in]실행파일의 이름(권장) NULL, //[in]프로세스 속성의 상속에 관련된것 NULL, //[in]쓰레드 속성의 상속에 관련된것 FALSE, //[in]상속에 관련된것 0, //[in]프로세스의 스케줄링에 priority에 영향을 준다. NULL, //[in]A pointer to the environment block for the new process. NULL, //[in]The full path to the current directory for the process. &si, //[in]시작할 때의 정보를 설장해준다. &pi)) //[out]프로세스의 정보를 셋해준다. { CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } //시간을 조금 둡니다. Sleep(1000); //프로세스 id를 이용하여 프로세스의 핸들을 얻어냅니다. HANDLE hProcA=OpenProcess(PROCESS_ALL_ACCESS, FALSE, pi.dwProcessId); DWORD ExitCode; //프로세스가 종료되었는지 체크를 합니다. GetExitCodeProcess(hProcA,&ExitCode); //프로세스가 아직도 살아있는지에 대한 조건문입니다. if(ExitCode != STILL_ACTIVE) { printf("He's gone!!\n"); }else{ //아직 살아 있다면 프로세스를 종료시킵니다. TerminateProcess(hProcA,0); } //프로세스의 핸들을 닫습니다. CloseHandle(hProcA); } int main(void) { ProcA(); return 0; }
Comments