|
a.exe 에서 b.exe 를 구동시키고, b.exe 가 구동될때
b.exe 에서 a.exe 를 종료시키시면 될것 같은데여....
간단한거니까 한번 해보보시구 잘되는가 알려주세여....
//--->
HWND hwnd = FindWindowEx(NULL, NULL, NULL, "a");
if(hwnd)
{
PostMessage(hwnd, WM_QUIT, 0, 0);
}
//--->
DeleteFile("a.exe");
//--->
백상열 님이 쓰신 글 :
: 답변 감사드립니다..
:
: 저두 그렇게하면 되는줄 알았는데, 안되더라구요,
: 논리적으로 가만히 생각해봐도... 그건 a.exe프로그램이 b.exe를 일단 Call하면
: 하위process(b.exe)가 실행되는거고요,
: a.exe엔 비록 뭐 exit(1);이나 뭔가가 있더라도, 어쨌거나 하위프로세서b.exe가 실행을
: 끝내기전에는 종료되지않고 그게 끝나기를기다려 리턴값을 받아처리하게되지요,
:
: 그러므로 b.exe에 Delete커멘드가 있더라도 실행중인 프로그램a.exe는
: 에러(즉, a.exe파일이 안지워짐)가 날거같더군요.,.
:
: 그래서 생각해보니 이건 프로세서실행또는 프로세스종료 차원에서 접금을 해야될거같습니다.
: 아직 연구중이라, 뭐 꼭 짚히는곳은 없지만,
: 예전에나온 볼랜드 Turbo-C 시리즈를 볼떄 그런 프로세서에관한건 언듯한번 본거같습니다
: SpawnX()라든가, 아니면 Spawnl()이라든가, execX()라든가 뭐라든가..
: 아무튼 저두 연습중이니깐 곧 알수있겠지요.. 열심히 찾아보고 test중입니다.
:
: 혹시 이부분에 아시는분있으면 답장 부탁합니다. 그럼..
:
:
: 최준호.스페로 님이 쓰신 글 :
: : 백상열 님이 쓰신 글 :
: : : 다소 어려운 문제가있습니다.
: : :
: : : 실행하던 A프로그램(컨트롤)을 죽이고, 아주 그프로그램(a.exe)파일을
: : : 삭제하는 프로그램(b.exe)를 실행하도록 하려는겁니다.
: : :
: : : a.exe 내부에서 b.exe를 실행하고 자신(a.exe)은 실행을 중단해야할 뿐만아니라
: : : b.exe에서는 a.exe프로그램(파일)을 삭제해야하는데, 어떻게하면 가능한지요?
: : :
: : : 도사님의 답변을 구합니다. 그럼..
: :
: : 안녕하세요 스페로 입니다.
: :
: : 제 생각입니다. 실제로 구현 해보지는 않았습니다.
: :
: : 먼저 A프로그램에서 B프로그램을 실행시키는 코드로 B를 실행 합니다.
: :
: : WinExec("B.EXE",1);
: :
: : 물론 위함수를 호출할때는 정확한 경로를 정해주어야 하구요
: :
: : 그다음 A프로그램에서
: :
: : exit() 함수로 올바르게 종료 합니다.
: :
: : B프로그램은 이미 수행되었겟지요
: :
: : B프로그램은 시작시 바로 A프로그램을 제거 하게 합니다.
: :
: : DeleteFile("A.EXE");
: :
: : 설마 A프로그램이 아직도 종료 되지 않았을까요? A프로그램은 B를 호출하자마자 끝났을겁니다.
: :
: : 그럼 문제가 없겠지요.
: :
: : 이런식으로 하면 해결되지 않을까요?
: :
: : ^^그럼
|