|
태윤님 답변 감사합니다....
그런데 아래 소스만으로는 좀 부족한데요....
제 경우에 적용을 시켜보면 결국 notepad 가 자식이 되는데....
notepad 가 리턴하는 값은 뭐죠?
아래 예제는 폼에서 버튼 클릭했을때 메모장을 열어서 거기에
autoexec.bat 파일의 내용을 보여주는건데.....
메모장이 닫힐때까지 원래 프로그램은 기다리고 있구요....
메모장이 닫히면 원래 프로그램이 다시 나타나는데....
메모장이 리턴하는건 뭐죠?
그리고 메모장이 리턴하는 값을 받는 부분은 어디죠?
암만 찾아봐도 없는것 같은데요....
혹시 제 질문을 잘못 이해하신건 아닌지.....
아니면 빨리 답변해주시고 싶은 마음에 다른 부분을 빠뜨리신건지....
다시한번 정확한 답변 주시면 감사하겠습니다.
방태윤 님이 쓰신 글 :
: 완전한 답변은 아닙니다.
: 아래는 노트패드를 실행시키고 노트패드가 끝날때까지
: 대기하는 겁니다.
: 끝나야 리턴값을 받을수 있겠지요..참고만 하십시요.
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: STARTUPINFO si;
: PROCESS_INFORMATION pi;
:
: ZeroMemory( &si, sizeof(STARTUPINFO) );
: ZeroMemory( &pi, sizeof(PROCESS_INFORMATION) );
:
: si.cb = sizeof( STARTUPINFO );
: si.dwFlags = STARTF_USESHOWWINDOW;
: si.wShowWindow = SW_SHOWNORMAL;
:
: CreateProcess( NULL, "notepad c:\\autoexec.bat", NULL, NULL, FALSE,
: 0, NULL, NULL, &si, &pi );
:
: WaitForInputIdle( GetCurrentProcess(), INFINITE );
: if( pi.hProcess ){
: DWORD dwExitCode = STILL_ACTIVE;
: while ( dwExitCode == STILL_ACTIVE )
: {
: WaitForSingleObject( pi.hProcess, 1000 );
: GetExitCodeProcess( pi.hProcess, &dwExitCode );
: Update();
: }
: }
: }
: .끝.
:
: 도난경보기 님이 쓰신 글 :
: : 제목 그대로 입니다. 제가 만드는 프로그램에서 다른 실행 파일을 실행시키고 싶습니다.
: : 원래 프로그램을 부모, 불러와서 실행할 파일을 자식이라고 했을때,
: : 부모에서 자식을 호출합니다. 자식은 제대로 되면 1, 제대로 안되면 -1을 리턴합니다.
: : 부모는 자식이 어떤 값을 리턴하는지 받아서 1이 리턴되었으면 A 라는 일을 하고,
: : -1 이 리턴되었으면 B 라는 일을 하고 싶습니다.
: : 다른 프로그램을 실행시키기 위해, winexec 랑 shellexecute 를 사용해봤습니다.
: : 프로그램이 실행되기는 하지만 리턴값을 어떻게 받아야 할지 모르겠네요.
: : 위의 두가지의 경우에는 제대로 리턴값을 못받는 것 같더라구요.
: : 답변 부탁드립니다.
: :
|