|
void __fastcall TForm1::Button1Click(TObject *Sender)
{
unsigned char *data= "45";
unsigned char abIn[2048 + 1] ;
UINT l = 3 ;
memcpy(abIn,data,l);
COPYDATASTRUCT cds;
cds.dwData = WM_COPYDATA;
cds.cbData = l;
cds.lpData = abIn;
//::SendMessage(hWnd,WM_COPYDATA,(WPARAM)FormMain->Handle,(LPARAM)&cds);
HWND hWnd = ::FindWindow(NULL, "AAA");
int tt = ::SendMessage(hWnd,WM_COPYDATA,(WPARAM)Handle,(LPARAM)&cds);
}
위와 같이 AAA 프로그램이 있는지 알어본후 45라는 값을 sendmessage로 보냅니다.
void __fastcall TForm1::OnCopyData(TMessage &Msg)
{
COPYDATASTRUCT *CD;
CD = (COPYDATASTRUCT*)(Msg.LParam);
.....
ShowMessage("OK");
}
메세지를 받고 난 뒤 .OK 출력합니다.
header 화일에는 다음과 같이 정의 했습니다.
__published:
//void __fastcall OnCopyData(TMessage &Msg);
public:
void __fastcall OnCopyData(TMessage &Msg);
BEGIN_MESSAGE_MAP
//VCL_MESSAGE_HANDLER(WM_COPYDATA,TMessage,OnCopyData)
MESSAGE_HANDLER(WM_COPYDATA,TMessage,OnCopyData)
END_MESSAGE_MAP(TForm)
어디가 잘못됐는지는 모르겠지만.,.OnCopyData함수로 들어가지 않네여..
왜 그럴까여>
서치를 해서 알아봤는데..
이유를 모르겠네여..
|