Delphi Tips 
-----------------------------

0090  D1   D2   D3   D4   D5   D6   D7   3.1   95   98    作成: 1999/02/08 osamu rev 1.2
   B1   B3   B4   B5   B6   B7   NT3   NT4   2K   XP  更新: 1999/03/21 osamu 編集
アプリケーション間でデータの送受信(WM_COPYDATAを使う)

BCB1で記述してます。3用に手直しがあるかもしれません。

送り側アプリ

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    HANDLE handle;
    WPARAM wParam;
    LPARAM lParam;
    char   msgbuf[]="hogehoge";
    COPYDATASTRUCT cds;
    cds.dwData = 1;
    cds.cbData = strlen(msgbuf);
    cds.lpData = (LPVOID)msgbuf;

    handle = ::FindWindow(NULL,"受けアプリ");
    wParam = (WPARAM)Application->Handle;
    lParam = (LPARAM)&cds;
    ::SendMessage(handle,WM_COPYDATA,wParam,lParam);
}
//---------------------------------------------------------------------------

受け側アプリのヘッダ

public:         // ユーザー宣言
    void __fastcall EvWmCOPYDATA( TMessage message );
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_COPYDATA,TMessage, EvWmCOPYDATA)
END_MESSAGE_MAP(TForm)

浮け側アプリのソース

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
    Form1->Caption = "受けアプリ";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EvWmCOPYDATA( TMessage message )
{
    COPYDATASTRUCT *cds;
    char           buf[80];
    cds = (COPYDATASTRUCT *)message.LParam;
    ::ZeroMemory(buf,sizeof(buf));
    memmove(buf,cds->lpData,cds->cbData);
    ::MessageBox(0,buf,"Oh!",MB_OK);
}
参照: [builder:5252] <Windows>

[新規作成] [最新の情報に更新]

How To
Lounge
KeyWords


Tips
Delphi
Home
Osamu Takeuchi osamu@big.or.jp