일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- DIV 팝업 이외 영역 클릭 시 팝업 닫기
- 팝업 종료
- 여러줄 한줄로
- 허드슨 포트 변경
- eclipse 폰트
- javascript 낙타
- 뒤로가기 방지
- eclipse 다국어
- #오라클 데이터 복구
- 근무날짜 경력계산
- 탭과 클릭 focus 이벤트 구분
- i_tail
- ajax 배열 파라미터
- 엑셀 UPDATE
- 폴더만 남기고 파일만 삭제
- 전화번호 형식 자동 변환
- 스킵 네비게이션
- ajax 배열
- 시퀀스 초기화 프로시져
- jquery_cheat_sheet #jquery_quick_api_reference
- eclipse properties
- javascript Camel
- jquery_api #jquery #api
- css 말줄임
- JSP Standard Tag Library (JSTL) Tutorial
- Spring Annotation
- 화면보호기 실행 방지
- 트리거 이벤트
- taglib 만들기
- jQuery 백스페이스
Archives
- Today
- Total
Hi~ Summers!!
외부 프로그램 실행 본문
외부프로그램을실행하고초기화될때까지기다려주는함수입니다.
초기화되기전까지는FindWindow로윈도우핸들이안얻어지기
때문에유용합니다.WaitForInputIdle을WaitForSingleObject로
바꾸면실행이끝날때까지기다려줄수도있습니다.
BOOLCreateProcessAndWait(LPCSTRpFileName,LPCSTRpCmdLine)
{
PROCESS_INFORMATIONProcessInfo;
STARTUPINFOStartupInfo;
TCHARPathName[MAX_PATH];
CStringCmdLine;
memset(&StartupInfo,NULL,sizeof(StartupInfo));
StartupInfo.cb=sizeof(STARTUPINFO);
if(strchr(pFileName,":"))//절대경로까지들어있는파일명이면
strcpy(PathName,pFileName);
else
{//그냥파일명이면
GetModuleFileName(AfxGetInstanceHandle(),PathName,MAX_PATH);
strcpy(strrchr(PathName,"")+1,pFileName);
}
CmdLine.Format(""%s"%s",PathName,pCmdLine);
if(!::CreateProcess(PathName,(LPSTR)(LPCSTR)CmdLine,NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,
&ProcessInfo))
{
AfxMessageBox(CmdLine);
returnFALSE;
}
WaitForInputIdle(ProcessInfo.hProcess,INFINITE);
returnTRUE;
}
초기화되기전까지는FindWindow로윈도우핸들이안얻어지기
때문에유용합니다.WaitForInputIdle을WaitForSingleObject로
바꾸면실행이끝날때까지기다려줄수도있습니다.
BOOLCreateProcessAndWait(LPCSTRpFileName,LPCSTRpCmdLine)
{
PROCESS_INFORMATIONProcessInfo;
STARTUPINFOStartupInfo;
TCHARPathName[MAX_PATH];
CStringCmdLine;
memset(&StartupInfo,NULL,sizeof(StartupInfo));
StartupInfo.cb=sizeof(STARTUPINFO);
if(strchr(pFileName,":"))//절대경로까지들어있는파일명이면
strcpy(PathName,pFileName);
else
{//그냥파일명이면
GetModuleFileName(AfxGetInstanceHandle(),PathName,MAX_PATH);
strcpy(strrchr(PathName,"")+1,pFileName);
}
CmdLine.Format(""%s"%s",PathName,pCmdLine);
if(!::CreateProcess(PathName,(LPSTR)(LPCSTR)CmdLine,NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,
&ProcessInfo))
{
AfxMessageBox(CmdLine);
returnFALSE;
}
WaitForInputIdle(ProcessInfo.hProcess,INFINITE);
returnTRUE;
}
Comments