---------------------------------------------------------------------------------
보내는쪽:
---------------------------------------------------------------------------------
var
pcds : TCopyDataStruct;
h_Wnd, Handle : HWND;
Data : string;
begin
pcds.cbData := Length(Data) + 1;
pcds.lpData := PChar(Data);
h_Wnd := FindWindow(nil, 'Server');
Handle := FindWindow(nil, 'APP');
if h_Wnd <> 0 then SendMessage(h_Wnd, WM_COPYDATA, Handle, LongInt(@pcds));
end;
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
받는쪽:
---------------------------------------------------------------------------------
procedure WMCOPYDATA(var Msg : TWMCOPYDATA); message WM_COPYDATA;
procedure TServer.WMCOPYDATA;
var
Data : string;
begin
Data := StrPas(Pchar(Msg.CopyDataStruct^.lpData));
SendMessageToSystem(Data);
end;
---------------------------------------------------------------------------------
위의 Source는 원래 Source에서 SendMessage관련 부분만을 정리한건데요.
두개의 서로다른 Execution간에 Message를 주고 받게 되어있습니다.
거의(?) 완벽하게 두 윈도우간 Message를 잘 주고 받습니다. 완벽하게..
근데 정말 가끔 분명히 'Server'나 'APP'라는 두 프로그램이 모두 활성화 되어있는데
Message가 전달이 안될때가 발생합니다. 이 때는 Message를 받는 'Server'프로그램을
죽인후 다시 실행해야만 하더군요...쩝
왜 그런걸까요...쩝 아시는 분 답변 부탁드립니다.