FindWindow與TService 溝通傳遞COPYDATA訊息 |
尚未結案
|
hauhan
一般會員 發表:11 回覆:9 積分:4 註冊:2004-07-14 發送簡訊給我 |
=====================================================
我的TService1類別 執行檔名稱為DDEService
=====================================================
class TService1 : public TService
{
__published: // IDE-managed Components
private: // User declarations
void __fastcall OnCopyData( TMessage &Message );
public: // User declarations
__fastcall TService1(TComponent* Owner);
TServiceController __fastcall GetServiceController(void); friend void __stdcall ServiceController(unsigned CtrlCode);
protected: BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_COPYDATA, TMessage, OnCopyData)
END_MESSAGE_MAP(TService1)
};
=====================================================
FindWindow的方式
=====================================================
HWND pOtherWnd = FindWindow(NULL, "DDEService"); =====================================================
結果:
=====================================================
雖然 pOtherWnd 可以被找到但是
SendMessage(pOtherWnd, WM_COPYDATA, (WPARAM)0, (LPARAM)&cpd);
後TService1卻收不到訊息... 依照TService的繼承關係來看似乎只能傳遞訊息到TObject的Dispatch去
但是試了很久OnCopyData就是收不到訊息... 麻煩各位大大幫小弟解惑吧... >.< =======================發問六小時後分格線=======================
經過多次嘗試後TService依然收不到訊息
參考到包子大大
【BCB】【發表】Service Application 範例程式
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31566
的文章後,學他建立一個Form來接收訊息,才能順利的在"Form"接收到訊息....
因此會有一些疑問 1.TService 繼承自 TObject 照理說應該同樣接收的到訊息才對不是嗎? 2.FindWindow在沒有Form的狀況下尋找Handle只能填Application名稱?
(因為沒有Caption的名稱)而且這個Handle會我我要的Handle嗎?? 3.Service Application 不能在BCB Debug嗎???(因為必須透過控制台內的
服務啟動) 發表人 - hauhan 於 2004/10/07 18:24:06
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |