델파이로 작성된 2개의 프로그램이 있습니다. a.exe 와 b.exe 라고 할때.
a.exe를 실행한 후 b.exe를 winexec 함수를 사용하여 실행을 시켰습니다.
그런데...종료는 어떻게 해야하나요?
어느 팁을 보니까.. 노트패드 죽이는 부분인데요.
NotepadHandle := FindWindow('notepad', nil);
SendMessage(NotepadHandle, wm_Close, 0, 0);
findwindow를 사용해서 handle값을 불러왔더군요.
findwindow를 도움말에서 보니까... className 또는 windowcaption 으로 handle값을 불러오는것 같습니다.
그런데... windowcaption은 사용하기가 어렵고, 어쩔수 없이 classname을 사용해야하는데.... 어떻게 알수 있는지 잘 모르겠습니다. spy프로그램을 사용하면 알수 있다는데...
음... 한번 만들어 설정된 className은 변동이 없는건쥐..이궁.. 모르는게 넘 많네요.
winexec 로 실행시키면 return 값으로 에러체크를 하더군요. 32보다 작으면 에러값더라구요. 음...핸들값은 알수 없는것 같구..
단 shellexe인가? 하는것은 handle값을 return 값으로 넘긴다고 하네요. 그런데
참고로 shellexe 해서 실행시킨후 sendMessage를 사용해서 종료시킬려고 했으나 실패했습니다.
아시는분은 가르쳐 주십시요. 그럼...좀 급합니다. 답변기다리겠습니다.
청개구리 남기석( http://www.delphitravel.com )입니다.
SendMessage 말구 PostMessage 를 사용하세요...
PostMessage( FindWindow( PChar( 'TForm1' ), nil), WM_QUIT, 0, 0 );
이런식으로요...
위에보면..
'TForm1' 이라구 되 있는데요...
이건 b.exe 프로그램의 메인폼의 Calss 명을 써주시면 됩니다....
행복하세요...
==============================================================================
임형호 wrote:
> 델파이로 작성된 2개의 프로그램이 있습니다. a.exe 와 b.exe 라고 할때.
> a.exe를 실행한 후 b.exe를 winexec 함수를 사용하여 실행을 시켰습니다.
> 그런데...종료는 어떻게 해야하나요?
>
> 어느 팁을 보니까.. 노트패드 죽이는 부분인데요.
> NotepadHandle := FindWindow('notepad', nil);
> SendMessage(NotepadHandle, wm_Close, 0, 0);
>
> findwindow를 사용해서 handle값을 불러왔더군요.
> findwindow를 도움말에서 보니까... className 또는 windowcaption 으로 handle값을 불러오는것 같습니다.
> 그런데... windowcaption은 사용하기가 어렵고, 어쩔수 없이 classname을 사용해야하는데.... 어떻게 알수 있는지 잘 모르겠습니다. spy프로그램을 사용하면 알수 있다는데...
> 음... 한번 만들어 설정된 className은 변동이 없는건쥐..이궁.. 모르는게 넘 많네요.
> winexec 로 실행시키면 return 값으로 에러체크를 하더군요. 32보다 작으면 에러값더라구요. 음...핸들값은 알수 없는것 같구..
> 단 shellexe인가? 하는것은 handle값을 return 값으로 넘긴다고 하네요. 그런데
> 참고로 shellexe 해서 실행시킨후 sendMessage를 사용해서 종료시킬려고 했으나 실패했습니다.
> 아시는분은 가르쳐 주십시요. 그럼...좀 급합니다. 답변기다리겠습니다.
>
>
>
>
>