Q&A

  • 프로그램1 이 프로그램 2를 부르고 난뒤 리턴코드 받는법
안녕하세요.

제가 코딩하고 있는 프로그램이 해야할 작업중 하나가

제 프로그램(1)이 다른 프로그램(2)을 부른이후에

리턴코드를 받아서 그 코드에 따라 다시 또 다른 프로그램(3)을 실행시켜야 하는 것입니다.


제가 사용하던 방식은 로그화일을 작성해서 그 화일에 작성된 코드를 바탕으로 프로그램(3) 을 실행 하는

식이었는데요. 다루는 데이터 화일들이 실지 타 회사들에서 오는 수 기가 정도 되는 데이타 들을 읽어내고

테이블을 작성하고 있는 과정에서 (정확한 이유는 모르지만) 프로그램(1) 자체가 로그 화일을 계속 홀딩하고

있는 상태에서 프로그램(3)가 그 로그화일을 읽어내버려서 I/O Error 가 발생을 하더라구요.


Sleep같은 방법으로 그 타이밍을 조절할려고도 해봤지만, 때로는 에러가 발생하구요.



질문을 짧게 해서요, 프로그램1 이 프로그램2 를 불러낸이후에 리턴 하는 코드들을 프로그램1 에서 받는것이

가능하게 했으면좋겠습니다. 로그 화일 작성 하는 방법 말구요.

ShellExecute 으로는 프로그램2 가 실행이됐는지 여부만 리턴을 하더라구요.



외국거주중이라 용어사용이나 설명이 조금 이상하더라도, 인내심을 가지고 봐주셨으면 감사하겠습니다.^^

다들 좋은 하루 되시구요.

