Q&A

  • 어플리케이션간에 메세지 교환을 하려는데 문제 발생
안녕하세요

자꾸 이부분이 막혀서 진도가 안나가는군요 ㅠ.ㅠ

델파이언들의 도움을 요청합니다.^^



밑에 보내는 방식으로 보내면 받는쪽 폼이 떠 있으면 되는데

Disable 되어있으면 메세지를 받지 못합니다.

시스템 등록되서 화면은 없고 돌아가는 프로그램입니다.

폼이 있는데 폼을 없고 시스템 등록된 아이콘을 오른쪽 마우스로 눌러서

팝업 메뉴만 나오는 상태입니다. 이 상태에서는 메세지를 받지 못합니다.

팝업 메뉴에서

Visible := True;

ShowWindow(Application.Handle, SW_SHOW);

시켜서 보이게 하면 메세지 교환이 가능해 집니다.



무엇이 잘 못 되었는지 모르겠습니다 알고 계신 님들 좀 가르쳐 주세요..ㅠ.ㅠ



<예제>

################ 받는 부분 #####################

<선언>

procedure OnEventMsg(var Msg : TMessage) ; message WM_USER+101;



<함수>

procedure TMainFrm.OnStartsms(var Msg : TMessage);

var

hClient : HWND;

begin

lstExeFile.Items.Add('서버 - 메세지 받음');

hClient := FindWindow(nil,'Project1');

PostMessage(hClient, WM_USER+150, 0, 0 );

end;



################ 보내는 부분 #####################

<1번째 방씩으로 배내기>

procedure TForm1.Button1Click(Sender: TObject);

var

hSms : HWND;

begin



hSms := FindWindow(nil,'어플리케이션 타이틀');

PostMessage(hSms, WM_USER+150, 0,0);

end;

<2번째 방법으로 배내기>

procedure TForm1.Button2Click(Sender: TObject);

var

hSms : HWND;

begin

hSms := FindWindow(nil, '프로그램 타이틀');

sendMessage(hSms, WM_USER+150, 0,0);

// sendMessage 대신에 PostMessage 방식으로도 해봤음..

end;





0  COMMENTS