應用程式之間的資料傳遞 |
答題得分者是:RaynorPao
|
VickyTsai141
一般會員 發表:7 回覆:2 積分:1 註冊:2003-02-04 發送簡訊給我 |
|
RaynorPao
版主 發表: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 --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
kenlee1109
初階會員 發表:20 回覆:40 積分:27 註冊:2006-08-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |