Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[12784] Re:Re:Re:[질문]그럼 메세지나 파이프는 어떻게 사용하나요? 혹시 예제라도
장성호 [nasilso] 2735 읽음    2009-07-16 16:15
IPC라는걸로 검색해보세요

IPC란?
IPC라는것은 Inter Process Communication의 약자로써
같은 Machine에서 두개이상의 process간에  서도 데이타를 주고 받는것을 얘기합니다.


방법에는 여러가지가 있는데요
1. 공유메모리
2. socket
3. pipe , namedpipe
4. message
5. 메일슬롯
등등..


메세지를 이용하는 방법
aaa.exe 라는 프로그램이 윈도우 어플리케이션이면

  1) FindWindow해서
  2) SendMessage로 데이타를 보냅니다.
  3) aaa.exe의 해당 윈도우 프로시져에서 메세지를 받아서 처리하면 되구요
 
   간단한 data의 경우  메세지를  WM_USER+xx 로하고 data는 wparam , lparam으로 하면되는데..
    데이타가 좀 긴경우에는 WM_COPYDATA를 이용해서 COPYSTRUCT구조체에 DATA를 넣고 보냅니다.
 
   WM_COPYDATA 로 검색하면 주루룩 나옵니다.

pipe를 이용하는 방법  
   console프로그램의 경우 콘솔창을 통해 입력을 받고 출력을 하면 콘솔창에 내용이 출력되지요?
   이경우 콘솔창이 해당 process의  standard input / output 이 됩니다.

   하지만 cmd.exe에서   ipconfig.exe를 실행하면
    cmd.exe의 콘솔창에 내용이 출력됩니다.
    이는 cmd.exe에서 ipconfig.exe를 실행하면서 standard input/output를  pipe로 만들어서 설정해줍니다.
    이렇게 해놓은 상태에서
    cmd.exe에서는 자신의 standard input(콘솔)로 무엇이 들어오면 그 내용을 그대로  ipconfig의 input pipe로 내보냅니다.
    그리고 ipconfig의 standard output pipe로 무슨 내용이 들어오면 그내용을 cmd.exe 자신의 콘솔창에 출력하구요..

   createprocess 로 aaa.exe 프로그램을 실행하면서   STARTUPINFO  구조체에 표준입출력 pipe를 설정해서 넘기고
   해당 pipe를 모니터링하면 됩니다.

   참조
   http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=173

그럼...






  
 


김현승 님이 쓰신 글 :
: 답변감사드립니다.
: 메세지나 파이프를 검색하니 엄청 많이 나오던데
:
: 어떻게 해야 하는지 감이 잡히질 않네요~
:
: 혹시 예문이나 예제라도 있으시면 부탁 드립니다.
:
: Lyn 님이 쓰신 글 :
: : 한번 더 실행하면 그냥 프로세스가 늘어 날 뿐입니다.
: : 메세지나 파이프를 이용해서 데이터를 전송 하셔야 겠네요.
: :
: : 김현승 님이 쓰신 글 :
: : : 안녕하세요
: : :
: : : aaa.exe 134 이렇게 파일을 하나 실행시켜서 134라는 값을 보냈는데...
: : : aaa.exe 파일이 실행된 상태에서 456이라는 값을 추가로 보내고 싶습니다.
: : :
: : : aaa.exe 134 로 한번 실행
: : : aaa.exe 456 으로 한번 더 실행시 이미 aaa.exe가 실행이 되어있다면 추가로 456이라는 값을 받을 수 없나요?
: : :
: : : 많은 답변 부탁 드립니다.

+ -

관련 글 리스트
12781 [질문]실행된 exe 파일에 ParamStr값 추가하기..제목이 좀 그러네요~ 김현승 1465 2009/07/16
12783         Re:Re:[질문]그럼 메세지나 파이프는 어떻게 사용하나요? 혹시 예제라도 김현승 1349 2009/07/16
12784             Re:Re:Re:[질문]그럼 메세지나 파이프는 어떻게 사용하나요? 혹시 예제라도 장성호 2735 2009/07/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.