RaynorPao
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](http://delphi.ktop.com.tw/download.php?download=upload/48c9d66ac5033_KTOP-%E5%8C%85%E5%AD%90%28%E7%9C%BC%E9%8F%A1%29-Q-100x100.jpg) 發表:139 回覆:3622 積分:7025 註冊:2002-08-12
發送簡訊給我
|
引言:
各位大大
假如有兩個應用程式A.EXE,B.EXE
是否可以把A.EXE中的資料(也許是某個structure)
像寄mail一樣,直接寄給B.EXE?
而不是透過某個 >
>>< face="Verdana, Arial, Helvetica"> VickyTsai141 你好:
其實是可以做得到的,請參考以下的做法
< class="code">
// struct 的資料結構
typedef struct _MYSTRUCT
{
char szChar[16];
int iInt;
} MyStruct;
// Sender 端的程式碼, Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HWND hWnd=FindWindow(NULL, "ReceiveForm");
if(hWnd)
{
MyStruct ms;
lstrcpy(ms.szChar, "This is my char");
ms.iInt=100;
COPYDATASTRUCT CopyData;
CopyData.dwData=0;
CopyData.cbData=sizeof(MyStruct);
CopyData.lpData=&ms; SendMessage(hWnd, WM_COPYDATA, (WPARAM)Handle, (LPARAM)&CopyData);
}
}
// Receiver 端的程式碼, Unit1.h
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
void __fastcall WMCopyData(TMessage& Message);
public: // User declarations
__fastcall TForm1(TComponent* Owner); BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_COPYDATA, TMessage, WMCopyData)
END_MESSAGE_MAP(TForm)
};
// Receiver 端的程式碼, Unit1.cpp
void __fastcall TForm1::WMCopyData(TMessage& Message)
{
COPYDATASTRUCT *CopyData=(COPYDATASTRUCT*)(Message.LParam);
if(CopyData->cbData==sizeof(MyStruct))
{
MyStruct ms;
CopyMemory(&ms, CopyData->lpData, CopyData->cbData);
ShowMessage(ms.szChar);
ShowMessage(IntToStr(ms.iInt));
}
}
-- Enjoy Researching & Developing --
------ -- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
|