Q&A

  • Winexec 함수를 사용하여 배치 파일을 실행하고 난 뒤 배치 파일을 종료
WinExec(pChar(ExePath + 'base.bat'), SW_HIDE);

// 처리 루틴들...

// 핸들 찾기
H_WND := FindWindow( ???, nil ); // ???
SendMessage(H_WND, WM_CLOSE, 0, 0);

패치 파일에서는
복사 루틴을 처리하고나서
pause 상태로 엔터키를 쳐야 닫히는 상태이고요

호출 한 하위 처리 루틴을 다 하고 나서 WinExec로 실행한 배치 파일을 닫아 주고 싶은데 잘 안 되네요.
SendMessage 로 처리 할려니 핸들을 어떻케 찾아야 할지 모르겠구 방법이 없을까요 ^^;

2  COMMENTS
  • Profile
    최용일 2004.02.27 00:33
    안녕하세요. 최용일입니다.

    도스의 Command 인터프리터를 이용해 보세요

    WinExec(PChar('cmd /c ' + ExePath + 'base.bat'), SW_HIDE);
    WinExec(PChar('command /c ' + ExePath + 'base.bat'), SW_HIDE);

    ^^ 항상 즐코하세요...

  • Profile
    레인시즈 2004.02.27 19:52
    답변 주셔서 정말 감사합니다. ^^

    알려주신 방법으로 도스 Command 인터프리터를 이용한 방법으로 해결하려고 했지만 SW_HIDE 형태로 숨겨만 질뿐 작업관리자로 확인 하면 프로세스가
    여전히 실행되고 있는것을 알게 되었습니다.

    물론, base.bat 파일에 Pause를 없애게 되면 이런 문제는 없지만 cmd 창을 사용자가 원하는 시점에서 호출한 프로그램에서 종료할 수 있는 방법을
    알고 싶네요 ^^ (욕심꾸러기^^;)

    그럼, 멋진 하루 되세요.