|
[FindWindow를 이용하는 방법에 대해]
FindWindow를 이용하는것은 확실한 방법이 아닙니다.
왜냐하면
Test.exe가 Window프로그램이 일수도 있고 아닐수도 있구
또 똑같은 프로그램이 여러개 뜰수도 있구...
Test.exe가 Window프로그램이고 , 오직 하나만 실행된다 하더라도
Form이 Minimize되거나 Hide되어있는경우 FindWindow로 잘 찾아지지 않습니다.
그러니 FindWindow로 프로그램이 살아있는지 종료했는지 확인하는것은 잘못된 방법이라 할수있습니다.
[WaitForSingleObject를 이용하여]
CreateProcess , ShellExecuteEx 로 프로그램을 실행시키시구요
Process Handle을 얻어서
WaitForSingleObject를 호출하여 기다리면 됩니다.
WaitForSingleObject(hProcess,INFINITE); //이런식으로..
그럼 실행시킨 프로그램(hProcess)가 종료되면 WaitForSingleObject에서 return됩니다.
그럼..
Lyn 님이 쓰신 글 :
: 젤 간단한건..
:
: FindWindow 로 계속 찾아서 끝날때를 검출하는것..
:
:
: S시온스S 님이 쓰신 글 :
: : 안녕하세요.
: :
: :
: : 제가 다른 외부 프로그램을 실행시켜서 그 프로그램이 끝날때까지 기다렸다가 그 프로그램이 끝나면
: : 그 외부 프로그램을 지우는걸 만들고싶어요.
: :
: : ----------------------------------------------------------------------
: : char buff[200];
: : for(int i=0; i<200; i++) buff[i] = 20;
: : getcwd(buff,200);
: :
: : if(ShellExecute( 0,0, "Test.exe" ,buff,"",0) == false){
: : exit(0);
: : }
: : ----------------------------------------------------------------------
: :
: :
: : 이렇게 컴파일했는데요.
: :
: : Texe.exe 현재폴더
: :
: : 이렇게해서 실행하는 프로그램이에요
: :
: :
: : 그런데 지금 저 ShellExcute한 Test.exe가 종료될때까지 기다렸다가
: : 저 "test.exe"파일을 지우고 프로그램이 종료되는 형태를 취했으면 좋겠어요.
: :
: : 어떤걸 써야하죠? 힌트라도 ;;
|