수고하세요~
3  COMMENTS
  • Profile
    쁜지아빠 2005.02.04 19:12
    안녕하세요 쁜지 아빠입니다.
    제 짧은 이해력으로 보건데 2개의 프로그램이 떠 있는 상태에서
    상호간에(또는 2번플그램에서 1번플그램으로의)
    원하는 신호/데이타(결과 값)를 받고 싶으신거라고 보여지네요.

    만약 그렇다면 메모리맵을 이용해보시면 될 듯 합니다.
    리턴값을 보내야겠다는 신호는 윈도우 메세지를 주고 받으심 되겠습니다.
    메모리맵이용은 CreateFileMapping 함수와 MapViewOfFile 을 이용해보세요

    즐프하세용!

  • Profile
    이중철 2005.02.03 21:53
    목적하시는 바가 소스의 큰 수정없이 단지 프로그램2가 실행된 후 끝나는 시점을 알고자 하는것으로 보입니다.
    그럼 다음과 같은 코드가 유효할 것이라고 판단되어 집니다.

          CreateProcess(nil, PChar(CmdStr), nil, nil, False, DETACHED_PROCESS, nil, nil, si, pi);
          WaitForSingleObject(pi.hProcess, INFINITE);

    위의 두 함수를 쓰면 될것 같네요
    내용인즉은 외부EXE를 실행하고 WaitForSingleObject로 종료할때 까지 기다리는 루틴일거에요
    여기 자료실에 보면 Ipchanger인가의 소스에서 사용방법이 자세히 나와 있을 겁니다.
    그럼 이만.

  • Profile
    구창민 2005.02.03 21:29
    안녕하세요..

    말씀하시는 리턴코드가 어떤 것을 말씀하시는지 잘 모르겟지만,

    어플리케이션간 통신이 필요하신거 같네요..

    WM_COPYDATA 를 사용해보세요.

    사용예제는 팁/강좌 란을 살펴보시면 금방 찾으실 수 있을것입니다.

    그럼 즐거운 프로그래밍 하세요~



    • 김영창
    • 2005.02.04 02:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김영석
    • 2005.02.04 02:21
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.02.04 03:20
      안녕하세요. 최용일입니다. 객체를 생성하면 모든 값들은 0으로 초기화 됩니다. 때문에 특별히 초기화를...
    • 아폴론
      2005.02.04 18:19
      procedure TForm1.BitBtn1Click(Sender: TObject); var u : integer;      ...
    • 이중철
      2005.02.04 19:11
      최용일씨 말씀이 맞습니다. 객체는 생성시 멤버변수들이 있는 메모리 영역을 0으로 초기화 하고 생성됩니...
    • 김영석
      2005.02.04 18:09
      그래서 그랬던거군요.. 델파이 초보라 아직 배울게 많네요..^^ 감사합니다.. 즐코하세요~
    • 김시아
    • 2005.02.04 01:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 오익환
      2005.02.04 19:19
      [Fatal Error] Project1.dpr(6): File not found: 'ExceptionLog.dcu' ExceptionLog.dcu는 ObjectPrinter...
    • 주재환
    • 2005.02.04 00:36
    • 0 COMMENTS
    • /
    • 0 LIKES
    • kivalan
    • 2005.02.03 20:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박상윤
      2005.02.18 00:55
      UDP 라는 프로토콜은 기본적으로... 데이터의 완벽한 전송을 .. 보장 하지않습니다. 다시말하자면... 손...
    • 락락여인
      2005.02.04 01:57
      출력이 끝난후에 AdvStringGrid1.autosize := true; 를 사용사시면 자동으로  맞춰 줍니다....
    • 오익환
      2005.02.03 18:49
      접근을 잘 못하고 계신것 같습니다. length(Cells[x,y])를 하면 Cells[x,y]의 문자길이가 Return됩니다....
    • BINU
    • 2005.02.03 10:26
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 덜렁이
    • 2005.02.03 08:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박지용
      2005.02.23 20:38
      음.  Packet처리는 변화가 없을꺼고. 다만 Com Port 에서 Socket 핸들링하는 부분만 처...
    • 김건우
    • 2005.02.03 07:10
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 쁜지아빠
      2005.02.04 19:12
      안녕하세요 쁜지 아빠입니다. 제 짧은 이해력으로 보건데 2개의 프로그램이 떠 있는 상태에서 상호간에(...
    • 이중철
      2005.02.03 21:53
      목적하시는 바가 소스의 큰 수정없이 단지 프로그램2가 실행된 후 끝나는 시점을 알고자 하는것으로 보입니...
    • 구창민
      2005.02.03 21:29
      안녕하세요.. 말씀하시는 리턴코드가 어떤 것을 말씀하시는지 잘 모르겟지만, 어플리케이션간 통신이...
    • 우소
    • 2005.02.03 04:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2005.02.03 21:32
      안녕하세요.. 일전에 제다이(http://www.delphi-jedi.org/) 에서 관련된 내용을 본적이 있습니다. MAPI ...
    • 박노팔
      2007.04.11 09:47
      { Outlook E-Mail Sender! -- by Jimmy Tharpe         &nb...
    • whatlee
    • 2005.02.03 03:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.02.03 20:19
      varOlestr와 VarVarient의차이.....를 말하기전에.. 먼저 이 답변은 저의 짧은 지식으로 쓰는것이니 절...
    • 전영구
    • 2005.02.03 01:56
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.02.03 20:00
      안녕하세요. 최용일입니다. 아마도 GSM 6.10코덱인거 같은데... CbSize가 2인것에서 알 수 있듯이 뒤...
    • kivalan
      2005.02.03 20:11
      그럼 말씀하신대로 자료 타입 만 맞추어 주면 WaveInOpen할때 에러가 없어진다는 말씀이시겠네요. 뒤에 2...
    • 최용일
      2005.02.03 21:00
      안녕하세요. 최용일입니다. 뒤에 2바이트정보를 더 써주시면 오픈할때 에러는 안날거구요... 그러니...
    • 박연준
    • 2005.02.02 22:48
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이진수
      2005.02.02 22:58
      다음까페 게시판에 있는 html 컨트롤은 IE 설치시 같이 설치되는(물론 거의 대부분의  Windows ...
    • 박연준
      2005.02.02 23:06
      DHTML Edit Control 컨트롤을 사용하려면 어떻게 해야 하는거죠..? 잘되있고 정말 좋던데...
    • 이진수
      2005.02.03 03:14
      Delphi를 사용하신다면 Component 메뉴의 ActiveX Import 를 실행하면, 설치된 ActiveX의 리스트를 확인할 ...
    • ziniii
    • 2005.02.02 22:17
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.02.02 22:27
      http://www.torry.net/quicksearchd.php?String=EBCDIC&Title=Yes 여기에 있는듯 하네요 소스까지 오픈...
    • ziniii
      2005.02.03 00:42
      음...덕분에 많은 도움이... 감사합니다...
    • 정근호
    • 2005.02.02 22:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 채팅
      2005.02.02 23:01
      클라이언트쪽에서 설정하는 것을 말하는 것이라면 IE나 FireFox에서 그런 옵션이 있는 지 모르겠네요.. ...
    • 송인화
    • 2005.02.02 21:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.02.02 22:17
        Form1.Caption := 'Connect  ' + AThread.Connection.Socket.Binding.PeerIP + '&nb...
    • 손희관
    • 2005.02.02 20:48
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박상윤
      2005.02.18 00:47
      버퍼링은. 어쩔수 없는 부분입니다. 아무리 버퍼링을 한다구하더라도 실시간 형식을 원하시면 버퍼링 속...