프로그램의 종료는 그 프로그램의 핸들을 알아내신 다음에 SendMessage 명령으로
WM_CLOSE를 보내시거나, 종료가 안되는 것은 작업관리자의 방식처럼 Terminate 시킬 수
있습니다.
프로그램 죽이는 더 자세한 사항은 아래 글을 참조해 주세요.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=28039
또한, 다른 메뉴를 클릭 한다든지의 방식도, 메시지를 이용해서 할 수 있지만 어떤 컨트롤로
제작되었냐에 따라서 좀 방법이 틀려집니다. 또한, 그렇게 할 수 없는 객체도 많습니다.
마우스를 이동하는것처럼 해서 시뮬레이션 하는 방법도 있지만, 그리 좋은 방법은 아니라 생각됩니다.
다음으로, 도스창을 안보이게 실행하고 싶으실때는
WinExec(파일명, SW_HIDE) 로 이용해서 SW_HIDE 옵션을 주어서 실행시키시면 됩니다.
그런데, WinExec는 파일을 실행하고 파일 실행의 종료를 기다리지 않고 바로 넘어가므로,
정확히 파일이 실행되었는지 알 수 없습니다. 이런 문제는 CreateProcess를 사용하면 가능합니다.
CreateProcess에 대해서는 아래 글을 참조하세요.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=21158
cuperido
보거스 님이 쓰신 글 :
: 한 프로그램에서 다른 프로그램의 매뉴를 Control 하려고 하는데 가능한가요?
: 예를 들어서 어떤 프로그램에서 다른 프로그램을 종료하는것.
: 똑같이 C++ Builder에서 만든거구요.
:
: 그리고 가능하다면 개발툴이 다른 프로그램에서도 가능한지요?
: C# 으로 만든 프로그램에서 C++ Builder로 만든 프로그램을 Control(종료 등).
:
:
: 현재 제가 테스트 하고자 프로그램을 2개를 만들었습니다. (아래 프로그램1, 2)
: 프로그램1 = C++ Builder로 만든 프로그램을 실행하면 태스크바 오른쪽에 아이콘 형태로 나타나게 했습니다.
:
: 프로그램2 = 프로그램(C++ Builder)에서 프로그램 1 을 실행하는거는 했거든요. (system("") 을 이용해서)
: (프로그램 1이 태스크바 오른쪽에 아이콘 형태로 표시됨. )
: ( 다른 프로그램을 실행할때 system("C:\프로그램1.exe"); 외에 다른 방법은 없나요?
: system을 사용하면 화면에 도스창이 나타났다 없어지는게 좀 보기 그래서요.)
:
: 프로그램 2를 종료한다는가 아니면 어떤 매뉴를 클릭한다든가 해서 프로그램 1를 종료시키고 싶은데
: 어떻게 해야 하는지요?
:
: 아시는분 부탁드리겠습니다.