|
실행파일간에 간단한 메시지를 주고받기 위해서 양쪽실행파일에 메시지를 선언하고 받는 쪽 메시지맵에 메시지를 등록하고 PostMessage함수로 메시지를 보냈는 데 받지를 못합니다.
동일실행파일에서는 동일한 방법으로 주고받는 것이 가능한데 다른실행파일이면 다르게 고려해야 하는 것이 있는 지 알고 싶습니다.
==============================================================
보내는 부분
#define WM_USER_RECEIVE_CLIENT (WM_USER + 2)
void __fastcall TMainForm::Button1Click(TObject *Sender)
{
HWND hWnd;
AnsiString strExeName="Test";
hWnd = FindWindow(NULL, strExeName.c_str());
if (hWnd)
{
::PostMessage(hWnd, WM_USER_RECEIVE_CLIENT, 0, 0);
}
}
==============================================================
받는 부분
#define WM_USER_RECEIVE_CLIENT (WM_USER + 2)
class TClientMainForm : public TForm
{
public: // User declarations
__fastcall TClientMainForm(TComponent* Owner);
void __fastcall OnReceiveClient(TMessage &Message);
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_USER_RECEIVE_CLIENT, TMessage, OnReceiveClient)
END_MESSAGE_MAP(TForm)
};
void __fastcall TClientMainForm::OnReceiveClient(TMessage &Message)
{
ShowMessage( "Client Receive OK" );
}
|