일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- jquery_cheat_sheet #jquery_quick_api_reference
- 뒤로가기 방지
- jquery_api #jquery #api
- JSP Standard Tag Library (JSTL) Tutorial
- taglib 만들기
- 여러줄 한줄로
- 전화번호 형식 자동 변환
- 트리거 이벤트
- eclipse 다국어
- 시퀀스 초기화 프로시져
- javascript Camel
- i_tail
- eclipse 폰트
- 허드슨 포트 변경
- css 말줄임
- 탭과 클릭 focus 이벤트 구분
- DIV 팝업 이외 영역 클릭 시 팝업 닫기
- jQuery 백스페이스
- ajax 배열
- #오라클 데이터 복구
- 근무날짜 경력계산
- javascript 낙타
- eclipse properties
- 폴더만 남기고 파일만 삭제
- 화면보호기 실행 방지
- Spring Annotation
- 엑셀 UPDATE
- ajax 배열 파라미터
- 팝업 종료
- 스킵 네비게이션
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